Class SolutionDescriptor<Solution_>
java.lang.Object
ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor<Solution_>
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final record -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEntityDescriptor(EntityDescriptor<Solution_> entityDescriptor) static voidassertMutable(Class<?> clz, String classType) static voidassertSingleInheritance(Class<?> solutionClass) static voidassertValidAnnotatedMembers(Class<?> clazz) If a class declares any annotated member, it must be annotated as a solution, even if a supertype already has the annotation.static <Solution_>
SolutionDescriptor<Solution_>buildSolutionDescriptor(Class<Solution_> solutionClass, Class<?>... entityClasses) static <Solution_>
SolutionDescriptor<Solution_>buildSolutionDescriptor(Class<Solution_> solutionClass, List<Class<?>> entityClassList) static <Solution_>
SolutionDescriptor<Solution_>buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeatureSet, DomainAccessType domainAccessType, Class<Solution_> solutionClass, Map<String, MemberAccessor> memberAccessorMap, Map<String, SolutionCloner> solutionClonerMap, List<Class<?>> entityClassList) static <Solution_>
SolutionDescriptor<Solution_>buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeaturesSet, Class<Solution_> solutionClass, Class<?>... entityClasses) static <Solution_>
SolutionDescriptor<Solution_>buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeaturesSet, Class<Solution_> solutionClass, List<Class<?>> entityClassList) computeInitializationStatistics(Solution_ solution) computeInitializationStatistics(Solution_ solution, Consumer<Object> finisher) findEntityDescriptor(Class<?> entitySubclass) findEntityDescriptorOrFail(Class<?> entitySubclass) findVariableDescriptorOrFail(Object entity, String variableName) getAllEntitiesAndProblemFacts(Solution_ solution) longgetApproximateValueCount(Solution_ solution) Deprecated, for removal: This API element is subject to removal in a future version.<Score_ extends Score<Score_>>
ConstraintWeightSupplier<Solution_,Score_> getEntityDescriptorStrict(Class<?> entityClass) intgetGenuineEntityCount(Solution_ solution) longgetGenuineVariableCount(Solution_ solution) longgetMaximumValueRangeSize(Solution_ solution) getPlanningIdAccessor(Class<?> factClass) Return accessor for a given member of a given class, if present, and cache it for future use.doublegetProblemScale(Solution_ solution) Calculates an indication on how big this problem instance is.getProblemSizeStatistics(Solution_ solution) <Score_ extends Score<Score_>>
Score_<Score_ extends Score<Score_>>
ScoreDefinition<Score_><Score_ extends Score<Score_>>
ScoreDescriptor<Score_>booleanbooleanbooleanbooleanhasEntityDescriptor(Class<?> entitySubclass) booleanbooleanhasMovableEntities(ScoreDirector<Solution_> scoreDirector) voidprocessAnnotations(DescriptorPolicy descriptorPolicy, List<Class<?>> entityClassList) voidprocessUnannotatedFieldsAndMethods(DescriptorPolicy descriptorPolicy) <Score_ extends Score<Score_>>
voidCalled when theScorehas been calculated or predicted.toString()voidvoidvisitAllEntities(Solution_ solution, Consumer<Object> visitor) voidvisitAllProblemFacts(Solution_ solution, Consumer<Object> visitor) voidvisitEntitiesByEntityClass(Solution_ solution, Class<?> entityClass, Predicate<Object> visitor)
-
Field Details
-
ANNOTATED_MEMBERS_CLASSES
-
-
Method Details
-
buildSolutionDescriptor
public static <Solution_> SolutionDescriptor<Solution_> buildSolutionDescriptor(Class<Solution_> solutionClass, Class<?>... entityClasses) -
buildSolutionDescriptor
public static <Solution_> SolutionDescriptor<Solution_> buildSolutionDescriptor(Class<Solution_> solutionClass, List<Class<?>> entityClassList) -
buildSolutionDescriptor
public static <Solution_> SolutionDescriptor<Solution_> buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeaturesSet, Class<Solution_> solutionClass, Class<?>... entityClasses) -
buildSolutionDescriptor
public static <Solution_> SolutionDescriptor<Solution_> buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeaturesSet, Class<Solution_> solutionClass, List<Class<?>> entityClassList) -
buildSolutionDescriptor
public static <Solution_> SolutionDescriptor<Solution_> buildSolutionDescriptor(Set<PreviewFeature> enabledPreviewFeatureSet, DomainAccessType domainAccessType, Class<Solution_> solutionClass, Map<String, MemberAccessor> memberAccessorMap, Map<String, SolutionCloner> solutionClonerMap, List<Class<?>> entityClassList) -
assertMutable
-
assertValidAnnotatedMembers
If a class declares any annotated member, it must be annotated as a solution, even if a supertype already has the annotation. -
assertSingleInheritance
-
addEntityDescriptor
-
processUnannotatedFieldsAndMethods
-
processAnnotations
-
getSolutionClass
-
getMemberAccessorFactory
-
getDomainAccessType
-
getScoreDefinition
-
getScoreDescriptor
-
getProblemFactMemberAccessorMap
-
getProblemFactCollectionMemberAccessorMap
-
getEntityMemberAccessorMap
-
getEntityCollectionMemberAccessorMap
-
getProblemFactOrEntityClassSet
-
getListVariableDescriptor
-
getSolutionCloner
-
getMetaModel
-
getBasicVariableDescriptorList
-
hasBasicVariable
public boolean hasBasicVariable() -
hasChainedVariable
public boolean hasChainedVariable() -
hasListVariable
public boolean hasListVariable() -
hasBothBasicAndListVariables
public boolean hasBothBasicAndListVariables() -
getConstraintConfigurationMemberAccessor
@Deprecated(forRemoval=true, since="1.13.0") public MemberAccessor getConstraintConfigurationMemberAccessor()Deprecated, for removal: This API element is subject to removal in a future version.ConstraintConfigurationwas replaced byConstraintWeightOverrides. -
getConstraintWeightSupplier
public <Score_ extends Score<Score_>> ConstraintWeightSupplier<Solution_,Score_> getConstraintWeightSupplier() -
getEntityClassSet
-
getEntityDescriptors
-
getGenuineEntityDescriptors
-
getEntityDescriptorStrict
-
hasEntityDescriptor
-
findEntityDescriptorOrFail
-
findEntityDescriptor
-
findVariableDescriptorOrFail
public VariableDescriptor<Solution_> findVariableDescriptorOrFail(Object entity, String variableName) -
getLookUpStrategyResolver
-
getAllEntitiesAndProblemFacts
-
getGenuineEntityCount
- Parameters:
solution- never null- Returns:
>= 0
-
getPlanningIdAccessor
Return accessor for a given member of a given class, if present, and cache it for future use.- Parameters:
factClass- never null- Returns:
- null if no such member exists
-
visitAllEntities
-
visitEntitiesByEntityClass
public void visitEntitiesByEntityClass(Solution_ solution, Class<?> entityClass, Predicate<Object> visitor) - Parameters:
solution- solution to extract the entities fromentityClass- class of the entity to be visited, including subclassesvisitor- never null; applied to every entity, iteration stops if it returns true
-
visitAllProblemFacts
-
visitAll
-
hasMovableEntities
- Parameters:
scoreDirector- never null- Returns:
>= 0
-
getGenuineVariableCount
- Parameters:
solution- never null- Returns:
>= 0
-
getApproximateValueCount
- Parameters:
solution- never null- Returns:
>= 0
-
getMaximumValueRangeSize
-
getProblemScale
Calculates an indication on how big this problem instance is. This is approximately the base 10 log of the search space size.- Parameters:
solution- never null- Returns:
>= 0
-
getAllShadowVariableDescriptors
-
getDeclarativeShadowVariableDescriptors
public List<DeclarativeShadowVariableDescriptor<Solution_>> getDeclarativeShadowVariableDescriptors() -
getProblemSizeStatistics
-
computeInitializationStatistics
public SolutionDescriptor.SolutionInitializationStatistics computeInitializationStatistics(Solution_ solution) -
computeInitializationStatistics
public SolutionDescriptor.SolutionInitializationStatistics computeInitializationStatistics(Solution_ solution, Consumer<Object> finisher) -
getScore
- Parameters:
solution- never null- Returns:
- sometimes null, if the
Scorehasn't been calculated yet
-
setScore
Called when theScorehas been calculated or predicted.- Parameters:
solution- never nullscore- sometimes null, in rare occasions to indicate that the oldScoreis stale, but no new ones has been calculated
-
diff
-
toString
-
ConstraintConfigurationwas replaced byConstraintWeightOverrides.