Class TerminationConfig

java.lang.Object
ai.timefold.solver.core.config.AbstractConfig<TerminationConfig>
ai.timefold.solver.core.config.solver.termination.TerminationConfig

public class TerminationConfig extends AbstractConfig<TerminationConfig>
  • Constructor Details

    • TerminationConfig

      public TerminationConfig()
  • Method Details

    • getTerminationClass

      @Deprecated(forRemoval=true) public Class<? extends Termination> getTerminationClass()
      Deprecated, for removal: This API element is subject to removal in a future version.
      A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    • setTerminationClass

      @Deprecated(forRemoval=true) public void setTerminationClass(Class<? extends Termination> terminationClass)
      Deprecated, for removal: This API element is subject to removal in a future version.
      A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    • getTerminationCompositionStyle

      public @Nullable TerminationCompositionStyle getTerminationCompositionStyle()
    • setTerminationCompositionStyle

      public void setTerminationCompositionStyle(@Nullable TerminationCompositionStyle terminationCompositionStyle)
    • getDiminishedReturnsConfig

      public @Nullable DiminishedReturnsTerminationConfig getDiminishedReturnsConfig()
    • setDiminishedReturnsConfig

      public void setDiminishedReturnsConfig(@Nullable DiminishedReturnsTerminationConfig diminishedReturnsConfig)
    • getSpentLimit

      public @Nullable Duration getSpentLimit()
    • setSpentLimit

      public void setSpentLimit(@Nullable Duration spentLimit)
    • getMillisecondsSpentLimit

      public @Nullable Long getMillisecondsSpentLimit()
    • setMillisecondsSpentLimit

      public void setMillisecondsSpentLimit(@Nullable Long millisecondsSpentLimit)
    • getSecondsSpentLimit

      public @Nullable Long getSecondsSpentLimit()
    • setSecondsSpentLimit

      public void setSecondsSpentLimit(@Nullable Long secondsSpentLimit)
    • getMinutesSpentLimit

      public @Nullable Long getMinutesSpentLimit()
    • setMinutesSpentLimit

      public void setMinutesSpentLimit(@Nullable Long minutesSpentLimit)
    • getHoursSpentLimit

      public @Nullable Long getHoursSpentLimit()
    • setHoursSpentLimit

      public void setHoursSpentLimit(@Nullable Long hoursSpentLimit)
    • getDaysSpentLimit

      public @Nullable Long getDaysSpentLimit()
    • setDaysSpentLimit

      public void setDaysSpentLimit(@Nullable Long daysSpentLimit)
    • getUnimprovedSpentLimit

      public @Nullable Duration getUnimprovedSpentLimit()
    • setUnimprovedSpentLimit

      public void setUnimprovedSpentLimit(@Nullable Duration unimprovedSpentLimit)
    • getUnimprovedMillisecondsSpentLimit

      public @Nullable Long getUnimprovedMillisecondsSpentLimit()
    • setUnimprovedMillisecondsSpentLimit

      public void setUnimprovedMillisecondsSpentLimit(@Nullable Long unimprovedMillisecondsSpentLimit)
    • getUnimprovedSecondsSpentLimit

      public @Nullable Long getUnimprovedSecondsSpentLimit()
    • setUnimprovedSecondsSpentLimit

      public void setUnimprovedSecondsSpentLimit(@Nullable Long unimprovedSecondsSpentLimit)
    • getUnimprovedMinutesSpentLimit

      public @Nullable Long getUnimprovedMinutesSpentLimit()
    • setUnimprovedMinutesSpentLimit

      public void setUnimprovedMinutesSpentLimit(@Nullable Long unimprovedMinutesSpentLimit)
    • getUnimprovedHoursSpentLimit

      public @Nullable Long getUnimprovedHoursSpentLimit()
    • setUnimprovedHoursSpentLimit

      public void setUnimprovedHoursSpentLimit(@Nullable Long unimprovedHoursSpentLimit)
    • getUnimprovedDaysSpentLimit

      public @Nullable Long getUnimprovedDaysSpentLimit()
    • setUnimprovedDaysSpentLimit

      public void setUnimprovedDaysSpentLimit(@Nullable Long unimprovedDaysSpentLimit)
    • getUnimprovedScoreDifferenceThreshold

      public @Nullable String getUnimprovedScoreDifferenceThreshold()
    • setUnimprovedScoreDifferenceThreshold

      public void setUnimprovedScoreDifferenceThreshold(@Nullable String unimprovedScoreDifferenceThreshold)
    • getBestScoreLimit

      public @Nullable String getBestScoreLimit()
    • setBestScoreLimit

      public void setBestScoreLimit(@Nullable String bestScoreLimit)
    • getBestScoreFeasible

      public @Nullable Boolean getBestScoreFeasible()
    • setBestScoreFeasible

      public void setBestScoreFeasible(@Nullable Boolean bestScoreFeasible)
    • getStepCountLimit

      public @Nullable Integer getStepCountLimit()
    • setStepCountLimit

      public void setStepCountLimit(@Nullable Integer stepCountLimit)
    • getUnimprovedStepCountLimit

      public @Nullable Integer getUnimprovedStepCountLimit()
    • setUnimprovedStepCountLimit

      public void setUnimprovedStepCountLimit(@Nullable Integer unimprovedStepCountLimit)
    • getScoreCalculationCountLimit

      public @Nullable Long getScoreCalculationCountLimit()
    • setScoreCalculationCountLimit

      public void setScoreCalculationCountLimit(@Nullable Long scoreCalculationCountLimit)
    • getMoveCountLimit

      public @Nullable Long getMoveCountLimit()
    • setMoveCountLimit

      public void setMoveCountLimit(@Nullable Long moveCountLimit)
    • getTerminationConfigList

      public @Nullable List<@NonNull TerminationConfig> getTerminationConfigList()
    • setTerminationConfigList

      public void setTerminationConfigList(@Nullable List<@NonNull TerminationConfig> terminationConfigList)
    • withTerminationClass

      @Deprecated(forRemoval=true) public TerminationConfig withTerminationClass(Class<? extends Termination> terminationClass)
      Deprecated, for removal: This API element is subject to removal in a future version.
      A custom terminationClass is deprecated and will be removed in a future major version of Timefold.
    • withTerminationCompositionStyle

      public @NonNull TerminationConfig withTerminationCompositionStyle(@NonNull TerminationCompositionStyle terminationCompositionStyle)
    • withDiminishedReturns

      public @NonNull TerminationConfig withDiminishedReturns()
    • withDiminishedReturnsConfig

      public @NonNull TerminationConfig withDiminishedReturnsConfig(@NonNull DiminishedReturnsTerminationConfig diminishedReturnsConfig)
    • withSpentLimit

      public @NonNull TerminationConfig withSpentLimit(@NonNull Duration spentLimit)
    • withMillisecondsSpentLimit

      public @NonNull TerminationConfig withMillisecondsSpentLimit(@NonNull Long millisecondsSpentLimit)
    • withSecondsSpentLimit

      public @NonNull TerminationConfig withSecondsSpentLimit(@NonNull Long secondsSpentLimit)
    • withMinutesSpentLimit

      public @NonNull TerminationConfig withMinutesSpentLimit(@NonNull Long minutesSpentLimit)
    • withHoursSpentLimit

      public @NonNull TerminationConfig withHoursSpentLimit(@NonNull Long hoursSpentLimit)
    • withDaysSpentLimit

      public @NonNull TerminationConfig withDaysSpentLimit(@NonNull Long daysSpentLimit)
    • withUnimprovedSpentLimit

      public @NonNull TerminationConfig withUnimprovedSpentLimit(@NonNull Duration unimprovedSpentLimit)
    • withUnimprovedMillisecondsSpentLimit

      public @NonNull TerminationConfig withUnimprovedMillisecondsSpentLimit(@NonNull Long unimprovedMillisecondsSpentLimit)
    • withUnimprovedSecondsSpentLimit

      public @NonNull TerminationConfig withUnimprovedSecondsSpentLimit(@NonNull Long unimprovedSecondsSpentLimit)
    • withUnimprovedMinutesSpentLimit

      public @NonNull TerminationConfig withUnimprovedMinutesSpentLimit(@NonNull Long unimprovedMinutesSpentLimit)
    • withUnimprovedHoursSpentLimit

      public @NonNull TerminationConfig withUnimprovedHoursSpentLimit(@NonNull Long unimprovedHoursSpentLimit)
    • withUnimprovedDaysSpentLimit

      public @NonNull TerminationConfig withUnimprovedDaysSpentLimit(@NonNull Long unimprovedDaysSpentLimit)
    • withUnimprovedScoreDifferenceThreshold

      public @NonNull TerminationConfig withUnimprovedScoreDifferenceThreshold(@NonNull String unimprovedScoreDifferenceThreshold)
    • withBestScoreLimit

      public @NonNull TerminationConfig withBestScoreLimit(@NonNull String bestScoreLimit)
    • withBestScoreFeasible

      public @NonNull TerminationConfig withBestScoreFeasible(@NonNull Boolean bestScoreFeasible)
    • withStepCountLimit

      public @NonNull TerminationConfig withStepCountLimit(@NonNull Integer stepCountLimit)
    • withUnimprovedStepCountLimit

      public @NonNull TerminationConfig withUnimprovedStepCountLimit(@NonNull Integer unimprovedStepCountLimit)
    • withScoreCalculationCountLimit

      public @NonNull TerminationConfig withScoreCalculationCountLimit(@NonNull Long scoreCalculationCountLimit)
    • withMoveCountLimit

      public @NonNull TerminationConfig withMoveCountLimit(@NonNull Long moveCountLimit)
    • withTerminationConfigList

      public @NonNull TerminationConfig withTerminationConfigList(@NonNull List<@NonNull TerminationConfig> terminationConfigList)
    • overwriteSpentLimit

      public void overwriteSpentLimit(@Nullable Duration spentLimit)
    • calculateTimeMillisSpentLimit

      public @Nullable Long calculateTimeMillisSpentLimit()
    • shortenTimeMillisSpentLimit

      public void shortenTimeMillisSpentLimit(long timeMillisSpentLimit)
    • overwriteUnimprovedSpentLimit

      public void overwriteUnimprovedSpentLimit(@Nullable Duration unimprovedSpentLimit)
    • calculateUnimprovedTimeMillisSpentLimit

      public @Nullable Long calculateUnimprovedTimeMillisSpentLimit()
    • isConfigured

      public boolean isConfigured()
      Return true if this TerminationConfig configures a termination condition. Note: this does not mean it will always terminate: ex: bestScoreLimit configured, but it is impossible to reach the bestScoreLimit.
    • inherit

      public @NonNull TerminationConfig inherit(@NonNull TerminationConfig inheritedConfig)
      Description copied from class: AbstractConfig
      Inherits each property of the inheritedConfig unless that property (or a semantic alternative) is defined by this instance (which overwrites the inherited behaviour).

      After the inheritance, if a property on this AbstractConfig composition is replaced, it should not affect the inherited composition instance.

      Specified by:
      inherit in class AbstractConfig<TerminationConfig>
      Returns:
      this
    • copyConfig

      public @NonNull TerminationConfig copyConfig()
      Description copied from class: AbstractConfig
      Typically implemented by constructing a new instance and calling AbstractConfig.inherit(AbstractConfig) on it.
      Specified by:
      copyConfig in class AbstractConfig<TerminationConfig>
      Returns:
      new instance
    • visitReferencedClasses

      public void visitReferencedClasses(@NonNull Consumer<Class<?>> classVisitor)
      Description copied from class: AbstractConfig
      Call the class visitor on each (possibly null) Class instance provided to this config by the user (including those provided in child configs). Required to create the bean factory in Quarkus.
      Specified by:
      visitReferencedClasses in class AbstractConfig<TerminationConfig>
      Parameters:
      classVisitor - The visitor of classes. Can accept null instances of Class.