-
Notifications
You must be signed in to change notification settings - Fork 148
chore: move streams change moves for list variable #1727
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces ListChangeMoveProvider
that generates change moves, assign moves, and unassign moves for list variables. The implementation adds new capabilities to data streams and removes initialization requirements from nodes and data sessions by utilizing the value range manager.
- Adds comprehensive list variable move generation with support for assignments, changes, and unassignments
- Introduces mapping and distinct operations to data streams with new APIs
- Removes node initialization requirements and simplifies session management
Reviewed Changes
Copilot reviewed 80 out of 80 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
ListChangeMoveProvider.java | New provider generating list variable moves with filtering logic |
DefaultSolverTest.java | Adds test for list variable solving with move streams |
SolutionView.java | Adds countValues method for list variable length queries |
AbstractUniDataStream.java | Implements map and distinct operations for data stream transformations |
DefaultMoveStreamFactory.java | Updates constructor to accept EnvironmentMode parameter |
Various move classes | Updates move implementations with better type safety and getter methods |
Comments suppressed due to low confidence (1)
core/src/test/java/ai/timefold/solver/core/impl/solver/DefaultSolverTest.java:444
- Grammatical error: 'Only penalizes is length' should be 'Only penalizes if length'.
}
...timefold/solver/core/impl/move/streams/maybeapi/generic/provider/ListChangeMoveProvider.java
Show resolved
Hide resolved
...timefold/solver/core/impl/move/streams/maybeapi/generic/provider/ListChangeMoveProvider.java
Outdated
Show resolved
Hide resolved
...timefold/solver/core/impl/move/streams/maybeapi/generic/provider/ListChangeMoveProvider.java
Outdated
Show resolved
Hide resolved
...ain/java/ai/timefold/solver/core/impl/move/streams/maybeapi/generic/move/ListChangeMove.java
Outdated
Show resolved
Hide resolved
core/src/main/java/ai/timefold/solver/core/impl/move/streams/dataset/bi/UniMapBiDataStream.java
Outdated
Show resolved
Hide resolved
core/src/main/java/ai/timefold/solver/core/impl/move/streams/dataset/bi/UniMapBiDataStream.java
Outdated
Show resolved
Hide resolved
...in/java/ai/timefold/solver/core/impl/move/streams/dataset/uni/AbstractForEachDataStream.java
Show resolved
Hide resolved
.../src/main/java/ai/timefold/solver/core/impl/move/streams/dataset/uni/BiMapUniDataStream.java
Outdated
Show resolved
Hide resolved
...timefold/solver/core/impl/move/streams/maybeapi/generic/provider/ListChangeMoveProvider.java
Show resolved
Hide resolved
...timefold/solver/core/impl/move/streams/maybeapi/generic/provider/ListChangeMoveProvider.java
Show resolved
Hide resolved
The concern regarding
|
Thank you for the explanation. Having the Nevertheless, I liked the functionality and programming model provided at this stage. |
Co-authored-by: Copilot <[email protected]>
|
Introduces
ListChangeMoveProvider
that is capable of generating change moves, assign moves and unassign moves.To do that, several new capabilities are introduced to data streams, which mimic capabilities of constraint streams and use the same underlying Bavet nodes.
With the new value range work, nodes and data sessions no longer need initialization, because everything we need, we can now find in the value range manager.