Я хотел бы знать, как работает поставщик диапазона значений.
У меня есть класс с именем Entity
, в этом классе есть несколько экземпляров, все они сопоставлены в Solution
, как показано ниже
@PlanningEntityCollectionProperty
public List<Entity> getEntityList() {
return entityList;
}
Теперь я хочу иметь значения диапазона Differentnet дляразные Entity
объекты .Например.один будет иметь от 0 до 50, другой может иметь от 20 до 100, как.Итак, я реализовал @ValueRangeProvider
внутри Entity
Class.
@PlanningEntity()
public class Entity {
@PlanningVariable(valueRangeProviderRefs = {"quantityRange"})
public Long getAllocatedWeight() {
return allocatedWeight;
}
@ValueRangeProvider(id = "quantityRange")
public CountableValueRange<Long> getQuantityRange() {
return ValueRangeFactory.createLongValueRange(minWeights, maxWeights);
}
}
Точка останова на getQuantityRange
никогда не вызывается, также Оптапланер не учитывает диапазон при генерации результатов, но все правила слюней работают нормально, как и предполагалось.Все, что мне нужно, это статически назначать диапазоны для каждого объекта сущности.
Примечание: я использую InvestmentQuantityTransferMove.java
для перехода от примера investments , найденного в репо-планировщике Репо.Поскольку мое решение также похоже, то сумма всей сущности должна быть точно равна определенной величине.