Class VariableDescriptor<Solution_>

java.lang.Object
ai.timefold.solver.core.impl.domain.variable.descriptor.VariableDescriptor<Solution_>
Type Parameters:
Solution_ - the solution type, the class with the PlanningSolution annotation
Direct Known Subclasses:
GenuineVariableDescriptor, ShadowVariableDescriptor

public abstract class VariableDescriptor<Solution_> extends Object
  • Field Details

  • Constructor Details

  • Method Details

    • getOrdinal

      public int getOrdinal()
      A number unique within an EntityDescriptor, increasing sequentially from zero. Used for indexing in arrays to avoid object hash lookups in maps.
      Returns:
      zero or higher
    • getEntityDescriptor

      public EntityDescriptor<Solution_> getEntityDescriptor()
    • getVariableName

      public String getVariableName()
    • getSimpleEntityAndVariableName

      public String getSimpleEntityAndVariableName()
    • getVariablePropertyType

      public Class<?> getVariablePropertyType()
    • linkVariableDescriptors

      public abstract void linkVariableDescriptors(DescriptorPolicy descriptorPolicy)
    • isListVariable

      public final boolean isListVariable()
    • canBeUsedAsSource

      public boolean canBeUsedAsSource()
    • registerSinkVariableDescriptor

      public void registerSinkVariableDescriptor(ShadowVariableDescriptor<Solution_> shadowVariableDescriptor)
    • getSinkVariableDescriptorList

      public List<ShadowVariableDescriptor<Solution_>> getSinkVariableDescriptorList()
      Returns:
      never null, only direct shadow variables that are affected by this variable
    • isValuePotentialAnchor

      public boolean isValuePotentialAnchor(Object value)
      Parameters:
      value - never null
      Returns:
      true if it might be an anchor, false if it is definitely not an anchor
    • getValue

      public <Value_> Value_ getValue(Object entity)
    • setValue

      public void setValue(Object entity, Object value)
    • getMemberAccessorSpeedNote

      public String getMemberAccessorSpeedNote()
    • isGenuineAndUninitialized

      public final boolean isGenuineAndUninitialized(Object entity)
    • getVariableMetaModel

      public VariableMetaModel<Solution_,?,?> getVariableMetaModel()