Package org.optaplanner.core.impl.score.buildin.hardmediumsoftlong

## Class HardMediumSoftLongScoreDefinition

- java.lang.Object
- - org.optaplanner.core.impl.score.definition.AbstractScoreDefinition<HardMediumSoftLongScore>
  - - org.optaplanner.core.impl.score.buildin.hardmediumsoftlong.HardMediumSoftLongScoreDefinition

- All Implemented Interfaces:
    `ScoreDefinition<HardMediumSoftLongScore>`

      public class HardMediumSoftLongScoreDefinition
      extends AbstractScoreDefinition<HardMediumSoftLongScore>

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `HardMediumSoftLongScoreDefinition()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `HardMediumSoftLongScore` | `buildOptimisticBound​(InitializingScoreTrend initializingScoreTrend, HardMediumSoftLongScore score)` | Builds a `Score` which is equal or better than any other `Score` with more variables initialized (while the already variables don't change).
    `HardMediumSoftLongScore` | `buildPessimisticBound​(InitializingScoreTrend initializingScoreTrend, HardMediumSoftLongScore score)` | Builds a `Score` which is equal or worse than any other `Score` with more variables initialized (while the already variables don't change).
    `HardMediumSoftLongScoreHolderImpl` | `buildScoreHolder​(boolean constraintMatchEnabled)` | Used by `DroolsScoreDirector`.
    `HardMediumSoftLongScoreInliner` | `buildScoreInliner​(Map<Constraint,​HardMediumSoftLongScore> constraintToWeightMap, boolean constraintMatchEnabled)` | Used by `BavetConstraintFactory` and `DroolsConstraintFactory`.
    `HardMediumSoftLongScore` | `divideBySanitizedDivisor​(HardMediumSoftLongScore dividend, HardMediumSoftLongScore divisor)` | Return `Score` whose every level is the result of dividing the matching levels in this and the divisor.
    `HardMediumSoftLongScore` | `fromLevelNumbers​(int initScore, Number[] levelNumbers)` | The opposite of `Score.toLevelNumbers()`.
    `int` | `getFeasibleLevelsSize()` | Returns the number of levels of `Score.toLevelNumbers()`.
    `int` | `getLevelsSize()` | Returns the length of `Score.toLevelNumbers()` for every `Score` of this definition.
    `HardMediumSoftLongScore` | `getOneSoftestScore()` | The score that represents the softest possible one.
    `Class<HardMediumSoftLongScore>` | `getScoreClass()` | Returns the `Class` of the actual `Score` implementation.
    `HardMediumSoftLongScore` | `getZeroScore()` | The score that represents zero.
    `HardMediumSoftLongScore` | `parseScore​(String scoreString)` | Parses the `String` and returns a `Score`.

    - ### Methods inherited from class org.optaplanner.core.impl.score.definition.AbstractScoreDefinition

      `divide, divide, divide, divide, formatScore, getInitLabel, getLevelLabels, isCompatibleArithmeticArgument, sanitize, sanitize, sanitize, 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.impl.score.definition.ScoreDefinition

      `isNegativeOrZero, isPositiveOrZero`

