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

## Interface Demand<Solution_,​Supply_ extends Supply>

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

      public interface Demand<Solution_,​Supply_ 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
    --- | --- | ---
    `Supply_` | `createExternalizedSupply​(InnerScoreDirector<Solution_,​?> scoreDirector)` | Only called if the domain model doesn't already support the demand (through a shadow variable usually).

- - ### Method Detail

    - #### createExternalizedSupply

          Supply_ createExternalizedSupply​(InnerScoreDirector<Solution_,​?> 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