Package org.optaplanner.core.impl.domain.variable.descriptor

## Class GenuineVariableDescriptor<Solution_>

- java.lang.Object
- - org.optaplanner.core.impl.domain.variable.descriptor.VariableDescriptor<Solution_>
  - - org.optaplanner.core.impl.domain.variable.descriptor.GenuineVariableDescriptor<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation
  All Implemented Interfaces:
    `Serializable`

      public class GenuineVariableDescriptor<Solution_>
      extends VariableDescriptor<Solution_>

  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.optaplanner.core.impl.domain.variable.descriptor.VariableDescriptor

      `entityDescriptor, sinkVariableDescriptorList, variableMemberAccessor, variableName`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GenuineVariableDescriptor​(EntityDescriptor<Solution_> entityDescriptor, MemberAccessor variableMemberAccessor)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SelectionSorter` | `getDecreasingStrengthSorter()` |
    `SelectionSorter` | `getIncreasingStrengthSorter()` |
    `SelectionFilter` | `getMovableChainedTrailingValueFilter()` |
    `SelectionFilter` | `getReinitializeVariableEntityFilter()` |
    `long` | `getValueCount​(Solution_ solution, Object entity)` |
    `ValueRangeDescriptor<Solution_>` | `getValueRangeDescriptor()` |
    `boolean` | `hasMovableChainedTrailingValueFilter()` |
    `boolean` | `isChained()` |
    `boolean` | `isGenuineAndUninitialized​(Object entity)` |
    `boolean` | `isInitialized​(Object entity)` | A `PlanningVariable.nullable()` value is always considered initialized.
    `boolean` | `isNullable()` |
    `boolean` | `isReinitializable​(ScoreDirector<Solution_> scoreDirector, Object entity)` |
    `boolean` | `isValueRangeEntityIndependent()` |
    `void` | `linkVariableDescriptors​(DescriptorPolicy descriptorPolicy)` |
    `void` | `processAnnotations​(DescriptorPolicy descriptorPolicy)` |
    `String` | `toString()` |

    - ### Methods inherited from class org.optaplanner.core.impl.domain.variable.descriptor.VariableDescriptor

      `getEntityDescriptor, getMemberAccessorSpeedNote, getSimpleEntityAndVariableName, getSinkVariableDescriptorList, getValue, getVariableName, getVariablePropertyType, isValuePotentialAnchor, registerSinkVariableDescriptor, setValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### GenuineVariableDescriptor

          public GenuineVariableDescriptor​(EntityDescriptor<Solution_> entityDescriptor,
                                           MemberAccessor variableMemberAccessor)

  - ### Method Detail

    - #### processAnnotations

          public void processAnnotations​(DescriptorPolicy descriptorPolicy)

    - #### linkVariableDescriptors

          public void linkVariableDescriptors​(DescriptorPolicy descriptorPolicy)

      Specified by:
        `linkVariableDescriptors` in class `VariableDescriptor<Solution_>`

    - #### isChained

          public boolean isChained()

    - #### isNullable

          public boolean isNullable()

    - #### hasMovableChainedTrailingValueFilter

          public boolean hasMovableChainedTrailingValueFilter()

    - #### getMovableChainedTrailingValueFilter

          public SelectionFilter getMovableChainedTrailingValueFilter()

    - #### getReinitializeVariableEntityFilter

          public SelectionFilter getReinitializeVariableEntityFilter()

    - #### getValueRangeDescriptor

          public ValueRangeDescriptor<Solution_> getValueRangeDescriptor()

    - #### isValueRangeEntityIndependent

          public boolean isValueRangeEntityIndependent()

    - #### isInitialized

          public boolean isInitialized​(Object entity)

      A `PlanningVariable.nullable()` value is always considered initialized.
      Parameters:
        `entity` - never null
      Returns:
        true if the variable on that entity is initialized

    - #### isGenuineAndUninitialized

          public boolean isGenuineAndUninitialized​(Object entity)

      Specified by:
        `isGenuineAndUninitialized` in class `VariableDescriptor<Solution_>`

    - #### isReinitializable

          public boolean isReinitializable​(ScoreDirector<Solution_> scoreDirector,
                                           Object entity)

    - #### getIncreasingStrengthSorter

          public SelectionSorter getIncreasingStrengthSorter()

    - #### getDecreasingStrengthSorter

          public SelectionSorter getDecreasingStrengthSorter()

    - #### getValueCount

          public long getValueCount​(Solution_ solution,
                                    Object entity)

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`