Package org.optaplanner.core.api.score.buildin.bendablelong

## Interface BendableLongScoreHolder

- All Superinterfaces:
    `ScoreHolder<BendableLongScore>`
  All Known Implementing Classes:
    `BendableLongScoreHolderImpl`

      public interface BendableLongScoreHolder
      extends ScoreHolder<BendableLongScore>

  See Also:
    `BendableLongScore`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addHardConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, int hardLevel, long weight)` |
    `void` | `addMultiConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, long[] hardWeights, long[] softWeights)` |
    `void` | `addSoftConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, int softLevel, long weight)` |
    `int` | `getHardLevelsSize()` |
    `int` | `getSoftLevelsSize()` |
    `void` | `impactScore​(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)` |
    `void` | `penalize​(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)` | Penalize a match by the `ConstraintWeight` negated and multiplied with the weightMultiplier for all score levels.
    `void` | `penalize​(org.kie.api.runtime.rule.RuleContext kcontext, long[] hardWeightsMultiplier, long[] softWeightsMultiplier)` | Penalize a match by the `ConstraintWeight` negated and multiplied with the specific weightMultiplier per score level.
    `void` | `reward​(org.kie.api.runtime.rule.RuleContext kcontext, long weightMultiplier)` | Reward a match by the `ConstraintWeight` multiplied with the weightMultiplier for all score levels.
    `void` | `reward​(org.kie.api.runtime.rule.RuleContext kcontext, long[] hardWeightsMultiplier, long[] softWeightsMultiplier)` | Reward a match by the `ConstraintWeight` multiplied with the specific weightMultiplier per score level.

    - ### Methods inherited from interface org.optaplanner.core.api.score.holder.ScoreHolder

      `penalize, reward`

- - ### Method Detail

    - #### getHardLevelsSize

          int getHardLevelsSize()

    - #### getSoftLevelsSize

          int getSoftLevelsSize()

    - #### penalize

          void penalize​(org.kie.api.runtime.rule.RuleContext kcontext,
                        long weightMultiplier)

      Penalize a match by the `ConstraintWeight` negated and multiplied with the weightMultiplier for all score levels.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `weightMultiplier` - at least 0

    - #### penalize

          void penalize​(org.kie.api.runtime.rule.RuleContext kcontext,
                        long[] hardWeightsMultiplier,
                        long[] softWeightsMultiplier)

      Penalize a match by the `ConstraintWeight` negated and multiplied with the specific weightMultiplier per score level. Slower than `penalize(RuleContext, long)`.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardWeightsMultiplier` - elements at least 0
        `softWeightsMultiplier` - elements at least 0

    - #### reward

          void reward​(org.kie.api.runtime.rule.RuleContext kcontext,
                      long weightMultiplier)

      Reward a match by the `ConstraintWeight` multiplied with the weightMultiplier for all score levels.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `weightMultiplier` - at least 0

    - #### reward

          void reward​(org.kie.api.runtime.rule.RuleContext kcontext,
                      long[] hardWeightsMultiplier,
                      long[] softWeightsMultiplier)

      Reward a match by the `ConstraintWeight` multiplied with the specific weightMultiplier per score level. Slower than `reward(RuleContext, long)`.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardWeightsMultiplier` - elements at least 0
        `softWeightsMultiplier` - elements at least 0

    - #### impactScore

          void impactScore​(org.kie.api.runtime.rule.RuleContext kcontext,
                           long weightMultiplier)

    - #### addHardConstraintMatch

          void addHardConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                      int hardLevel,
                                      long weight)

      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardLevel` - `0 <= hardLevel <` `getHardLevelsSize()`. The `scoreLevel` is `hardLevel` for hard levels and `softLevel + hardLevelSize` for soft levels.
        `weight` - higher is better, negative for a penalty, positive for a reward

    - #### addSoftConstraintMatch

          void addSoftConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                      int softLevel,
                                      long weight)

      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `softLevel` - `0 <= softLevel <` `getSoftLevelsSize()`. The `scoreLevel` is `hardLevel` for hard levels and `softLevel + hardLevelSize` for soft levels.
        `weight` - higher is better, negative for a penalty, positive for a reward

    - #### addMultiConstraintMatch

          void addMultiConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                       long[] hardWeights,
                                       long[] softWeights)

      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardWeights` - never null, array of length `getHardLevelsSize()`
        `softWeights` - never null, array of length `getSoftLevelsSize()`