Implementation of abstract class BDDModel for AXLang application models. More...
Public Member Functions | |
AxlBddVisitorApplicationModel (BddSolverImp manager) throws SolverException | |
Constructor. | |
AbstractArchitectureModel | axlModel () |
boolean | checkConsistency () throws SolverException |
fires the consistency checking of an application model. | |
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 | iterateThroughDelegationConnectors (IAXLangElement parent, IAXLangElement pT) throws SolverException |
Iterates through all delegation connectors of a SubComponent and interpret them. precondition (not checked): The BDD variables for ports already exist. | |
BDD | iterateThroughHierarchy (IAXLangElement parent) throws SolverException |
Iterating through the children of an subcomponent and building a corresponding BDD. | |
BDD | iterateThroughHorizontalConnectors (IAXLangElement parent, IAXLangElement pT) throws SolverException |
Iterates through all horizontal connectors of a SubComponent and interpret them. precondition (not checked): The BDD variables for ports already exist. | |
BDD | iterateThroughPorts (IAXLangElement parent, IAXLangElement pT) throws SolverException |
Iterates through all ports of a SubComponent and interpret them. For all ports corresponding BDD variables are created so that they can be accessed via theAxlVarSet later on. | |
BDD | startIterationThroughHierarchy (IAXLangElement parentType) throws SolverException |
Iterating through an application model and building a corresponding BDD: Start of recursion. | |
BDD | translateApplicationModel (AbstractArchitectureModel appModel) throws SolverException |
Translates an aXLang application model to a BDD structure. | |
BDD | translateDelegations (IAXLangElement parent, AxlElementPath parentPath, AxlElementPath parentPortPath, Collection< AxlElementPath > connectedPortPathCollection) throws SolverException |
Translates the relationship between a component and one of its ports into a BDD. | |
BDD | translateHorizontalConnectorsV1 (IAXLangElement parent, AxlElementPath parentPath, Collection< IAXLangElement > horConnectorCollection) throws SolverException |
Translates the horizontal connectors into a BDD. Version1: Translate each horizontal connector as a single, isolated constraint. | |
BDD | translateHorizontalConnectorsV2 (IAXLangElement parent, AxlElementPath parentPath, Collection< IAXLangElement > horConnectorCollection) throws SolverException |
Translates the horizontal connectors into a BDD. Version2: Translate all horizontal connectors which are all connected to the same output port together! (similar to the approach of translating delegation connectors). | |
BDD | translateIAXLangElementComposite (IAXLangElement parent, Collection<?extends IAXLangElement > childrenCollection) throws SolverException |
Translates the relationship between a composite component and its subcomponents into a BDD. Adds some preconditions to the super operation. | |
BDD | translateModel (IAXLangElement model) throws SolverException |
Translates an aXLang application model to a BDD structure. | |
BDD | translatePort (IAXLangElement parent, IAXLangElement port) throws SolverException |
Translates the relationship between a component and one of its ports into a BDD. |
Implementation of abstract class BDDModel for AXLang application models.
In order to distinguish between multiply used components in an application model the class uses de.fraunhofer.isst.axbench.operations.checker.solver.AxlElementPath class.
For the public:
consideration of ports, connectors, signals, services etc. //TODO
data structure for results etc. //TODO
de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.AxlBddVisitorApplicationModel | ( | BddSolverImp | manager | ) | throws SolverException |
Constructor.
bddSolver |
SolverException |
AbstractArchitectureModel de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.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.AxlBddVisitorApplicationModel.checkConsistency | ( | ) | throws SolverException [virtual] |
fires the consistency checking of an application model.
application | model to be checked |
internal | exceptions |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.
void de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.checkPreconditionOfSetAxlModel | ( | IAXLangElement | model | ) | throws SolverException [protected, virtual] |
Implementation of the precondition check for setModel() method (a hook method)
model,: | a f2a mapping |
SolverException |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.
boolean de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.hasNoChildren | ( | IAXLangElement | parent | ) | throws SolverException [protected, virtual] |
checks if an IAXLAngElement has NO children Hook method of "AxlBddVisitor.translateIAXLangElementAtomic()"
parent | should be a Component, a SubComponent or an corresponding AxlElementPath |
if | parent does not represent a Component or SubComponent |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.iterateThroughDelegationConnectors | ( | IAXLangElement | parent, | |
IAXLangElement | pT | |||
) | throws SolverException [protected] |
Iterates through all delegation connectors of a SubComponent and interpret them. precondition (not checked): The BDD variables for ports already exist.
parent,: | a SubComponent or its corresponding AxlElementPath | |
parentType,: | the component type of parent |
null | if no delegation connectors |
if | parent does not represent a SubComponent |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.iterateThroughHierarchy | ( | IAXLangElement | parent | ) | throws SolverException [protected] |
Iterating through the children of an subcomponent and building a corresponding BDD.
parent,: | a SubComponent or an AxlElementPath of the SubComponent |
if | parent does not represent a SubComponent |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.iterateThroughHorizontalConnectors | ( | IAXLangElement | parent, | |
IAXLangElement | pT | |||
) | throws SolverException [protected] |
Iterates through all horizontal connectors of a SubComponent and interpret them. precondition (not checked): The BDD variables for ports already exist.
parent,: | a SubComponent or its corresponding AxlElementPath | |
parentType,: | the component type of parent |
null | if no horizontal connectors |
if | parent does not represent a SubComponent |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.iterateThroughPorts | ( | IAXLangElement | parent, | |
IAXLangElement | pT | |||
) | throws SolverException [protected] |
Iterates through all ports of a SubComponent and interpret them. For all ports corresponding BDD variables are created so that they can be accessed via theAxlVarSet later on.
parent,: | a SubComponent or its corresponding AxlElementPath | |
parentType,: | the component type of parent |
if | parent does not represent a SubComponent |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.startIterationThroughHierarchy | ( | IAXLangElement | parentType | ) | throws SolverException [protected] |
Iterating through an application model and building a corresponding BDD: Start of recursion.
parentType,: | the component type (Component) as the root (e.g. root component of an application model) or the ElemenPath of that component type |
if | parentType does not represent a Component or ... //TODO |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateApplicationModel | ( | AbstractArchitectureModel | appModel | ) | throws SolverException [protected] |
Translates an aXLang application model to a BDD structure.
Currently, here it is decided whether ElementPaths or usual IAXLAngElements are used for checking.
appModel,: | the application model to be translated |
if | appModel is null or if internally is something wrong (a bug indicator?) |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateDelegations | ( | IAXLangElement | parent, | |
AxlElementPath | parentPath, | |||
AxlElementPath | parentPortPath, | |||
Collection< AxlElementPath > | connectedPortPathCollection | |||
) | throws SolverException [protected] |
Translates the relationship between a component and one of its ports into a BDD.
parent,: | a SubComponent | |
parentPath,: | the corresponding AxlElementPath for parent | |
parentPortPath,: | the AxlElementPath of a parent's port | |
connectedPortPathCollection,: | the ElementPaths of all connected ports of parentPort connectedPortPathCollection is not empty |
//?if | parent does not represent a *composite* SubComponent or Component (or internal exceptions) |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateHorizontalConnectorsV1 | ( | IAXLangElement | parent, | |
AxlElementPath | parentPath, | |||
Collection< IAXLangElement > | horConnectorCollection | |||
) | throws SolverException [protected] |
Translates the horizontal connectors into a BDD. Version1: Translate each horizontal connector as a single, isolated constraint.
parent,: | a SubComponent or its corresponding AxlElementPath | |
parentPath,: | the corresponding AxlElementPath of parent (maybe null) | |
horConnectionCollection,: | the set of horizontal connections within parent to be translated |
null | if there are no horizontal connectors to be translated |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateHorizontalConnectorsV2 | ( | IAXLangElement | parent, | |
AxlElementPath | parentPath, | |||
Collection< IAXLangElement > | horConnectorCollection | |||
) | throws SolverException [protected] |
Translates the horizontal connectors into a BDD. Version2: Translate all horizontal connectors which are all connected to the same output port together! (similar to the approach of translating delegation connectors).
parent,: | a SubComponent or its corresponding AxlElementPath | |
parentPath,: | the corresponding AxlElementPath of parent (maybe null) | |
horConnectionCollection,: | the set of horizontal connections within parent to be translated |
null | if there are no horizontal connectors to be translated |
\xrefitem | todo 40. |
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateIAXLangElementComposite | ( | IAXLangElement | parent, | |
Collection<?extends IAXLangElement > | childrenCollection | |||
) | throws SolverException [protected] |
Translates the relationship between a composite component and its subcomponents into a BDD. Adds some preconditions to the super operation.
parent,: | a composite SubComponent or its corresponding AxlElementPath | |
childrenCollection,: | the subcomponents of parent or their corresponding ElementPaths |
if | parent does not represent a *composite* SubComponent or Component (or internal exceptions) |
Reimplemented from de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translateModel | ( | IAXLangElement | model | ) | throws SolverException [protected, virtual] |
Translates an aXLang application model to a BDD structure.
model,: | the application model to be translated |
if | model is not an AXLang application model |
Implements de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitor.
BDD de.fraunhofer.isst.axbench.operations.checker.solver.variabilityvisitor.impold.AxlBddVisitorApplicationModel.translatePort | ( | IAXLangElement | parent, | |
IAXLangElement | port | |||
) | throws SolverException [protected] |
Translates the relationship between a component and one of its ports into a BDD.
parent,: | a SubComponent or its corresponding AxlElementPath | |
port,: | a port of parent or its corresponding ElementPaths |
//?if | parent does not represent a *composite* SubComponent or Component (or internal exceptions) |