Class RescheduleValueChangeVisitor
java.lang.Object
net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
net.ssehub.easy.reasoning.sseReasoner.RescheduleValueChangeVisitor
- All Implemented Interfaces:
net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener,net.ssehub.easy.varModel.model.values.IValueVisitor
class RescheduleValueChangeVisitor
extends net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
implements net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener
Reschedules value changes. Uses the provided resolver instance to perform further transformations and to
register new constraints with the constraint base.
- Author:
- Holger Eichelberger
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener
net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener.ChangeKind -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate static final net.ssehub.easy.basics.logger.EASyLoggerFactory.EASyLoggerprivate net.ssehub.easy.varModel.model.values.Valueprivate Resolverprivate net.ssehub.easy.varModel.confModel.IDecisionVariableprivate net.ssehub.easy.varModel.confModel.IDecisionVariable -
Constructor Summary
ConstructorsConstructorDescriptionRescheduleValueChangeVisitor(Resolver resolver) Creates a rescheduling value change visitor for a certain resolver instance. -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanisValueTypeChange(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value newValue, net.ssehub.easy.varModel.model.values.Value oldValue) Returns whether a value change fromoldValuetonewValueonvariableis a value type change.voidnotifyChanged(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value oldValue, net.ssehub.easy.varModel.confModel.IAssignmentState oldState, net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener.ChangeKind kind) voidnotifyUnresolved(net.ssehub.easy.varModel.confModel.IDecisionVariable variable) private voidrescheduleConstraintsForChilds(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, boolean decl) Determines the constraints needed forvariableand its (transitive) child slots.private voidrescheduleConstraintsForParent(net.ssehub.easy.varModel.confModel.IDecisionVariable variable) Determines the constraints needed for the parents ofvariable.(package private) voidrescheduleValueChange(net.ssehub.easy.varModel.confModel.IDecisionVariable varParent, net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value oldValue, boolean clear) Re-schedules a changed constraint value but only if rescheduling is needed.voidvisitCompoundValue(net.ssehub.easy.varModel.model.values.CompoundValue newValue) voidvisitConstraintValue(net.ssehub.easy.varModel.model.values.ConstraintValue value) voidvisitContainerValue(net.ssehub.easy.varModel.model.values.ContainerValue newValue) Methods inherited from class net.ssehub.easy.varModel.model.values.ValueVisitorAdapter
visitBooleanValue, visitEnumValue, visitIntValue, visitMetaTypeValue, visitNullValue, visitRealValue, visitReferenceValue, visitStringValue, visitVersionValue
-
Field Details
-
LOGGER
private static final net.ssehub.easy.basics.logger.EASyLoggerFactory.EASyLogger LOGGER -
resolver
-
clear
private boolean clear -
oldValue
private net.ssehub.easy.varModel.model.values.Value oldValue -
variable
private net.ssehub.easy.varModel.confModel.IDecisionVariable variable -
varParent
private net.ssehub.easy.varModel.confModel.IDecisionVariable varParent
-
-
Constructor Details
-
RescheduleValueChangeVisitor
Creates a rescheduling value change visitor for a certain resolver instance.- Parameters:
resolver- the resolver instance
-
-
Method Details
-
visitConstraintValue
public void visitConstraintValue(net.ssehub.easy.varModel.model.values.ConstraintValue value) - Specified by:
visitConstraintValuein interfacenet.ssehub.easy.varModel.model.values.IValueVisitor- Overrides:
visitConstraintValuein classnet.ssehub.easy.varModel.model.values.ValueVisitorAdapter
-
visitCompoundValue
public void visitCompoundValue(net.ssehub.easy.varModel.model.values.CompoundValue newValue) - Specified by:
visitCompoundValuein interfacenet.ssehub.easy.varModel.model.values.IValueVisitor- Overrides:
visitCompoundValuein classnet.ssehub.easy.varModel.model.values.ValueVisitorAdapter
-
visitContainerValue
public void visitContainerValue(net.ssehub.easy.varModel.model.values.ContainerValue newValue) - Specified by:
visitContainerValuein interfacenet.ssehub.easy.varModel.model.values.IValueVisitor- Overrides:
visitContainerValuein classnet.ssehub.easy.varModel.model.values.ValueVisitorAdapter
-
rescheduleValueChange
void rescheduleValueChange(net.ssehub.easy.varModel.confModel.IDecisionVariable varParent, net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value oldValue, boolean clear) Re-schedules a changed constraint value but only if rescheduling is needed.- Parameters:
varParent- the parent variable holdingvariable, if not nested usevariablevariable- the variable for which the value changedoldValue- the old valueclear- whether constraints forholdershall be cleared
-
notifyChanged
public void notifyChanged(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value oldValue, net.ssehub.easy.varModel.confModel.IAssignmentState oldState, net.ssehub.easy.varModel.cstEvaluation.IValueChangeListener.ChangeKind kind) - Specified by:
notifyChangedin interfacenet.ssehub.easy.varModel.cstEvaluation.IValueChangeListener
-
notifyUnresolved
public void notifyUnresolved(net.ssehub.easy.varModel.confModel.IDecisionVariable variable) - Specified by:
notifyUnresolvedin interfacenet.ssehub.easy.varModel.cstEvaluation.IValueChangeListener
-
isValueTypeChange
private boolean isValueTypeChange(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, net.ssehub.easy.varModel.model.values.Value newValue, net.ssehub.easy.varModel.model.values.Value oldValue) Returns whether a value change fromoldValuetonewValueonvariableis a value type change.- Parameters:
variable- the variablenewValue- the new value (invariableoldValue- the old value- Returns:
truefor type change,falseelse
-
rescheduleConstraintsForParent
private void rescheduleConstraintsForParent(net.ssehub.easy.varModel.confModel.IDecisionVariable variable) Determines the constraints needed for the parents ofvariable.- Parameters:
variable- the variable to analyze
-
rescheduleConstraintsForChilds
private void rescheduleConstraintsForChilds(net.ssehub.easy.varModel.confModel.IDecisionVariable variable, boolean decl) Determines the constraints needed forvariableand its (transitive) child slots.- Parameters:
variable- the variable to analyzedecl- reschedule on the declaration ofvariableor onvariableitself
-