diff --git a/core/src/build/revapi-filter.json b/core/src/build/revapi-filter.json index f9d9c0ebc1..567ded7406 100644 --- a/core/src/build/revapi-filter.json +++ b/core/src/build/revapi-filter.json @@ -8,8 +8,6 @@ "class ai\\.timefold\\.solver\\.core\\.config.*" ], "exclude": [ - "class ai\\.timefold\\.solver\\.core\\.api\\.move.*", - "class ai\\.timefold\\.solver\\.core\\.api\\.domain\\.metamodel.*", "method .* ai\\.timefold\\.solver\\.core\\.config.*::(?!(set|get)).*", "parameter .* ai\\.timefold\\.solver\\.core\\.config.*::(?!(set|get)).*" ] diff --git a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/decider/ConstructionHeuristicDecider.java b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/decider/ConstructionHeuristicDecider.java index c926e18404..da2ea01d00 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/decider/ConstructionHeuristicDecider.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/decider/ConstructionHeuristicDecider.java @@ -1,7 +1,6 @@ package ai.timefold.solver.core.impl.constructionheuristic.decider; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.config.solver.EnvironmentMode; import ai.timefold.solver.core.impl.constructionheuristic.decider.forager.ConstructionHeuristicForager; @@ -16,6 +15,7 @@ import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.solver.termination.Termination; +import ai.timefold.solver.core.preview.api.move.Move; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/placer/Placement.java b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/placer/Placement.java index 36dafd5b4c..fd4f3d983b 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/placer/Placement.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/placer/Placement.java @@ -3,7 +3,7 @@ import java.util.Iterator; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicMoveScope.java b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicMoveScope.java index 1ef0226966..197d8cc9c1 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicMoveScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicMoveScope.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.constructionheuristic.scope; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.phase.scope.AbstractMoveScope; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicStepScope.java b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicStepScope.java index 772d805cd2..75f914eff6 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicStepScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/constructionheuristic/scope/ConstructionHeuristicStepScope.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.constructionheuristic.scope; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.phase.scope.AbstractStepScope; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningEntityMetaModel.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningEntityMetaModel.java index ce1cc9171c..03dca2a265 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningEntityMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningEntityMetaModel.java @@ -5,10 +5,10 @@ import java.util.List; import java.util.Objects; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningSolutionMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.VariableMetaModel; import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningSolutionMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.VariableMetaModel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningListVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningListVariableMetaModel.java index e4a729aba3..7b6b1366d7 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningListVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningListVariableMetaModel.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.domain.solution.descriptor; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningSolutionMetaModel.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningSolutionMetaModel.java index ef9ce31283..dbe6a40947 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningSolutionMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningSolutionMetaModel.java @@ -5,8 +5,8 @@ import java.util.List; import java.util.Objects; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningSolutionMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningSolutionMetaModel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningVariableMetaModel.java index 97d59d1198..454b57d51a 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningVariableMetaModel.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.domain.solution.descriptor; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningVariableMetaModel; import ai.timefold.solver.core.impl.domain.variable.descriptor.BasicVariableDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultShadowVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultShadowVariableMetaModel.java index 32816fd978..de059a850c 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultShadowVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultShadowVariableMetaModel.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.domain.solution.descriptor; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.ShadowVariableMetaModel; import ai.timefold.solver.core.impl.domain.variable.descriptor.ShadowVariableDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.ShadowVariableMetaModel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/SolutionDescriptor.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/SolutionDescriptor.java index e3290bb643..9e23e31e0d 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/SolutionDescriptor.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/SolutionDescriptor.java @@ -36,7 +36,6 @@ import ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfiguration; import ai.timefold.solver.core.api.domain.constraintweight.ConstraintConfigurationProvider; import ai.timefold.solver.core.api.domain.entity.PlanningEntity; -import ai.timefold.solver.core.api.domain.metamodel.PlanningSolutionMetaModel; import ai.timefold.solver.core.api.domain.solution.ConstraintWeightOverrides; import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty; import ai.timefold.solver.core.api.domain.solution.PlanningEntityProperty; @@ -75,6 +74,7 @@ import ai.timefold.solver.core.impl.util.MutableInt; import ai.timefold.solver.core.impl.util.MutableLong; import ai.timefold.solver.core.impl.util.MutablePair; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningSolutionMetaModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupply.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupply.java index 846f06c6c5..e85296773f 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupply.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupply.java @@ -4,10 +4,10 @@ import java.util.Map; import java.util.Objects; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.api.score.director.ScoreDirector; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ListVariableElementStateSupply.java b/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ListVariableElementStateSupply.java index 24eff6461c..1d27c5cd47 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ListVariableElementStateSupply.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/domain/variable/ListVariableElementStateSupply.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.domain.variable; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.api.domain.variable.ListVariableListener; import ai.timefold.solver.core.impl.domain.variable.listener.SourcedVariableListener; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; public interface ListVariableElementStateSupply extends SourcedVariableListener, diff --git a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhase.java b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhase.java index 234ad429b2..c9bf1e9351 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhase.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhase.java @@ -8,7 +8,6 @@ import java.util.TreeSet; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.impl.exhaustivesearch.decider.ExhaustiveSearchDecider; import ai.timefold.solver.core.impl.exhaustivesearch.node.ExhaustiveSearchLayer; @@ -22,6 +21,7 @@ import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.solver.termination.Termination; +import ai.timefold.solver.core.preview.api.move.Move; /** * Default implementation of {@link ExhaustiveSearchPhase}. diff --git a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/decider/ExhaustiveSearchDecider.java b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/decider/ExhaustiveSearchDecider.java index 3226e2db6d..1cd2574dfd 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/decider/ExhaustiveSearchDecider.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/decider/ExhaustiveSearchDecider.java @@ -1,6 +1,5 @@ package ai.timefold.solver.core.impl.exhaustivesearch.decider; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.impl.exhaustivesearch.event.ExhaustiveSearchPhaseLifecycleListener; import ai.timefold.solver.core.impl.exhaustivesearch.node.ExhaustiveSearchLayer; @@ -16,6 +15,7 @@ import ai.timefold.solver.core.impl.solver.recaller.BestSolutionRecaller; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.solver.termination.Termination; +import ai.timefold.solver.core.preview.api.move.Move; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/node/ExhaustiveSearchNode.java b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/node/ExhaustiveSearchNode.java index 5cb711280d..974f48cd57 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/node/ExhaustiveSearchNode.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/exhaustivesearch/node/ExhaustiveSearchNode.java @@ -1,9 +1,9 @@ package ai.timefold.solver.core.impl.exhaustivesearch.node; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.director.ScoreDirector; import ai.timefold.solver.core.impl.exhaustivesearch.node.bounder.ScoreBounder; +import ai.timefold.solver.core.preview.api.move.Move; public class ExhaustiveSearchNode { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/move/LegacyMoveAdapter.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/move/LegacyMoveAdapter.java index 2fd3f33d79..7046547980 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/move/LegacyMoveAdapter.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/move/LegacyMoveAdapter.java @@ -2,14 +2,14 @@ import java.util.Collection; -import ai.timefold.solver.core.api.move.Move; -import ai.timefold.solver.core.api.move.MutableSolutionView; -import ai.timefold.solver.core.api.move.Rebaser; -import ai.timefold.solver.core.api.move.SolutionView; import ai.timefold.solver.core.api.score.director.ScoreDirector; import ai.timefold.solver.core.impl.move.InnerMutableSolutionView; import ai.timefold.solver.core.impl.move.director.MoveDirector; import ai.timefold.solver.core.impl.move.generic.NoChangeMove; +import ai.timefold.solver.core.preview.api.move.Move; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; +import ai.timefold.solver.core.preview.api.move.Rebaser; +import ai.timefold.solver.core.preview.api.move.SolutionView; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/common/iterator/UpcomingSelectionIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/common/iterator/UpcomingSelectionIterator.java index 17203c2d2b..2004d0db8f 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/common/iterator/UpcomingSelectionIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/common/iterator/UpcomingSelectionIterator.java @@ -3,12 +3,12 @@ import java.util.Iterator; import java.util.NoSuchElementException; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.move.Move; import ai.timefold.solver.core.impl.heuristic.selector.Selector; import ai.timefold.solver.core.impl.heuristic.selector.entity.mimic.MimicReplayingEntitySelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; /** * IMPORTANT: The constructor of any subclass of this abstract class, should never call any of its child diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/DestinationSelector.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/DestinationSelector.java index 9de8081ef1..626b0ceaa1 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/DestinationSelector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/DestinationSelector.java @@ -1,7 +1,7 @@ package ai.timefold.solver.core.impl.heuristic.selector.list; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.heuristic.selector.IterableSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; public interface DestinationSelector extends IterableSelector { } diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementDestinationSelector.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementDestinationSelector.java index 382a368095..4b21fe7dc2 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementDestinationSelector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementDestinationSelector.java @@ -9,8 +9,6 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; @@ -20,6 +18,8 @@ import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; import ai.timefold.solver.core.impl.heuristic.selector.value.decorator.FilteringValueSelector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; /** * Selects destinations for list variable change moves. The destination specifies a future position in a list variable, diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementLocationRandomIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementLocationRandomIterator.java index b4698b4f99..3ac48f98c2 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementLocationRandomIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/list/ElementLocationRandomIterator.java @@ -3,12 +3,12 @@ import java.util.Iterator; import java.util.Random; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.selector.entity.EntitySelector; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; import ai.timefold.solver.core.impl.solver.random.RandomUtils; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; final class ElementLocationRandomIterator implements Iterator { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/LegacyIteratorAdapter.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/LegacyIteratorAdapter.java index b04b188f8d..ec69664717 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/LegacyIteratorAdapter.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/LegacyIteratorAdapter.java @@ -2,8 +2,8 @@ import java.util.Iterator; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.heuristic.move.LegacyMoveAdapter; +import ai.timefold.solver.core.preview.api.move.Move; final class LegacyIteratorAdapter implements Iterator> { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/MoveIteratorFactory.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/MoveIteratorFactory.java index ecc17e5b83..f7294c2526 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/MoveIteratorFactory.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/factory/MoveIteratorFactory.java @@ -18,7 +18,7 @@ */ public interface MoveIteratorFactory> { - static Iterator> + static Iterator> adaptIterator(Iterator> moveIterator) { return new LegacyIteratorAdapter<>(moveIterator); } diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/RuinRecreateConstructionHeuristicPhaseScope.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/RuinRecreateConstructionHeuristicPhaseScope.java index 25911e0273..e9d3b5926d 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/RuinRecreateConstructionHeuristicPhaseScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/RuinRecreateConstructionHeuristicPhaseScope.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.heuristic.selector.move.generic; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.constructionheuristic.scope.ConstructionHeuristicPhaseScope; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.move.Move; final class RuinRecreateConstructionHeuristicPhaseScope extends ConstructionHeuristicPhaseScope { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelector.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelector.java index 2c086aec5e..b684fd284d 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelector.java @@ -4,7 +4,6 @@ import java.util.Objects; import java.util.function.Supplier; -import ai.timefold.solver.core.api.domain.metamodel.UnassignedLocation; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.move.Move; @@ -13,6 +12,7 @@ import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; import ai.timefold.solver.core.impl.heuristic.selector.value.decorator.FilteringValueSelector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.domain.metamodel.UnassignedLocation; public class ListChangeMoveSelector extends GenericMoveSelector { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListChangeIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListChangeIterator.java index 70c8db3153..9f7a8a8827 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListChangeIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListChangeIterator.java @@ -3,8 +3,6 @@ import java.util.Collections; import java.util.Iterator; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.heuristic.move.Move; @@ -12,6 +10,8 @@ import ai.timefold.solver.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator; import ai.timefold.solver.core.impl.heuristic.selector.list.DestinationSelector; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; /** * diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListSwapIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListSwapIterator.java index 6ceb1e7891..a5d942d6e5 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListSwapIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/OriginalListSwapIterator.java @@ -3,7 +3,6 @@ import java.util.Collections; import java.util.Iterator; -import ai.timefold.solver.core.api.domain.metamodel.UnassignedLocation; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.heuristic.move.CompositeMove; @@ -11,6 +10,7 @@ import ai.timefold.solver.core.impl.heuristic.move.NoChangeMove; import ai.timefold.solver.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.UnassignedLocation; /** * diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomListChangeIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomListChangeIterator.java index 8b38ad83b9..114f9bc9e0 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomListChangeIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomListChangeIterator.java @@ -2,13 +2,13 @@ import java.util.Iterator; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.heuristic.move.Move; import ai.timefold.solver.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator; import ai.timefold.solver.core.impl.heuristic.selector.list.DestinationSelector; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveIterator.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveIterator.java index 52ab808652..0333170e6b 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveIterator.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveIterator.java @@ -3,14 +3,14 @@ import java.util.Iterator; import java.util.Random; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.move.Move; import ai.timefold.solver.core.impl.heuristic.selector.common.iterator.UpcomingSelectionIterator; import ai.timefold.solver.core.impl.heuristic.selector.list.DestinationSelector; import ai.timefold.solver.core.impl.heuristic.selector.list.SubList; import ai.timefold.solver.core.impl.heuristic.selector.list.SubListSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; class RandomSubListChangeMoveIterator extends UpcomingSelectionIterator> { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/value/decorator/AssignedListValueSelector.java b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/value/decorator/AssignedListValueSelector.java index 3096177f37..e692d4f554 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/value/decorator/AssignedListValueSelector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/value/decorator/AssignedListValueSelector.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.heuristic.selector.value.decorator; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.impl.heuristic.selector.list.ElementDestinationSelector; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; /** * Only selects values from the child value selector that are initialized. diff --git a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/LocalSearchDecider.java b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/LocalSearchDecider.java index d24b697982..bcdb810ec2 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/LocalSearchDecider.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/LocalSearchDecider.java @@ -1,7 +1,6 @@ package ai.timefold.solver.core.impl.localsearch.decider; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.impl.heuristic.move.LegacyMoveAdapter; import ai.timefold.solver.core.impl.heuristic.selector.move.MoveSelector; @@ -15,6 +14,7 @@ import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.solver.termination.Termination; +import ai.timefold.solver.core.preview.api.move.Move; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/MoveTabuAcceptor.java b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/MoveTabuAcceptor.java index 44be97d823..da9fe8486d 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/MoveTabuAcceptor.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/MoveTabuAcceptor.java @@ -3,9 +3,9 @@ import java.util.Collection; import java.util.Collections; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchMoveScope; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; +import ai.timefold.solver.core.preview.api.move.Move; public class MoveTabuAcceptor extends AbstractTabuAcceptor { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchMoveScope.java b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchMoveScope.java index f9b27667d7..e759f2eb62 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchMoveScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchMoveScope.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.localsearch.scope; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.phase.scope.AbstractMoveScope; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchStepScope.java b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchStepScope.java index 0bf7b5c416..f36b6e5e32 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchStepScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/localsearch/scope/LocalSearchStepScope.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.localsearch.scope; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.phase.scope.AbstractStepScope; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/InnerMutableSolutionView.java b/core/src/main/java/ai/timefold/solver/core/impl/move/InnerMutableSolutionView.java index 82492460af..9bd345713e 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/InnerMutableSolutionView.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/InnerMutableSolutionView.java @@ -1,7 +1,7 @@ package ai.timefold.solver.core.impl.move; -import ai.timefold.solver.core.api.move.MutableSolutionView; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; public interface InnerMutableSolutionView extends MutableSolutionView { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ChangeAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ChangeAction.java index b772e455df..693161ad36 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ChangeAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ChangeAction.java @@ -1,7 +1,7 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; sealed interface ChangeAction permits ListVariableAfterAssignmentAction, ListVariableAfterChangeAction, ListVariableAfterUnassignmentAction, diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/EphemeralMoveDirector.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/EphemeralMoveDirector.java index 20f098068f..dacaf49bf1 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/EphemeralMoveDirector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/EphemeralMoveDirector.java @@ -1,9 +1,9 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; +import ai.timefold.solver.core.preview.api.move.Move; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterAssignmentAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterAssignmentAction.java index 5b490bf0b4..cf2f228b8e 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterAssignmentAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterAssignmentAction.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableAfterAssignmentAction(Object element, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterChangeAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterChangeAction.java index ddec5aa019..8d4161d668 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterChangeAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterChangeAction.java @@ -2,9 +2,9 @@ import java.util.List; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableAfterChangeAction(Entity_ entity, int fromIndex, int toIndex, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterUnassignmentAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterUnassignmentAction.java index 1aa2863cab..a10ddbc302 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterUnassignmentAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableAfterUnassignmentAction.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableAfterUnassignmentAction(Object element, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeAssignmentAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeAssignmentAction.java index c1c24e654b..5c311a9049 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeAssignmentAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeAssignmentAction.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableBeforeAssignmentAction(Object element, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeChangeAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeChangeAction.java index 13364e1081..58c08c776c 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeChangeAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeChangeAction.java @@ -2,9 +2,9 @@ import java.util.List; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableBeforeChangeAction(Entity_ entity, List oldValue, int fromIndex, int toIndex, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeUnassignmentAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeUnassignmentAction.java index cd8e911b37..6f72dfa2fe 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeUnassignmentAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/ListVariableBeforeUnassignmentAction.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record ListVariableBeforeUnassignmentAction(Object element, ListVariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java index 25c1161063..3d409d0b4b 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java @@ -2,10 +2,6 @@ import java.util.Objects; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningVariableMetaModel; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningListVariableMetaModel; import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningVariableMetaModel; import ai.timefold.solver.core.impl.domain.variable.descriptor.BasicVariableDescriptor; @@ -13,6 +9,10 @@ import ai.timefold.solver.core.impl.move.InnerMutableSolutionView; import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel; +import ai.timefold.solver.core.preview.api.move.Rebaser; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/RecordedUndoMove.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/RecordedUndoMove.java index c58c83811e..37d4a9b23f 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/RecordedUndoMove.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/RecordedUndoMove.java @@ -3,10 +3,10 @@ import java.util.List; import java.util.Objects; -import ai.timefold.solver.core.api.move.Move; -import ai.timefold.solver.core.api.move.MutableSolutionView; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.move.InnerMutableSolutionView; +import ai.timefold.solver.core.preview.api.move.Move; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; +import ai.timefold.solver.core.preview.api.move.Rebaser; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/director/VariableChangeAction.java b/core/src/main/java/ai/timefold/solver/core/impl/move/director/VariableChangeAction.java index 7c0a00e3f3..60be926e1b 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/director/VariableChangeAction.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/director/VariableChangeAction.java @@ -1,8 +1,8 @@ package ai.timefold.solver.core.impl.move.director; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.domain.variable.descriptor.VariableDescriptor; import ai.timefold.solver.core.impl.score.director.VariableDescriptorAwareScoreDirector; +import ai.timefold.solver.core.preview.api.move.Rebaser; record VariableChangeAction(Entity_ entity, Value_ oldValue, VariableDescriptor variableDescriptor) implements ChangeAction { diff --git a/core/src/main/java/ai/timefold/solver/core/impl/move/generic/NoChangeMove.java b/core/src/main/java/ai/timefold/solver/core/impl/move/generic/NoChangeMove.java index 9376c298a7..49baec13af 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/move/generic/NoChangeMove.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/move/generic/NoChangeMove.java @@ -4,9 +4,9 @@ import java.util.Collections; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; -import ai.timefold.solver.core.api.move.MutableSolutionView; -import ai.timefold.solver.core.api.move.Rebaser; +import ai.timefold.solver.core.preview.api.move.Move; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; +import ai.timefold.solver.core.preview.api.move.Rebaser; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractMoveScope.java b/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractMoveScope.java index bba030b4cc..ee354a09ab 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractMoveScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractMoveScope.java @@ -3,9 +3,9 @@ import java.util.Random; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractPhaseScope.java b/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractPhaseScope.java index 2b99a6c5cb..d77f6a607d 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractPhaseScope.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/phase/scope/AbstractPhaseScope.java @@ -3,12 +3,12 @@ import java.util.Random; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.config.solver.monitoring.SolverMetric; import ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor; import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.move.Move; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/score/director/AbstractScoreDirector.java b/core/src/main/java/ai/timefold/solver/core/impl/score/director/AbstractScoreDirector.java index 74c1f8a2ec..6d691d449c 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/score/director/AbstractScoreDirector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/score/director/AbstractScoreDirector.java @@ -14,7 +14,6 @@ import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.solution.cloner.SolutionCloner; import ai.timefold.solver.core.api.domain.variable.VariableListener; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.analysis.ConstraintAnalysis; import ai.timefold.solver.core.api.score.analysis.MatchAnalysis; @@ -39,6 +38,7 @@ import ai.timefold.solver.core.impl.score.definition.ScoreDefinition; import ai.timefold.solver.core.impl.solver.exception.UndoScoreCorruptionException; import ai.timefold.solver.core.impl.solver.thread.ChildThreadType; +import ai.timefold.solver.core.preview.api.move.Move; import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; diff --git a/core/src/main/java/ai/timefold/solver/core/impl/score/director/InnerScoreDirector.java b/core/src/main/java/ai/timefold/solver/core/impl/score/director/InnerScoreDirector.java index d41d050fbb..e86d8409ac 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/score/director/InnerScoreDirector.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/score/director/InnerScoreDirector.java @@ -14,7 +14,6 @@ import ai.timefold.solver.core.api.domain.solution.ProblemFactCollectionProperty; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; import ai.timefold.solver.core.api.domain.variable.VariableListener; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.analysis.ConstraintAnalysis; import ai.timefold.solver.core.api.score.analysis.MatchAnalysis; @@ -38,6 +37,7 @@ import ai.timefold.solver.core.impl.score.constraint.ConstraintMatchPolicy; import ai.timefold.solver.core.impl.score.definition.ScoreDefinition; import ai.timefold.solver.core.impl.solver.thread.ChildThreadType; +import ai.timefold.solver.core.preview.api.move.Move; /** * @param the solution type, the class with the {@link PlanningSolution} annotation diff --git a/core/src/main/java/ai/timefold/solver/core/impl/solver/AssignmentProcessor.java b/core/src/main/java/ai/timefold/solver/core/impl/solver/AssignmentProcessor.java index a8ce6cbe48..1dbd7435a5 100644 --- a/core/src/main/java/ai/timefold/solver/core/impl/solver/AssignmentProcessor.java +++ b/core/src/main/java/ai/timefold/solver/core/impl/solver/AssignmentProcessor.java @@ -6,8 +6,6 @@ import java.util.Random; import java.util.function.Function; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.Score; import ai.timefold.solver.core.api.score.analysis.ScoreAnalysis; import ai.timefold.solver.core.api.solver.ScoreAnalysisFetchPolicy; @@ -24,6 +22,8 @@ import ai.timefold.solver.core.impl.move.director.MoveDirector; import ai.timefold.solver.core.impl.score.director.InnerScoreDirector; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; +import ai.timefold.solver.core.preview.api.move.Move; final class AssignmentProcessor, Recommendation_, In_, Out_> implements Function, List> { diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultLocationInList.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultLocationInList.java similarity index 93% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultLocationInList.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultLocationInList.java index ca14e91382..e5ad52887c 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultLocationInList.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultLocationInList.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import java.util.Objects; import java.util.function.Supplier; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultUnassignedLocation.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultUnassignedLocation.java similarity index 89% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultUnassignedLocation.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultUnassignedLocation.java index 98f5c2c8d2..4ea561b42b 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/DefaultUnassignedLocation.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/DefaultUnassignedLocation.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import java.util.function.Supplier; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ElementLocation.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ElementLocation.java similarity index 97% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ElementLocation.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ElementLocation.java index 28c2501e94..e89a4c11ae 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ElementLocation.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ElementLocation.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import java.util.function.Supplier; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/LocationInList.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/LocationInList.java similarity index 95% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/LocationInList.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/LocationInList.java index 3bebcbb153..42bcf0c32b 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/LocationInList.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/LocationInList.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import org.jspecify.annotations.NonNull; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningEntityMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningEntityMetaModel.java similarity index 98% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningEntityMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningEntityMetaModel.java index ad25ba919d..964c89f25b 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningEntityMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningEntityMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import java.util.List; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningListVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningListVariableMetaModel.java similarity index 95% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningListVariableMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningListVariableMetaModel.java index 656fde8da2..79c7f965ad 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningListVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningListVariableMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningSolutionMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningSolutionMetaModel.java similarity index 97% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningSolutionMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningSolutionMetaModel.java index 91d2973595..ea51e3c55c 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningSolutionMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningSolutionMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import java.util.List; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningVariableMetaModel.java similarity index 96% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningVariableMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningVariableMetaModel.java index 3e0ce37c42..9cfcd96937 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/PlanningVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/PlanningVariableMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ShadowVariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ShadowVariableMetaModel.java similarity index 95% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ShadowVariableMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ShadowVariableMetaModel.java index 32552f2198..936b8bb2cc 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/ShadowVariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/ShadowVariableMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import ai.timefold.solver.core.api.domain.variable.VariableListener; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/UnassignedLocation.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/UnassignedLocation.java similarity index 94% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/UnassignedLocation.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/UnassignedLocation.java index 9e9a39a806..6ddd136b3e 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/UnassignedLocation.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/UnassignedLocation.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import ai.timefold.solver.core.api.domain.entity.PlanningEntity; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/VariableMetaModel.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/VariableMetaModel.java similarity index 97% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/VariableMetaModel.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/VariableMetaModel.java index 170981d36d..9cf7129045 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/VariableMetaModel.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/VariableMetaModel.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.domain.metamodel; +package ai.timefold.solver.core.preview.api.domain.metamodel; import ai.timefold.solver.core.api.domain.variable.PlanningListVariable; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; diff --git a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/package-info.java b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/package-info.java similarity index 84% rename from core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/package-info.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/package-info.java index 6a5126a879..e6856b0846 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/domain/metamodel/package-info.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/domain/metamodel/package-info.java @@ -1,7 +1,7 @@ /** * This package contains classes and interfaces that represent the metamodel of the domain. * This meta-model describes the planning solution, its entities and their variables, - * typically for use within {@link ai.timefold.solver.core.api.move.Move}s + * typically for use within {@link ai.timefold.solver.core.preview.api.move.Move}s * *

* This package and all of its contents are part of the Move Streams API, @@ -15,4 +15,4 @@ * Please direct your feedback to * Timefold Solver Github. */ -package ai.timefold.solver.core.api.domain.metamodel; \ No newline at end of file +package ai.timefold.solver.core.preview.api.domain.metamodel; \ No newline at end of file diff --git a/core/src/main/java/ai/timefold/solver/core/api/move/Move.java b/core/src/main/java/ai/timefold/solver/core/preview/api/move/Move.java similarity index 99% rename from core/src/main/java/ai/timefold/solver/core/api/move/Move.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/move/Move.java index b74db4a95e..eee2b9cb27 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/move/Move.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/move/Move.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.move; +package ai.timefold.solver.core.preview.api.move; import java.util.Collection; import java.util.HashSet; diff --git a/core/src/main/java/ai/timefold/solver/core/api/move/MutableSolutionView.java b/core/src/main/java/ai/timefold/solver/core/preview/api/move/MutableSolutionView.java similarity index 93% rename from core/src/main/java/ai/timefold/solver/core/api/move/MutableSolutionView.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/move/MutableSolutionView.java index bca3a617f8..0282a4556b 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/move/MutableSolutionView.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/move/MutableSolutionView.java @@ -1,11 +1,11 @@ -package ai.timefold.solver.core.api.move; +package ai.timefold.solver.core.preview.api.move; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningVariableMetaModel; import ai.timefold.solver.core.api.domain.solution.PlanningSolution; import ai.timefold.solver.core.api.domain.variable.PlanningListVariable; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; import ai.timefold.solver.core.api.score.director.ScoreDirector; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel; import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; diff --git a/core/src/main/java/ai/timefold/solver/core/api/move/Rebaser.java b/core/src/main/java/ai/timefold/solver/core/preview/api/move/Rebaser.java similarity index 97% rename from core/src/main/java/ai/timefold/solver/core/api/move/Rebaser.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/move/Rebaser.java index 5b8ee5c7f2..f6bdf0d3d9 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/move/Rebaser.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/move/Rebaser.java @@ -1,4 +1,4 @@ -package ai.timefold.solver.core.api.move; +package ai.timefold.solver.core.preview.api.move; import ai.timefold.solver.core.api.domain.lookup.LookUpStrategyType; import ai.timefold.solver.core.api.domain.lookup.PlanningId; diff --git a/core/src/main/java/ai/timefold/solver/core/api/move/SolutionView.java b/core/src/main/java/ai/timefold/solver/core/preview/api/move/SolutionView.java similarity index 90% rename from core/src/main/java/ai/timefold/solver/core/api/move/SolutionView.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/move/SolutionView.java index 94d5a06c64..83a375a9dc 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/move/SolutionView.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/move/SolutionView.java @@ -1,10 +1,10 @@ -package ai.timefold.solver.core.api.move; +package ai.timefold.solver.core.preview.api.move; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningVariableMetaModel; import ai.timefold.solver.core.api.domain.variable.PlanningListVariable; import ai.timefold.solver.core.api.domain.variable.PlanningVariable; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel; import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; diff --git a/core/src/main/java/ai/timefold/solver/core/api/move/package-info.java b/core/src/main/java/ai/timefold/solver/core/preview/api/move/package-info.java similarity index 94% rename from core/src/main/java/ai/timefold/solver/core/api/move/package-info.java rename to core/src/main/java/ai/timefold/solver/core/preview/api/move/package-info.java index ee716b03be..2ba5a24095 100644 --- a/core/src/main/java/ai/timefold/solver/core/api/move/package-info.java +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/move/package-info.java @@ -15,4 +15,4 @@ * Please direct your feedback to * Timefold Solver Github. */ -package ai.timefold.solver.core.api.move; \ No newline at end of file +package ai.timefold.solver.core.preview.api.move; \ No newline at end of file diff --git a/core/src/main/java/ai/timefold/solver/core/preview/api/package-info.java b/core/src/main/java/ai/timefold/solver/core/preview/api/package-info.java new file mode 100644 index 0000000000..88201dd774 --- /dev/null +++ b/core/src/main/java/ai/timefold/solver/core/preview/api/package-info.java @@ -0,0 +1,7 @@ +/** + * This package and all of its subpackages are only offered as a preview feature. + * There are no guarantees for backward compatibility; + * any class, method or field may change or be removed without prior notice, + * although we will strive to avoid this as much as possible. + */ +package ai.timefold.solver.core.preview.api; \ No newline at end of file diff --git a/core/src/test/java/ai/timefold/solver/core/impl/constructionheuristic/placer/entity/PlacementAssertions.java b/core/src/test/java/ai/timefold/solver/core/impl/constructionheuristic/placer/entity/PlacementAssertions.java index 2020dcce43..4278292aef 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/constructionheuristic/placer/entity/PlacementAssertions.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/constructionheuristic/placer/entity/PlacementAssertions.java @@ -5,10 +5,10 @@ import java.util.Iterator; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.impl.constructionheuristic.placer.Placement; import ai.timefold.solver.core.impl.heuristic.move.LegacyMoveAdapter; import ai.timefold.solver.core.impl.heuristic.selector.move.generic.ChangeMove; +import ai.timefold.solver.core.preview.api.move.Move; final class PlacementAssertions { diff --git a/core/src/test/java/ai/timefold/solver/core/impl/domain/solution/descriptor/PlanningSolutionMetaModelTest.java b/core/src/test/java/ai/timefold/solver/core/impl/domain/solution/descriptor/PlanningSolutionMetaModelTest.java index ca97629585..d262ae8af9 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/domain/solution/descriptor/PlanningSolutionMetaModelTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/domain/solution/descriptor/PlanningSolutionMetaModelTest.java @@ -4,17 +4,17 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.SoftAssertions.assertSoftly; -import ai.timefold.solver.core.api.domain.metamodel.PlanningEntityMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningListVariableMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.PlanningSolutionMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.ShadowVariableMetaModel; -import ai.timefold.solver.core.api.domain.metamodel.VariableMetaModel; import ai.timefold.solver.core.impl.testdata.domain.TestdataEntity; import ai.timefold.solver.core.impl.testdata.domain.TestdataSolution; import ai.timefold.solver.core.impl.testdata.domain.TestdataValue; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListValue; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningEntityMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningListVariableMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningSolutionMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.ShadowVariableMetaModel; +import ai.timefold.solver.core.preview.api.domain.metamodel.VariableMetaModel; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupplyTest.java b/core/src/test/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupplyTest.java index 031215be73..84af3fcccc 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupplyTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/domain/variable/ExternalizedListVariableStateSupplyTest.java @@ -8,11 +8,11 @@ import java.util.ArrayList; import java.util.Arrays; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.api.score.director.ScoreDirector; import ai.timefold.solver.core.impl.testdata.domain.list.allows_unassigned.TestdataAllowsUnassignedValuesListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.allows_unassigned.TestdataAllowsUnassignedValuesListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.allows_unassigned.TestdataAllowsUnassignedValuesListValue; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhaseTest.java b/core/src/test/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhaseTest.java index 41b5fec8a8..fcdd9b4a20 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhaseTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/exhaustivesearch/DefaultExhaustiveSearchPhaseTest.java @@ -15,8 +15,6 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; -import ai.timefold.solver.core.api.move.Move; -import ai.timefold.solver.core.api.move.MutableSolutionView; import ai.timefold.solver.core.api.score.buildin.simple.SimpleScore; import ai.timefold.solver.core.api.solver.Solver; import ai.timefold.solver.core.api.solver.SolverFactory; @@ -43,6 +41,8 @@ import ai.timefold.solver.core.impl.testdata.domain.pinned.allows_unassigned.TestdataPinnedAllowsUnassignedSolution; import ai.timefold.solver.core.impl.testdata.util.PlannerTestUtils; import ai.timefold.solver.core.impl.testutil.TestMeterRegistry; +import ai.timefold.solver.core.preview.api.move.Move; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelectorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelectorTest.java index da8b6a83a8..40c15df067 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelectorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/ListChangeMoveSelectorTest.java @@ -18,7 +18,6 @@ import java.util.List; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListValue; @@ -28,6 +27,7 @@ import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListValue; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveSelectorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveSelectorTest.java index d576b4b858..3056ba4fa5 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveSelectorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/RandomSubListChangeMoveSelectorTest.java @@ -18,7 +18,6 @@ import java.util.List; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.heuristic.selector.list.RandomSubListSelector; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListSolution; @@ -27,6 +26,7 @@ import ai.timefold.solver.core.impl.testdata.domain.list.allows_unassigned.TestdataAllowsUnassignedValuesListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.allows_unassigned.TestdataAllowsUnassignedValuesListValue; import ai.timefold.solver.core.impl.testutil.TestRandom; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/KOptListMoveIteratorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/KOptListMoveIteratorTest.java index c36a74d212..2d2680e563 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/KOptListMoveIteratorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/KOptListMoveIteratorTest.java @@ -18,11 +18,11 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.selector.value.EntityIndependentValueSelector; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/MultipleDelegateListTest.java b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/MultipleDelegateListTest.java index 96c7bf7a10..b251ffc83f 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/MultipleDelegateListTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/heuristic/selector/move/generic/list/kopt/MultipleDelegateListTest.java @@ -15,10 +15,10 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/AbstractAcceptorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/AbstractAcceptorTest.java index 8bdf613e53..0fed22c21c 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/AbstractAcceptorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/AbstractAcceptorTest.java @@ -2,10 +2,10 @@ import static org.mockito.Mockito.mock; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.buildin.simple.SimpleScore; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchMoveScope; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; +import ai.timefold.solver.core.preview.api.move.Move; public abstract class AbstractAcceptorTest { diff --git a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptorTest.java index ee33f17747..51ffaeeeda 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptorTest.java @@ -3,7 +3,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore; import ai.timefold.solver.core.api.score.buildin.simple.SimpleScore; import ai.timefold.solver.core.impl.localsearch.decider.acceptor.AbstractAcceptorTest; @@ -11,6 +10,7 @@ import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchPhaseScope; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.move.Move; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/EntityTabuAcceptorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/EntityTabuAcceptorTest.java index 3689a9658f..7f7d74ab05 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/EntityTabuAcceptorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/EntityTabuAcceptorTest.java @@ -6,7 +6,6 @@ import java.util.Arrays; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.buildin.simple.SimpleScore; import ai.timefold.solver.core.impl.localsearch.decider.acceptor.tabu.size.FixedTabuSizeStrategy; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchMoveScope; @@ -14,6 +13,7 @@ import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.testdata.domain.TestdataEntity; +import ai.timefold.solver.core.preview.api.move.Move; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/ValueTabuAcceptorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/ValueTabuAcceptorTest.java index e2388beee7..68e411a86c 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/ValueTabuAcceptorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/acceptor/tabu/ValueTabuAcceptorTest.java @@ -6,7 +6,6 @@ import java.util.Arrays; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.buildin.simple.SimpleScore; import ai.timefold.solver.core.impl.localsearch.decider.acceptor.tabu.size.FixedTabuSizeStrategy; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchMoveScope; @@ -14,6 +13,7 @@ import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; import ai.timefold.solver.core.impl.solver.scope.SolverScope; import ai.timefold.solver.core.impl.testdata.domain.TestdataValue; +import ai.timefold.solver.core.preview.api.move.Move; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/forager/finalist/StrategicOscillationByLevelFinalistPodiumTest.java b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/forager/finalist/StrategicOscillationByLevelFinalistPodiumTest.java index fc55389c9d..a11f2c3643 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/forager/finalist/StrategicOscillationByLevelFinalistPodiumTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/localsearch/decider/forager/finalist/StrategicOscillationByLevelFinalistPodiumTest.java @@ -4,13 +4,13 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; -import ai.timefold.solver.core.api.move.Move; import ai.timefold.solver.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore; import ai.timefold.solver.core.api.score.buildin.hardsoft.HardSoftScore; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchMoveScope; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchPhaseScope; import ai.timefold.solver.core.impl.localsearch.scope.LocalSearchStepScope; import ai.timefold.solver.core.impl.solver.scope.SolverScope; +import ai.timefold.solver.core.preview.api.move.Move; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/move/director/MoveDirectorTest.java b/core/src/test/java/ai/timefold/solver/core/impl/move/director/MoveDirectorTest.java index 65b6477a91..3aad18a692 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/move/director/MoveDirectorTest.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/move/director/MoveDirectorTest.java @@ -8,7 +8,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningListVariableMetaModel; import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningVariableMetaModel; import ai.timefold.solver.core.impl.domain.variable.ListVariableStateSupply; @@ -19,6 +18,7 @@ import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.TestdataListValue; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; import org.junit.jupiter.api.Test; diff --git a/core/src/test/java/ai/timefold/solver/core/impl/testdata/domain/list/TestdataListUtils.java b/core/src/test/java/ai/timefold/solver/core/impl/testdata/domain/list/TestdataListUtils.java index 173da15bce..8166c1985d 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/testdata/domain/list/TestdataListUtils.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/testdata/domain/list/TestdataListUtils.java @@ -8,8 +8,6 @@ import java.util.Iterator; import java.util.List; -import ai.timefold.solver.core.api.domain.metamodel.ElementLocation; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; import ai.timefold.solver.core.impl.domain.variable.descriptor.ListVariableDescriptor; import ai.timefold.solver.core.impl.heuristic.selector.SelectorTestUtils; import ai.timefold.solver.core.impl.heuristic.selector.entity.EntitySelector; @@ -25,6 +23,8 @@ import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListEntity; import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListSolution; import ai.timefold.solver.core.impl.testdata.domain.list.pinned.index.TestdataPinnedWithIndexListValue; +import ai.timefold.solver.core.preview.api.domain.metamodel.ElementLocation; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; public final class TestdataListUtils { diff --git a/core/src/test/java/ai/timefold/solver/core/impl/testdata/util/CodeAssertable.java b/core/src/test/java/ai/timefold/solver/core/impl/testdata/util/CodeAssertable.java index 1a465ea717..62e66ec7fc 100644 --- a/core/src/test/java/ai/timefold/solver/core/impl/testdata/util/CodeAssertable.java +++ b/core/src/test/java/ai/timefold/solver/core/impl/testdata/util/CodeAssertable.java @@ -3,8 +3,6 @@ import java.util.List; import java.util.Objects; -import ai.timefold.solver.core.api.domain.metamodel.LocationInList; -import ai.timefold.solver.core.api.domain.metamodel.UnassignedLocation; import ai.timefold.solver.core.impl.heuristic.move.CompositeMove; import ai.timefold.solver.core.impl.heuristic.move.LegacyMoveAdapter; import ai.timefold.solver.core.impl.heuristic.move.Move; @@ -20,6 +18,8 @@ import ai.timefold.solver.core.impl.heuristic.selector.move.generic.list.SubListSwapMove; import ai.timefold.solver.core.impl.heuristic.selector.move.generic.list.SubListUnassignMove; import ai.timefold.solver.core.impl.heuristic.selector.value.chained.SubChain; +import ai.timefold.solver.core.preview.api.domain.metamodel.LocationInList; +import ai.timefold.solver.core.preview.api.domain.metamodel.UnassignedLocation; public interface CodeAssertable { diff --git a/core/src/test/java/ai/timefold/solver/core/api/move/generic/DummyMove.java b/core/src/test/java/ai/timefold/solver/core/preview/api/move/generic/DummyMove.java similarity index 84% rename from core/src/test/java/ai/timefold/solver/core/api/move/generic/DummyMove.java rename to core/src/test/java/ai/timefold/solver/core/preview/api/move/generic/DummyMove.java index 4a23c886a4..1d698a9765 100644 --- a/core/src/test/java/ai/timefold/solver/core/api/move/generic/DummyMove.java +++ b/core/src/test/java/ai/timefold/solver/core/preview/api/move/generic/DummyMove.java @@ -1,13 +1,13 @@ -package ai.timefold.solver.core.api.move.generic; +package ai.timefold.solver.core.preview.api.move.generic; import java.util.Collection; import java.util.Collections; -import ai.timefold.solver.core.api.move.Move; -import ai.timefold.solver.core.api.move.MutableSolutionView; -import ai.timefold.solver.core.api.move.Rebaser; import ai.timefold.solver.core.impl.testdata.domain.TestdataSolution; import ai.timefold.solver.core.impl.testdata.util.CodeAssertable; +import ai.timefold.solver.core.preview.api.move.Move; +import ai.timefold.solver.core.preview.api.move.MutableSolutionView; +import ai.timefold.solver.core.preview.api.move.Rebaser; import org.jspecify.annotations.NonNull;