Public Member Functions | Protected Member Functions | Protected Attributes

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor Class Reference

abstract class for the BDD interpretation of the different aXLang models it requires an implementation of BDDS, i.e. net.sf.javabdd.BDD More...

List of all members.

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

Detailed Description

abstract class for the BDD interpretation of the different aXLang models it requires an implementation of BDDS, i.e. net.sf.javabdd.BDD

Author:
smann
Version:
0.9.0
Since:
0.9.0

Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.AxlBddVisitor ( BddSolverImp  manager  )  throws SolverException

Constructor.

Parameters:
bddSolver 

Member Function Documentation

IAXLangElement de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.axlModel (  ) 
abstract boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.checkConsistency (  )  throws SolverException [pure virtual]
abstract void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.checkPreconditionOfSetAxlModel ( IAXLangElement  model  )  throws SolverException [protected, pure virtual]
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()"

Parameters:
parent should be an IAXLangElement or an corresponding AxlElementPath
Returns:
boolean
Exceptions:
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)".

Parameters:
model 
Exceptions:
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

Parameters:
element,: an atomic IAXLangElement or its corresponding AxlElementPath
Returns:
the corresponding BDD
Return values:
the dummy BDD for element
null if a new BDD is not necessary
Exceptions:
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.

Parameters:
parent,: a composite IAXLangElement or its corresponding AxlElementPath
childrenCollection,: the children elements of parent or their corresponding ElementPaths
Returns:
the corresponding BDD
Exceptions:
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

Parameters:
parent,: an XOR IAXLangElement or its corresponding AxlElementPath
childrenCollection,: the children elements of parent or their corresponding ElementPaths
Returns:
the corresponding BDD
Exceptions:
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]
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.unsetAxlBddVarSet (  )  [protected]

Member Data Documentation