Package org.optaplanner.core.impl.partitionedsearch.partitioner

## Interface SolutionPartitioner<Solution_>

- Type Parameters:
    `Solution_` - the solution type, the class with the `PlanningSolution` annotation

      public interface SolutionPartitioner<Solution_>

  Splits one `solution` into multiple partitions. The partitions are solved and merged based on the `PlanningSolution.lookUpStrategyType()`.

  To add custom properties, configure custom properties and add public setters for them.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<Solution_>` | `splitWorkingSolution​(ScoreDirector<Solution_> scoreDirector, Integer runnablePartThreadLimit)` | Returns a list of partition cloned `solutions` for which each `planning entity` is partition cloned into exactly 1 of those partitions.

- - ### Method Detail

    - #### splitWorkingSolution

          List<Solution_> splitWorkingSolution​(ScoreDirector<Solution_> scoreDirector,
                                               Integer runnablePartThreadLimit)

      Returns a list of partition cloned `solutions` for which each `planning entity` is partition cloned into exactly 1 of those partitions. Problem facts can be multiple partitions (with our without cloning).

      Any class that is `solution cloned` must also be partitioned cloned. A class can be partition cloned without being solution cloned.

      Parameters:
        `scoreDirector` - never null, the `ScoreDirector` which has the `ScoreDirector.getWorkingSolution()` that needs to be split up
        `runnablePartThreadLimit` - null if unlimited, never negative
      Returns:
        never null, `List.size()` of at least 1.