Class IndexVariableListener<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.domain.variable.index.IndexVariableListener<Solution_>
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,VariableListener<Solution_,Object>
,IndexVariableSupply
,Supply
public class IndexVariableListener<Solution_> extends Object implements VariableListener<Solution_,Object>, IndexVariableSupply
-
-
Field Summary
Fields Modifier and Type Field Description protected IndexShadowVariableDescriptor<Solution_>
shadowVariableDescriptor
protected ListVariableDescriptor<Solution_>
sourceVariableDescriptor
-
Constructor Summary
Constructors Constructor Description IndexVariableListener(IndexShadowVariableDescriptor<Solution_> shadowVariableDescriptor, ListVariableDescriptor<Solution_> sourceVariableDescriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
void
afterEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
void
afterVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
void
beforeEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
void
beforeEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
void
beforeVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
Integer
getIndex(Object planningValue)
GetplanningValue
's index in thelist variable
it is an element of.protected void
insert(InnerScoreDirector<Solution_,?> scoreDirector, Object entity)
boolean
requiresUniqueEntityEvents()
When set totrue
, this has a slight performance loss in Planner.protected void
retract(InnerScoreDirector<Solution_,?> scoreDirector, Object entity)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.api.domain.variable.VariableListener
close, resetWorkingSolution
-
-
-
-
Field Detail
-
shadowVariableDescriptor
protected final IndexShadowVariableDescriptor<Solution_> shadowVariableDescriptor
-
sourceVariableDescriptor
protected final ListVariableDescriptor<Solution_> sourceVariableDescriptor
-
-
Constructor Detail
-
IndexVariableListener
public IndexVariableListener(IndexShadowVariableDescriptor<Solution_> shadowVariableDescriptor, ListVariableDescriptor<Solution_> sourceVariableDescriptor)
-
-
Method Detail
-
requiresUniqueEntityEvents
public boolean requiresUniqueEntityEvents()
Description copied from interface:VariableListener
When 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:
requiresUniqueEntityEvents
in 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:
beforeEntityAdded
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
afterEntityAdded
public void afterEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityAdded
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
beforeVariableChanged
public void beforeVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeVariableChanged
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
afterVariableChanged
public void afterVariableChanged(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterVariableChanged
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
beforeEntityRemoved
public void beforeEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeEntityRemoved
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
afterEntityRemoved
public void afterEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityRemoved
in interfaceVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
insert
protected void insert(InnerScoreDirector<Solution_,?> scoreDirector, Object entity)
-
retract
protected void retract(InnerScoreDirector<Solution_,?> scoreDirector, Object entity)
-
getIndex
public Integer getIndex(Object planningValue)
Description copied from interface:IndexVariableSupply
GetplanningValue
's index in thelist variable
it is an element of.- Specified by:
getIndex
in interfaceIndexVariableSupply
- Parameters:
planningValue
- never null- Returns:
planningValue
's index in the list variable it is an element of ornull
if the value is unassigned
-
-