Skip to content

Commit 6ca559f

Browse files
committed
refactor: score director no longer public
1 parent 5bfbc84 commit 6ca559f

75 files changed

Lines changed: 81 additions & 88 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

core/src/main/java/ai/timefold/solver/core/api/domain/common/PlanningId.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
1111
import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty;
1212
import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider;
13-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
1413
import ai.timefold.solver.core.api.solver.change.ProblemChange;
1514
import ai.timefold.solver.core.preview.api.move.Move;
15+
import ai.timefold.solver.core.preview.api.move.Rebaser;
1616

1717
/**
1818
* Specifies that a bean property (or a field) is the id to match
19-
* when {@link ScoreDirector#lookUpWorkingObject(Object) locating}
19+
* when {@link Rebaser#rebase(Object) locating}
2020
* an externalObject (often from another {@link Thread} or JVM).
2121
* Used during {@link Move} rebasing and in a {@link ProblemChange}.
2222
* <p>

core/src/main/java/ai/timefold/solver/core/api/domain/solution/PlanningEntityCollectionProperty.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@
1212
import java.util.SortedSet;
1313

1414
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
15-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
1615

1716
/**
1817
* Specifies that a property (or a field) on a {@link PlanningSolution} class is a {@link Collection} of planning entities.
1918
* <p>
2019
* Every element in the planning entity collection should have the {@link PlanningEntity} annotation.
21-
* Every element in the planning entity collection will be added to the {@link ScoreDirector}.
20+
* Every element in the planning entity collection will be registered with the solver.
2221
* <p>
2322
* For solver reproducibility, the collection must have a deterministic, stable iteration order.
2423
* It is recommended to use a {@link List}, {@link LinkedHashSet} or {@link SortedSet}.

core/src/main/java/ai/timefold/solver/core/api/domain/solution/PlanningEntityProperty.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
import java.lang.annotation.Target;
99

1010
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
11-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
1211

1312
/**
1413
* Specifies that a property (or a field) on a {@link PlanningSolution} class is a planning entity.
1514
* <p>
1615
* The planning entity should have the {@link PlanningEntity} annotation.
17-
* The planning entity will be added to the {@link ScoreDirector}.
16+
* The planning entity will be added registered with the solver.
1817
*/
1918
@Target({ METHOD, FIELD })
2019
@Retention(RUNTIME)

core/src/main/java/ai/timefold/solver/core/config/partitionedsearch/PartitionedSearchPhaseConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import jakarta.xml.bind.annotation.XmlType;
1010
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
1111

