Class AbstractConfigurationStatisticsVisitor
- java.lang.Object
-
- net.ssehub.easy.varModel.confModel.AbstractConfigurationVisitor
-
- net.ssehub.easy.varModel.confModel.AbstractConfigurationStatisticsVisitor
-
- All Implemented Interfaces:
IConfigurationVisitor
- Direct Known Subclasses:
DefaultConfigurationStatisticsVisitor
public abstract class AbstractConfigurationStatisticsVisitor extends AbstractConfigurationVisitor
Visitor for aConfigurationto generate statistics of the configuration.- Author:
- El-Sharkawy
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractConfigurationStatisticsVisitor.ConfigStatisticsGathered statistical information of the visited configuration.
-
Field Summary
Fields Modifier and Type Field Description private AbstractVisitorprojectVisitorprivate AbstractConfigurationStatisticsVisitor.ConfigStatisticsstatistics
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractConfigurationStatisticsVisitor(AbstractConfigurationStatisticsVisitor.ConfigStatistics statistics)Sole constructor of this class.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description AbstractConfigurationStatisticsVisitor.ConfigStatisticsgetStatistics()Returns the collected statistics.protected voidprocessEvalConstraints(PartialEvaluationBlock evalBlock)Processes constraints within an eval-block.protected abstract voidspecialTreatment(IDecisionVariable variable)Optional hook to realize additional statistics for (nested) variables.protected abstract voidspecialTreatment(Project mainProject)Optional hook to realize additional statistics for the underlying IVML project.protected voidvisitAssignment(AttributeAssignment assng)Processes attribute assignments.voidvisitConfiguration(Configuration configuration)Visits a configuration.protected voidvisitConstraint(Constraint constraint)Processes a constraint.voidvisitDecisionVariable(IDecisionVariable variable)Visits a decision variable.protected voidvisitDefaultValue(ConstraintSyntaxTree constraint)Processes a default value.protected voidvisitOperationDefinition(OperationDefinition opdef)Processes an operation definition.private voidvisitRefines(Compound cmp)Visits all refined compounds and collects statistics.voidvisitVariable(IDecisionVariable variable, boolean nestedInContainer)Recursive part to visit all (nested) variables.protected voidvisitVariableContainer(IDecisionVariableContainer cnt)Processes elements within a variable container.
-
-
-
Field Detail
-
statistics
private AbstractConfigurationStatisticsVisitor.ConfigStatistics statistics
-
projectVisitor
private AbstractVisitor projectVisitor
-
-
Constructor Detail
-
AbstractConfigurationStatisticsVisitor
protected AbstractConfigurationStatisticsVisitor(AbstractConfigurationStatisticsVisitor.ConfigStatistics statistics)
Sole constructor of this class.- Parameters:
statistics- A data object to store the statistical information.
-
-
Method Detail
-
visitConfiguration
public void visitConfiguration(Configuration configuration)
Description copied from class:AbstractConfigurationVisitorVisits a configuration.- Specified by:
visitConfigurationin interfaceIConfigurationVisitor- Overrides:
visitConfigurationin classAbstractConfigurationVisitor- Parameters:
configuration- the configuration to visit
-
visitDecisionVariable
public void visitDecisionVariable(IDecisionVariable variable)
Description copied from interface:IConfigurationVisitorVisits a decision variable.- Parameters:
variable- the decision variable to visit
-
visitVariable
public void visitVariable(IDecisionVariable variable, boolean nestedInContainer)
Recursive part to visit all (nested) variables.- Parameters:
variable- The visited decision variable instance.nestedInContainer- true if the parent is a container, false otherwise.
-
visitRefines
private void visitRefines(Compound cmp)
Visits all refined compounds and collects statistics.- Parameters:
cmp- the compound to visit
-
processEvalConstraints
protected void processEvalConstraints(PartialEvaluationBlock evalBlock)
Processes constraints within an eval-block.- Parameters:
evalBlock- the block to process
-
visitVariableContainer
protected void visitVariableContainer(IDecisionVariableContainer cnt)
Processes elements within a variable container.- Parameters:
cnt- the container
-
visitAssignment
protected void visitAssignment(AttributeAssignment assng)
Processes attribute assignments.- Parameters:
assng- the assignment
-
getStatistics
public AbstractConfigurationStatisticsVisitor.ConfigStatistics getStatistics()
Returns the collected statistics.- Returns:
- The collected statistics, will be empty if the visit method was not called before.
-
specialTreatment
protected abstract void specialTreatment(IDecisionVariable variable)
Optional hook to realize additional statistics for (nested) variables.- Parameters:
variable- A visited variable. This will be called for all variables, independently if they are m toplevel variables or if they are nested.
-
specialTreatment
protected abstract void specialTreatment(Project mainProject)
Optional hook to realize additional statistics for the underlying IVML project.- Parameters:
mainProject-Configuration.getProject().
-
visitConstraint
protected void visitConstraint(Constraint constraint)
Processes a constraint. Added later, so default implementation is empty.- Parameters:
constraint- the constraint to process (contained constraint may be null)
-
visitDefaultValue
protected void visitDefaultValue(ConstraintSyntaxTree constraint)
Processes a default value. Added later, so default implementation is empty.- Parameters:
constraint- the constraint to process (may be null)
-
visitOperationDefinition
protected void visitOperationDefinition(OperationDefinition opdef)
Processes an operation definition. Added later, so default implementation is empty.- Parameters:
opdef- the operation definition
-
-