abstract class for the BDD interpretation of the different aXLang models it requires an implementation of BDDS, i.e. net.sf.javabdd.BDD More...
Public Member Functions | |
AxlBddVisitor (BddSolverImp manager) throws SolverException | |
Constructor. | |
IAXLangElement | axlModel () |
abstract boolean | checkConsistency () throws SolverException |
BDD | getBddModel () |
void | interpret () throws SolverException |
void | setAxlModel (IAXLangElement model) throws SolverException |
void | setDebuggingInfo (boolean smDebug, boolean smSystemOut) |
For debugging. | |
Protected Member Functions | |
abstract void | checkPreconditionOfSetAxlModel (IAXLangElement model) throws SolverException |
void | createAxlBddVarSet () |
IAxlVarSet | getAxlBddVarSet () |
abstract boolean | hasNoChildren (IAXLangElement element) throws SolverException |
checks if an IAXLangElement has NO children Abstract hook method of "AxlBddVisitor.translateIAXLangElementAtomic()" | |
void | setAxlVarSetBdd (AxlVarSetBdd axlVarSetBdd) |
void | setBddModel (BDD bddModel) |
BDD | translateIAXLangElementAtomic (IAXLangElement element) throws SolverException |
translates an atomic IAXLangElement into a BDD | |
BDD | translateIAXLangElementComposite (IAXLangElement parent, Collection<?extends IAXLangElement > childrenCollection) throws SolverException |
Translates the relationship between a composite element and its children into a BDD. | |
BDD | translateIAXLangElementXor (IAXLangElement parent, Collection<?extends IAXLangElement > childrenCollection) throws SolverException |
translates an XOR element to a BDD | |
abstract BDD | translateModel (IAXLangElement model) throws SolverException |
Translates an aXLang model to a BDD structure (kann noch refaktorisiert werden) reads/uses attributes: bddFactory creates/reads/writes attributes: modelBddVarSet. | |
void | unsetAxlBddVarSet () |
Protected Attributes | |
IAXLangElement | theAxlModel |
AxlVarSetBdd | theAxlVarSet |
BDD | theBddModel |
BddSolverImp | theVarManager |
abstract class for the BDD interpretation of the different aXLang models it requires an implementation of BDDS, i.e. net.sf.javabdd.BDD
de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.AxlBddVisitor | ( | BddSolverImp | manager | ) | throws SolverException |
Constructor.
bddSolver |
IAXLangElement de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.axlModel | ( | ) |
Get the assigned aXLang submodel
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.IAxlVisitor.
Reimplemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureConfiguration, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
abstract boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.checkConsistency | ( | ) | throws SolverException [pure virtual] |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.IAxlVisitor.
Implemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorF2AMapping, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureConfiguration, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
abstract void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.checkPreconditionOfSetAxlModel | ( | IAXLangElement | model | ) | throws SolverException [protected, pure virtual] |
Set the aXLang submodel which should be checked with the BDD solver.
model |
SolverException |
Implemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorF2AMapping, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureConfiguration, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.createAxlBddVarSet | ( | ) | [protected] |
IAxlVarSet de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.getAxlBddVarSet | ( | ) | [protected] |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.getBddModel | ( | ) |
abstract boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.hasNoChildren | ( | IAXLangElement | element | ) | throws SolverException [protected, pure virtual] |
checks if an IAXLangElement has NO children Abstract hook method of "AxlBddVisitor.translateIAXLangElementAtomic()"
parent | should be an IAXLangElement or an corresponding AxlElementPath |
if | element does not represent an appropriate IAXLangElement (see implementing classes) |
Implemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorF2AMapping, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureConfiguration, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.interpret | ( | ) | throws SolverException |
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.setAxlModel | ( | IAXLangElement | model | ) | throws SolverException |
Set the aXLang submodel which should be checked with the BDD solver. Specific preconditions are checked within the hook method "checkPreconditionOfSetAxlModel(model)".
model |
SolverException | if preconditions are violated. |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.IAxlVisitor.
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.setAxlVarSetBdd | ( | AxlVarSetBdd | axlVarSetBdd | ) | [protected] |
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.setBddModel | ( | BDD | bddModel | ) | [protected] |
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.setDebuggingInfo | ( | boolean | smDebug, | |
boolean | smSystemOut | |||
) |
For debugging.
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.translateIAXLangElementAtomic | ( | IAXLangElement | element | ) | throws SolverException [protected] |
translates an atomic IAXLangElement into a BDD
element,: | an atomic IAXLangElement or its corresponding AxlElementPath |
the | dummy BDD for element | |
null | if a new BDD is not necessary |
if | element does not represent an atomic element (or bug indicators?) |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.translateIAXLangElementComposite | ( | IAXLangElement | parent, | |
Collection<?extends IAXLangElement > | childrenCollection | |||
) | throws SolverException [protected] |
Translates the relationship between a composite element and its children into a BDD.
parent,: | a composite IAXLangElement or its corresponding AxlElementPath | |
childrenCollection,: | the children elements of parent or their corresponding ElementPaths |
bug | indicators? |
Reimplemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.translateIAXLangElementXor | ( | IAXLangElement | parent, | |
Collection<?extends IAXLangElement > | childrenCollection | |||
) | throws SolverException [protected] |
translates an XOR element to a BDD
parent,: | an XOR IAXLangElement or its corresponding AxlElementPath | |
childrenCollection,: | the children elements of parent or their corresponding ElementPaths |
if | parent does not represent an XOR element (or bug indicators?) |
abstract BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.translateModel | ( | IAXLangElement | model | ) | throws SolverException [protected, pure virtual] |
Translates an aXLang model to a BDD structure (kann noch refaktorisiert werden) reads/uses attributes: bddFactory creates/reads/writes attributes: modelBddVarSet.
model,: | zu übersetzendes Feature-Modell, ansonsten Exception |
Implemented in de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorF2AMapping, de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureConfiguration, and de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.unsetAxlBddVarSet | ( | ) | [protected] |
IAXLangElement de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.theAxlModel [protected] |
AxlVarSetBdd de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.theAxlVarSet [protected] |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.theBddModel [protected] |