12-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
1312
import ai.timefold.solver.core.api.solver.Solver;
1413
import ai.timefold.solver.core.config.constructionheuristic.ConstructionHeuristicPhaseConfig;
1514
import ai.timefold.solver.core.config.exhaustivesearch.ExhaustiveSearchPhaseConfig;
@@ -81,7 +80,7 @@ public void setSolutionPartitionerCustomProperties(@Nullable Map<String, String>
8180
*
8281
* <p>
8382
* The number of {@link Thread}s is always equal to the number of partitions returned by
84-
* {@link SolutionPartitioner#splitWorkingSolution(ScoreDirector, Integer)},
83+
* {@link SolutionPartitioner#splitWorkingSolution(Object, Integer)},
8584
* because otherwise some partitions would never run (especially with {@link Solver#terminateEarly() asynchronous
8685
* termination}).
8786
* If this limit (or {@link Runtime#availableProcessors()}) is lower than the number of partitions,

core/src/main/java/ai/timefold/solver/core/impl/domain/lookup/LookUpManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.util.Map;
55

66
import ai.timefold.solver.core.api.domain.common.PlanningId;
7-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
7+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
88

99
import org.jspecify.annotations.NullMarked;
1010
import org.jspecify.annotations.Nullable;

core/src/main/java/ai/timefold/solver/core/impl/domain/lookup/LookUpStrategyType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import ai.timefold.solver.core.api.domain.common.PlanningId;
44
import ai.timefold.solver.core.api.domain.entity.PlanningEntity;
55
import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty;
6-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
6+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
77

88
/**
99
* Determines how {@link ScoreDirector#lookUpWorkingObject(Object)} maps

core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/SolutionDescriptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import ai.timefold.solver.core.api.domain.solution.cloner.SolutionCloner;
4747
import ai.timefold.solver.core.api.domain.valuerange.ValueRangeProvider;
4848
import ai.timefold.solver.core.api.score.Score;
49-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
5049
import ai.timefold.solver.core.config.solver.PreviewFeature;
5150
import ai.timefold.solver.core.config.util.ConfigUtils;
5251
import ai.timefold.solver.core.impl.domain.common.DomainAccessType;
@@ -70,6 +69,7 @@
7069
import ai.timefold.solver.core.impl.domain.variable.descriptor.ShadowVariableDescriptor;
7170
import ai.timefold.solver.core.impl.domain.variable.descriptor.VariableDescriptor;
7271
import ai.timefold.solver.core.impl.score.definition.ScoreDefinition;
72+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
7373
import ai.timefold.solver.core.impl.util.MutableInt;
7474
import ai.timefold.solver.core.impl.util.MutableLong;
7575
import ai.timefold.solver.core.impl.util.MutablePair;

core/src/main/java/ai/timefold/solver/core/impl/domain/variable/cascade/CascadingUpdateShadowVariableDescriptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.util.Objects;
1212

1313
import ai.timefold.solver.core.api.domain.variable.CascadingUpdateShadowVariable;
14-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
1514
import ai.timefold.solver.core.config.util.ConfigUtils;
1615
import ai.timefold.solver.core.impl.domain.common.accessor.MemberAccessor;
1716
import ai.timefold.solver.core.impl.domain.common.accessor.MemberAccessorType;
@@ -22,6 +21,7 @@
2221
import ai.timefold.solver.core.impl.domain.variable.listener.VariableListenerWithSources;
2322
import ai.timefold.solver.core.impl.domain.variable.supply.Demand;
2423
import ai.timefold.solver.core.impl.domain.variable.supply.SupplyManager;
24+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
2525

2626
public final class CascadingUpdateShadowVariableDescriptor<Solution_> extends ShadowVariableDescriptor<Solution_> {
2727

core/src/main/java/ai/timefold/solver/core/impl/domain/variable/listener/support/VariableListenerSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.function.IntFunction;
1919

2020
import ai.timefold.solver.core.api.domain.solution.PlanningSolution;
21-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
2221
import ai.timefold.solver.core.enterprise.TimefoldSolverEnterpriseService;
2322
import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor;
2423
import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply;
@@ -41,6 +40,7 @@
4140
import ai.timefold.solver.core.impl.domain.variable.supply.Supply;
4241
import ai.timefold.solver.core.impl.domain.variable.supply.SupplyManager;
4342
import ai.timefold.solver.core.impl.score.director.InnerScoreDirector;
43+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
4444
import ai.timefold.solver.core.impl.util.LinkedIdentityHashSet;
4545

4646
import org.jspecify.annotations.NonNull;

core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/node/ExhaustiveSearchNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package ai.timefold.solver.core.impl.exhaustivesearch.node;
22

33
import ai.timefold.solver.core.api.score.Score;
4-
import ai.timefold.solver.core.api.score.director.ScoreDirector;
54
import ai.timefold.solver.core.impl.exhaustivesearch.node.bounder.ScoreBounder;
65
import ai.timefold.solver.core.impl.score.director.InnerScore;
6+
import ai.timefold.solver.core.impl.score.director.ScoreDirector;
77
import ai.timefold.solver.core.preview.api.move.Move;
88

99
public class ExhaustiveSearchNode<Solution_> {

0 commit comments

Comments
 (0)