- - ### Constructor Detail

    - #### HardMediumSoftLongScoreDefinition

          public HardMediumSoftLongScoreDefinition()

  - ### Method Detail

    - #### getLevelsSize

          public int getLevelsSize()

      Description copied from interface: `ScoreDefinition`
      Returns the length of `Score.toLevelNumbers()` for every `Score` of this definition. For example: returns 2 on `HardSoftScoreDefinition`.
      Specified by:
        `getLevelsSize` in interface `ScoreDefinition<HardMediumSoftLongScore>`
      Overrides:
        `getLevelsSize` in class `AbstractScoreDefinition<HardMediumSoftLongScore>`
      Returns:
        at least 1

    - #### getFeasibleLevelsSize

          public int getFeasibleLevelsSize()

      Description copied from interface: `ScoreDefinition`
      Returns the number of levels of `Score.toLevelNumbers()`. that are used to determine `Score.isFeasible()`.
      Returns:
        at least 0, at most `ScoreDefinition.getLevelsSize()`

    - #### getScoreClass

          public Class<HardMediumSoftLongScore> getScoreClass()

      Description copied from interface: `ScoreDefinition`
      Returns the `Class` of the actual `Score` implementation. For example: returns `HardSoftScore.class` on `HardSoftScoreDefinition`.
      Returns:
        never null

    - #### getZeroScore

          public HardMediumSoftLongScore getZeroScore()

      Description copied from interface: `ScoreDefinition`
      The score that represents zero.
      Returns:
        never null

    - #### getOneSoftestScore

          public HardMediumSoftLongScore getOneSoftestScore()

      Description copied from interface: `ScoreDefinition`
      The score that represents the softest possible one.
      Returns:
        never null

    - #### parseScore

          public HardMediumSoftLongScore parseScore​(String scoreString)

      Description copied from interface: `ScoreDefinition`
      Parses the `String` and returns a `Score`.
      Parameters:
        `scoreString` - never null
      Returns:
        never null
      See Also:
        `ScoreDefinition.formatScore(Score)`, `ScoreUtils.parseScore(Class, String)`

    - #### fromLevelNumbers

          public HardMediumSoftLongScore fromLevelNumbers​(int initScore,
                                                          Number[] levelNumbers)

      Description copied from interface: `ScoreDefinition`
      The opposite of `Score.toLevelNumbers()`.
      Parameters:
        `initScore` - `<= 0`, managed by OptaPlanner, needed as a parameter in the `Score`'s creation method, see `Score.getInitScore()`
        `levelNumbers` - never null
      Returns:
        never null

    - #### buildScoreInliner

          public HardMediumSoftLongScoreInliner buildScoreInliner​(Map<Constraint,​HardMediumSoftLongScore> constraintToWeightMap,
                                                                  boolean constraintMatchEnabled)

      Description copied from interface: `ScoreDefinition`
      Used by `BavetConstraintFactory` and `DroolsConstraintFactory`.
      Parameters:
        `constraintToWeightMap` - never null, no zero-weight constraints
        `constraintMatchEnabled` - true if `InnerScoreDirector.isConstraintMatchEnabled()` should be true
      Returns:
        never null

    - #### buildScoreHolder

          public HardMediumSoftLongScoreHolderImpl buildScoreHolder​(boolean constraintMatchEnabled)

      Description copied from interface: `ScoreDefinition`
      Used by `DroolsScoreDirector`.
      Parameters:
        `constraintMatchEnabled` - true if`InnerScoreDirector.isConstraintMatchEnabled()` should be true
      Returns:
        never null

    - #### buildOptimisticBound

          public HardMediumSoftLongScore buildOptimisticBound​(InitializingScoreTrend initializingScoreTrend,
                                                              HardMediumSoftLongScore score)

      Description copied from interface: `ScoreDefinition`
      Builds a `Score` which is equal or better than any other `Score` with more variables initialized (while the already variables don't change).
      Parameters:
        `initializingScoreTrend` - never null, with `InitializingScoreTrend.getLevelsSize()` equal to `ScoreDefinition.getLevelsSize()`.
        `score` - never null, with `Score.getInitScore()` `0`.
      Returns:
        never null

    - #### buildPessimisticBound

          public HardMediumSoftLongScore buildPessimisticBound​(InitializingScoreTrend initializingScoreTrend,
                                                               HardMediumSoftLongScore score)

      Description copied from interface: `ScoreDefinition`
      Builds a `Score` which is equal or worse than any other `Score` with more variables initialized (while the already variables don't change).
      Parameters:
        `initializingScoreTrend` - never null, with `InitializingScoreTrend.getLevelsSize()` equal to `ScoreDefinition.getLevelsSize()`.
        `score` - never null, with `Score.getInitScore()` `0`
      Returns:
        never null

    - #### divideBySanitizedDivisor

          public HardMediumSoftLongScore divideBySanitizedDivisor​(HardMediumSoftLongScore dividend,
                                                                  HardMediumSoftLongScore divisor)

      Description copied from interface: `ScoreDefinition`
      Return `Score` whose every level is the result of dividing the matching levels in this and the divisor. When rounding is needed, it is floored (as defined by `Math.floor(double)`).

      If any of the levels in the divisor are equal to zero, the method behaves as if they were equal to one instead.

        `divisor` - value by which this Score is to be divided
      Returns:
        this / divisor