Public Member Functions | Protected Member Functions | Private Attributes

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

Implementation of abstract class BDDModel for AXLang feature models. More...

List of all members.

Public Member Functions

 AxlBddVisitorFeatureModel (BddSolverImp bddSolver) throws SolverException
 Constructor.
FeatureModel axlModel ()
boolean checkConsistency () throws SolverException
 fires the consistency checking of a feature model.
BDD getConstrainedBddModel ()

Protected Member Functions

void checkPreconditionOfSetAxlModel (IAXLangElement model) throws SolverException
boolean hasNoChildren (IAXLangElement parent) throws SolverException
 checks if an IAXLAngElement has NO children Hook method of "AxlBddVisitor.translateIAXLangElementAtomic()"
BDD iterateFeatureConstraints (Collection< AXLConstraint > featureConstraints) throws SolverException
 Translates the constraints of the feature model to a BDD structure.
BDD iterateThroughHierarchy (Feature parent) throws SolverException
 Iterating through the children of a feature and building a corresponding BDD.
BDD startIterationThroughHierarchy (IAXLangElement parent) throws SolverException
 Iterating through a feature model and building a corresponding BDD: Start of recursion reads/uses attributes: modelBddVarSet, bddFactory.
BDD translateFeatureConstraint (AXLConstraint featureConstraint) throws SolverException
 Translates a constraint of the feature model to a BDD structure.
BDD translateFeatureModel (FeatureModel featureModel) throws SolverException
 Translates an aXLang feature model to a BDD structure.
BDD translateFeatureOr (Feature parent, Collection<?extends IAXLangElement > childrenCollection) throws SolverException
 interpretes OR features
BDD translateIAXLangElementComposite (IAXLangElement parent, Collection<?extends IAXLangElement > childrenCollection) throws SolverException
 translates the relationship between a composite feature and its subfeatures into a BDD adds some preconditions to the super.operation
BDD translateModel (IAXLangElement model) throws SolverException
 Translates an aXLang feature model to a BDD structure.

Private Attributes

BDD theConstrainedFeatureBddModel
BDD theFeatureConstraintsBddModel

Detailed Description

Implementation of abstract class BDDModel for AXLang feature models.

Author:
smann
Version:
0.9.0
Since:
0.9.0

//TODO: constraints checking


Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.AxlBddVisitorFeatureModel ( BddSolverImp  bddSolver  )  throws SolverException

Constructor.

Parameters:
bddSolver 
Exceptions:
SolverException 

Member Function Documentation

FeatureModel de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.axlModel (  ) 

Get the assigned aXLang application model

Reimplemented from de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.

boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.checkConsistency (  )  throws SolverException [virtual]

fires the consistency checking of a feature model.

Parameters:
feature model
Returns:
the result of the check

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.

void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.checkPreconditionOfSetAxlModel ( IAXLangElement  model  )  throws SolverException [protected, virtual]

Implementation of the precondition check for setModel() method (a hook method)

Parameters:
model,: a feature model
Exceptions:
SolverException 

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.

BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.getConstrainedBddModel (  ) 
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.hasNoChildren ( IAXLangElement  parent  )  throws SolverException [protected, virtual]

checks if an IAXLAngElement has NO children Hook method of "AxlBddVisitor.translateIAXLangElementAtomic()"

Parameters:
parent should be a Feature, a FeatureModel or an corresponding AxlElementPath
Returns:
boolean
Exceptions:
if parent does not represent a Feature or FeatureModel

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.

BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.iterateFeatureConstraints ( Collection< AXLConstraint featureConstraints  )  throws SolverException [protected]

Translates the constraints of the feature model to a BDD structure.

Parameters:
featureConstraints,: the constraints of an AXLang FeatureModel to be translated
Returns:
BDD: the logical interpretation of the constraints in form of a BDD
Return values:
null,: if there are no featureConstraints
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.iterateThroughHierarchy ( Feature  parent  )  throws SolverException [protected]

Iterating through the children of a feature and building a corresponding BDD.

reads/uses attributes: modelBddVarSet, bddFactory

Parameters:
parent,: a feature
Returns:
a BDD for the parent
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.startIterationThroughHierarchy ( IAXLangElement  parent  )  throws SolverException [protected]

Iterating through a feature model and building a corresponding BDD: Start of recursion reads/uses attributes: modelBddVarSet, bddFactory.

Parameters:
parent,: a feature model
Returns:
a BDD for the parent
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.translateFeatureConstraint ( AXLConstraint  featureConstraint  )  throws SolverException [protected]

Translates a constraint of the feature model to a BDD structure.

Parameters:
featureConstraint,: a constraint
Returns:
BDD: the logical interpretation of the constraint in form of a BDD
Return values:
null??? 
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.translateFeatureModel ( FeatureModel  featureModel  )  throws SolverException [protected]

Translates an aXLang feature model to a BDD structure.

Parameters:
featureModel,: an AXLang FeatureModel to be translated
Returns:
BDD
Exceptions:
if there is no feature model
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.translateFeatureOr ( Feature  parent,
Collection<?extends IAXLangElement childrenCollection 
) throws SolverException [protected]

interpretes OR features

Parameters:
parent 
childrenCollection 
Returns:
BDD
Exceptions:
SolverException 
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.translateIAXLangElementComposite ( IAXLangElement  parent,
Collection<?extends IAXLangElement childrenCollection 
) throws SolverException [protected]

translates the relationship between a composite feature and its subfeatures into a BDD adds some preconditions to the super.operation

Parameters:
parent 
childrenCollection 
Returns:
BDD

Reimplemented from de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.

BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorFeatureModel.translateModel ( IAXLangElement  model  )  throws SolverException [protected, virtual]

Translates an aXLang feature model to a BDD structure.

Parameters:
model,: zu übersetzendes Feature-Modell, ansonsten Exception
Returns:
BDD

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.


Member Data Documentation