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

## Interface Demand<S extends Supply>

- Type Parameters:
    `S` - Subclass of `Supply`
  All Known Implementing Classes:
    `AnchorVariableDemand`, `CollectionInverseVariableDemand`, `CustomShadowVariableDemand`, `SingletonInverseVariableDemand`

      public interface Demand<S extends Supply>

  A subsystem submits a demand for a `Supply`. Implementations must overwrite `Object.equals(Object)` and `Object.hashCode()`.
  See Also:
    `Supply`, `SupplyManager`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `S` | `createExternalizedSupply​(InnerScoreDirector scoreDirector)` | Only called if the domain model doesn't already support the demand (through a shadow variable usually).

- - ### Method Detail

    - #### createExternalizedSupply

          S createExternalizedSupply​(InnerScoreDirector scoreDirector)

      Only called if the domain model doesn't already support the demand (through a shadow variable usually). Equal demands share the same `Supply`.
      Parameters:
        `scoreDirector` - never null
      Returns:
        never null