Interface WeightedScoreImpacter<Score_ extends Score<Score_>,Context_ extends ScoreContext<Score_>>


public interface WeightedScoreImpacter<Score_ extends Score<Score_>,Context_ extends ScoreContext<Score_>>
There are several valid ways how an impacter could be called from a constraint stream:
  • .penalize(..., (int) 1)
  • .penalizeLong(..., (int) 1)
  • .penalizeLong(..., (long) 1)
  • .penalizeBigDecimal(..., (int) 1)
  • .penalizeBigDecimal(..., (long) 1)
  • .penalizeBigDecimal(..., BigDecimal.ONE)
  • Plus reward variants of the above.
An implementation of this interface can throw an UnsupportedOperationException for the method types it doesn't support. The CS API guarantees no types are mixed. For example, a BigDecimal parameter method won't be called on an instance built with an WeightedScoreImpacter.IntImpactFunction.