Class ExternalizedCollectionInverseVariableSupply<Solution_>
- java.lang.Object
-
- org.optaplanner.core.impl.domain.variable.inverserelation.ExternalizedCollectionInverseVariableSupply<Solution_>
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,AbstractVariableListener<Solution_,Object>
,VariableListener<Solution_,Object>
,CollectionInverseVariableSupply
,SourcedVariableListener<Solution_>
,Supply
public class ExternalizedCollectionInverseVariableSupply<Solution_> extends Object implements SourcedVariableListener<Solution_>, VariableListener<Solution_,Object>, CollectionInverseVariableSupply
Alternative toCollectionInverseVariableListener
.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<Object,Set<Object>>
inverseEntitySetMap
protected VariableDescriptor<Solution_>
sourceVariableDescriptor
-
Constructor Summary
Constructors Constructor Description ExternalizedCollectionInverseVariableSupply(VariableDescriptor<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)
void
close()
Called before thisAbstractVariableListener
is thrown away and not used anymore.Collection<?>
getInverseCollection(Object value)
If entity1.varA = x then an inverse of x is entity1.VariableDescriptor<Solution_>
getSourceVariableDescriptor()
protected void
insert(Object entity)
void
resetWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Called when the entire working solution changes.protected void
retract(Object entity)
String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.optaplanner.core.api.domain.variable.AbstractVariableListener
requiresUniqueEntityEvents
-
-
-
-
Constructor Detail
-
ExternalizedCollectionInverseVariableSupply
public ExternalizedCollectionInverseVariableSupply(VariableDescriptor<Solution_> sourceVariableDescriptor)
-
-
Method Detail
-
getSourceVariableDescriptor
public VariableDescriptor<Solution_> getSourceVariableDescriptor()
- Specified by:
getSourceVariableDescriptor
in interfaceSourcedVariableListener<Solution_>
-
resetWorkingSolution
public void resetWorkingSolution(ScoreDirector<Solution_> scoreDirector)
Description copied from interface:AbstractVariableListener
Called 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:
resetWorkingSolution
in interfaceAbstractVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never null
-
close
public void close()
Description copied from interface:AbstractVariableListener
Called before thisAbstractVariableListener
is thrown away and not used anymore.- Specified by:
close
in interfaceAbstractVariableListener<Solution_,Object>
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
beforeEntityAdded
public void beforeEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
beforeEntityAdded
in interfaceAbstractVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
afterEntityAdded
public void afterEntityAdded(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityAdded
in interfaceAbstractVariableListener<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 interfaceAbstractVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
afterEntityRemoved
public void afterEntityRemoved(ScoreDirector<Solution_> scoreDirector, Object entity)
- Specified by:
afterEntityRemoved
in interfaceAbstractVariableListener<Solution_,Object>
- Parameters:
scoreDirector
- never nullentity
- never null
-
insert
protected void insert(Object entity)
-
retract
protected void retract(Object entity)
-
getInverseCollection
public Collection<?> getInverseCollection(Object value)
Description copied from interface:CollectionInverseVariableSupply
If entity1.varA = x then an inverse of x is entity1.- Specified by:
getInverseCollection
in interfaceCollectionInverseVariableSupply
- Parameters:
value
- never null- Returns:
- never null, a
Collection
of entities for which the planning variable is the planningValue.
-
-