Class ExternalizedSingletonListInverseVariableSupply<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.domain.variable.inverserelation.ExternalizedSingletonListInverseVariableSupply<Solution_>
-
- All Implemented Interfaces:
Closeable,AutoCloseable,VariableListener<Solution_,Object>,SingletonInverseVariableSupply,SourcedVariableListener<Solution_,Object>,Supply
public class ExternalizedSingletonListInverseVariableSupply<Solution_> extends Object implements SourcedVariableListener<Solution_,Object>, SingletonInverseVariableSupply
Alternative toSingletonListInverseVariableListener.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<Object,Object>inverseEntityMapprotected ListVariableDescriptor<Solution_>sourceVariableDescriptor
-
Constructor Summary
Constructors Constructor Description ExternalizedSingletonListInverseVariableSupply(ListVariableDescriptor<Solution_> sourceVariableDescriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)voidafterEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)voidafterVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)voidbeforeEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)voidbeforeEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)voidbeforeVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)voidclose()Called before thisVariableListeneris thrown away and not used anymore.ObjectgetInverseSingleton(Object value)If entity1.varA = x then the inverse of x is entity1.VariableDescriptor<Solution_>getSourceVariableDescriptor()protected voidinsert(ScoreDirector<Solution_> scoreDirector, Object entity)booleanrequiresUniqueEntityEvents()When set totrue, this has a slight performance loss in Planner.voidresetWorkingSolution(ScoreDirector<Solution_> scoreDirector)Called when the entire working solution changes.protected voidretract(ScoreDirector<Solution_> scoreDirector, Object entity)StringtoString()
-
-
-
Field Detail
-
sourceVariableDescriptor
protected final ListVariableDescriptor<Solution_> sourceVariableDescriptor
-
-
Constructor Detail
-
ExternalizedSingletonListInverseVariableSupply
public ExternalizedSingletonListInverseVariableSupply(ListVariableDescriptor<Solution_> sourceVariableDescriptor)
-
-
Method Detail
-
getSourceVariableDescriptor
public VariableDescriptor<Solution_> getSourceVariableDescriptor()
- Specified by:
getSourceVariableDescriptorin interfaceSourcedVariableListener<Solution_,Object>
-
resetWorkingSolution
public void resetWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Description copied from interface:VariableListenerCalled when the entire working solution changes. In this event, the other before..()/after...() methods will not be called. At this point, implementations should clear state, if any.- Specified by:
resetWorkingSolutionin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never null
-
close
public void close()
Description copied from interface:VariableListenerCalled before thisVariableListeneris thrown away and not used anymore.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceVariableListener<Solution_,Object>
-
requiresUniqueEntityEvents
public boolean requiresUniqueEntityEvents()
Description copied from interface:VariableListenerWhen set totrue, this has a slight performance loss in Planner. When set tofalse, it's often easier to make the listener implementation correct and fast.- Specified by:
requiresUniqueEntityEventsin interfaceVariableListener<Solution_,Object>- Returns:
- true to guarantee that each of the before/after methods will only be called once per entity instance per operation type (add, change or remove).
-
beforeEntityAdded
public void beforeEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeEntityAddedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
afterEntityAdded
public void afterEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityAddedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
beforeVariableChanged
public void beforeVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeVariableChangedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
afterVariableChanged
public void afterVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterVariableChangedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
beforeEntityRemoved
public void beforeEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeEntityRemovedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
afterEntityRemoved
public void afterEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityRemovedin interfaceVariableListener<Solution_,Object>- Parameters:
scoreDirector- never nullentity- never null
-
insert
protected void insert(ScoreDirector<Solution_> scoreDirector, Object entity)
-
retract
protected void retract(ScoreDirector<Solution_> scoreDirector, Object entity)
-
getInverseSingleton
public Object getInverseSingleton(Object value)
Description copied from interface:SingletonInverseVariableSupplyIf entity1.varA = x then the inverse of x is entity1.- Specified by:
getInverseSingletonin interfaceSingletonInverseVariableSupply- Parameters:
value- never null- Returns:
- sometimes null, an entity for which the planning variable is the planningValue.
-
-