Class ConstraintMatch<Score_ extends Score<Score_>>

java.lang.Object
ai.timefold.solver.core.api.score.constraint.ConstraintMatch<Score_>
Type Parameters:
Score_ - the actual score type
All Implemented Interfaces:
Comparable<ConstraintMatch<Score_>>

public final class ConstraintMatch<Score_ extends Score<Score_>> extends Object implements Comparable<ConstraintMatch<Score_>>
Retrievable from ConstraintMatchTotal.getConstraintMatchSet() and Indictment.getConstraintMatchSet().

This class implements Comparable for consistent ordering of constraint matches in visualizations. The details of this ordering are unspecified and are subject to change.

If possible, prefer using SolutionManager.analyze(Object) instead.

  • Constructor Details

  • Method Details

    • getConstraintRef

      public @NonNull ConstraintRef getConstraintRef()
    • getConstraintPackage

      @Deprecated(forRemoval=true, since="1.4.0") public String getConstraintPackage()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Prefer getConstraintRef() instead.
      Returns:
      maybe null
    • getConstraintName

      @Deprecated(forRemoval=true, since="1.4.0") public String getConstraintName()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Prefer getConstraintRef() instead.
      Returns:
      never null
    • getConstraintId

      @Deprecated(forRemoval=true, since="1.4.0") public String getConstraintId()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Prefer getConstraintRef() instead.
      Returns:
      never null
    • getJustificationList

      @Deprecated(forRemoval=true) public List<Object> getJustificationList()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Return a list of justifications for the constraint.

      This method has a different meaning based on which score director the constraint comes from.

      • For constraint streams, it returns a list of facts from the matching tuple for backwards compatibility (eg. [A, B] for a bi stream), unless a custom justification mapping was provided, in which case it throws an exception, pointing users towards getJustification().
      • For incremental score calculation, it returns what the calculator is implemented to return.
      Returns:
      never null
    • getJustification

      public <Justification_ extends ConstraintJustification> @Nullable Justification_ getJustification()
      Return a singular justification for the constraint.

      This method has a different meaning based on which score director the constraint comes from.

      • For constraint streams, it returns DefaultConstraintJustification from the matching tuple (eg. [A, B] for a bi stream), unless a custom justification mapping was provided, in which case it returns the return value of that function.
      • For incremental score calculation, it returns what the calculator is implemented to return.
      • It may return null, if justification support was disabled altogether.
    • getIndictedObjectList

      public @NonNull List<Object> getIndictedObjectList()
      Returns a set of objects indicted for causing this constraint match.

      This method has a different meaning based on which score director the constraint comes from.

      • For constraint streams, it returns the facts from the matching tuple (eg. [A, B] for a bi stream), unless a custom indictment mapping was provided, in which case it returns the return value of that function.
      • For incremental score calculation, it returns what the calculator is implemented to return.
      • It may return an empty list, if justification support was disabled altogether.
      Returns:
      may be empty or contain null
    • getScore

      public @NonNull Score_ getScore()
    • getIdentificationString

      public String getIdentificationString()
    • compareTo

      public int compareTo(ConstraintMatch<Score_> other)
      Specified by:
      compareTo in interface Comparable<Score_ extends Score<Score_>>
    • toString

      public String toString()
      Overrides:
      toString in class Object