Public Member Functions | Protected Member Functions | Package Attributes | Private Attributes

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel Class Reference

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

List of all members.

Public Member Functions

FeatureModel axlModel ()
 AxlVariabilityVisitorFeatureModel (FeatureModel model) throws SolverException
 Constructor.
 AxlVariabilityVisitorFeatureModel ()
 Constructor.
boolean checkConsistency () throws SolverException
boolean checkConsistencyIteratively () throws SolverException
boolean checkConsistencyWithConstraints () throws SolverException
boolean checkConsistencyWithoutConstraints () throws SolverException
void computeValidConfigurations () throws SolverException
 computes the theoretically possible configurations for the feature model It uses BDDs for this task.
AxlFormula constrainedVariabilityFormula ()
AxlFormulaCollection constrainedVariabilityFormulaCollection ()
AxlFormula featureConstraintsVariabilityFormula ()
AxlFormulaCollection featureConstraintsVariabilityFormulaCollection ()
void interpret () throws SolverException
 Interpret the variability.
void setFeatureModel (FeatureModel model) throws SolverException

Protected Member Functions

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

Package Attributes

Collection< AXLConstrainttheFeatureConstraints

Private Attributes

AxlFormula theConstrainedFeatureVarFormula
AxlFormulaCollection theConstrainedFeatureVarFormulaCollection
AxlFormula theFeatureConstraintsVarFormula
AxlFormulaCollection theFeatureConstraintsVarFormulaCollection

Detailed Description

Implementation of abstract class AxlVariabilityVisitorModel for AXLang feature models.

Author:
smann
Version:
0.9.0
Since:
0.9.0

Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.AxlVariabilityVisitorFeatureModel (  ) 

Constructor.

de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.AxlVariabilityVisitorFeatureModel ( FeatureModel  model  )  throws SolverException

Constructor.


Member Function Documentation

FeatureModel de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.axlModel (  ) 
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.checkConsistency (  )  throws SolverException [virtual]
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.checkConsistencyIteratively (  )  throws SolverException
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.checkConsistencyWithConstraints (  )  throws SolverException
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.checkConsistencyWithoutConstraints (  )  throws SolverException
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.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.imp.AxlVariabilityVisitor.

void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.clear (  )  [protected]
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.computeValidConfigurations (  )  throws SolverException [virtual]

computes the theoretically possible configurations for the feature model It uses BDDs for this task.

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitor.

AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.constrainedVariabilityFormula (  ) 
AxlFormulaCollection de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.constrainedVariabilityFormulaCollection (  ) 
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.constructorInitializer (  )  [protected]
AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.featureConstraintsVariabilityFormula (  ) 
AxlFormulaCollection de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.featureConstraintsVariabilityFormulaCollection (  ) 
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.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.imp.AxlVariabilityVisitorModel.

void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.interpret (  )  throws SolverException
AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.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

<TODO FORMULACOLLECTIONTEST

AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.iterateThroughHierarchy ( IAXLangElement  parent  )  throws SolverException [protected, virtual]

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

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorModel.

void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.setFeatureModel ( FeatureModel  model  )  throws SolverException
AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.startIterationThroughHierarchy ( IAXLangElement  parent  )  throws SolverException [protected, virtual]

Iterating through a feature model and building a corresponding AxlFormula: Start of recursion.

Currently, the formula is stored twice as a AxlFormula and as a AxlFormulaCollection

Parameters:
parent,: a feature model (or a feature as a root to be considered)
Returns:
an AxlFormula for the parent

<TODO FORMULACOLLECTIONTEST

Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorModel.

AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.translateFeatureConstraint ( AXLConstraint  featureConstraint  )  throws SolverException [protected]

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

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

Translates an aXLang feature model to a BDD structure.

Parameters:
featureModel,: an AXLang FeatureModel to be translated
Returns:
void
Exceptions:
if there is no feature model
AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.translateFeatureOr ( IAXLangElement  parent  )  throws SolverException [protected]

interprets OR features

Parameters:
parent 
childrenCollection 
Returns:
BDD
Exceptions:
SolverException 

<TODO FORMULACOLLECTIONTEST

AxlFormula de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.translateIAXLangElementComposite ( IAXLangElement  parent  )  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 
Returns:
AxlFormula

Reimplemented from de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorModel.

void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.imp.AxlVariabilityVisitorFeatureModel.translateModel ( IAXLangElement  model  )  throws SolverException [protected, virtual]

Member Data Documentation