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

## Interface HardMediumSoftBigDecimalScoreHolder

- All Superinterfaces:
    `ScoreHolder<HardMediumSoftBigDecimalScore>`
  All Known Implementing Classes:
    `HardMediumSoftBigDecimalScoreHolderImpl`

      public interface HardMediumSoftBigDecimalScoreHolder
      extends ScoreHolder<HardMediumSoftBigDecimalScore>

  See Also:
    `HardMediumSoftBigDecimalScoreHolder`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addHardConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight)` | Add a hard constraint of specified weighting.
    `void` | `addMediumConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal mediumWeight)` | Add a medium level constraint of specified weighting.
    `void` | `addMultiConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeight, BigDecimal mediumWeight, BigDecimal softWeight)` |
    `void` | `addSoftConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal softWeight)` | Add a soft constraint match of specified weighting.
    `void` | `impactScore​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal weightMultiplier)` |
    `void` | `penalize​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal 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, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier)` | 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, BigDecimal weightMultiplier)` | Reward a match by the `ConstraintWeight` multiplied with the weightMultiplier for all score levels.
    `void` | `reward​(org.kie.api.runtime.rule.RuleContext kcontext, BigDecimal hardWeightMultiplier, BigDecimal mediumWeightMultiplier, BigDecimal softWeightMultiplier)` | 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

    - #### penalize

          void penalize​(org.kie.api.runtime.rule.RuleContext kcontext,
                        BigDecimal 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,
                        BigDecimal hardWeightMultiplier,
                        BigDecimal mediumWeightMultiplier,
                        BigDecimal softWeightMultiplier)

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

    - #### reward

          void reward​(org.kie.api.runtime.rule.RuleContext kcontext,
                      BigDecimal 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,
                      BigDecimal hardWeightMultiplier,
                      BigDecimal mediumWeightMultiplier,
                      BigDecimal softWeightMultiplier)

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

    - #### impactScore

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

    - #### addHardConstraintMatch

          void addHardConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                      BigDecimal hardWeight)

      Add a hard constraint of specified weighting. This is typically used in Drools scoring to add a hard constraint match (negative value to indicate an infeasible solution).
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardWeight` - never null, higher is better, negative for a penalty, positive for a reward

    - #### addMediumConstraintMatch

          void addMediumConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                        BigDecimal mediumWeight)

      Add a medium level constraint of specified weighting. This is typically used in Drools scoring to add a medium priority constraint match.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `mediumWeight` - never null, higher is better, negative for a penalty, positive for a reward

    - #### addSoftConstraintMatch

          void addSoftConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                      BigDecimal softWeight)

      Add a soft constraint match of specified weighting. This is typically used in Drools scoring to add a low priority constraint match.
      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `softWeight` - never null, higher is better, negative for a penalty, positive for a reward

    - #### addMultiConstraintMatch

          void addMultiConstraintMatch​(org.kie.api.runtime.rule.RuleContext kcontext,
                                       BigDecimal hardWeight,
                                       BigDecimal mediumWeight,
                                       BigDecimal softWeight)

      Parameters:
        `kcontext` - never null, the magic variable in DRL
        `hardWeight` - never null, higher is better, negative for a penalty, positive for a reward
        `mediumWeight` - never null, higher is better, negative for a penalty, positive for a reward
        `softWeight` - never null, higher is better, negative for a penalty, positive for a reward