Class Penalty


  • public final class Penalty
    extends Object
    Immutable class representing a penalty value. It's valid value range is that of an Integer, but giving Integer.MAX_VALUE a special meaning: it means infinite penalty, i.e. a candidate with this penalty will be excluded from any choice.
    • Field Detail

      • ZERO_PENALTY

        public static final Penalty ZERO_PENALTY
      • INFINITE_PENALTY

        public static final Penalty INFINITE_PENALTY
    • Method Detail

      • toPenalty

        public static Penalty toPenalty​(int value)
        Turns a penalty value into a penaly object.
        Parameters:
        value - the penalty value
        Returns:
        the penalty object
      • add

        public Penalty add​(Penalty value)
        Adds a penalty to this one and returns the combined penalty.
        Parameters:
        value - the penalty value to add
        Returns:
        the resulting penalty
      • add

        public Penalty add​(int value)
        Adds a penalty to this one and returns the combined penalty.
        Parameters:
        value - the penalty value to add
        Returns:
        the resulting penalty
      • getValue

        public int getValue()
        Returns the penalty value.
        Returns:
        the penalty value
      • isInfinitePenalty

        public boolean isInfinitePenalty()
        Indicates whether this is an infinite penalty, meaning that a solution with this penalty is effectively ineligible.
        Returns:
        true if this is an infinite penalty
      • truncate

        public static int truncate​(long penalty)
        Truncates the long penalty value to an integer without sign side-effects.
        Parameters:
        penalty - the penalty value as a long
        Returns:
        the penalty value as an int