if (descriptorPolicy.hasFromSolutionValueRangeProvider(valueRangeProviderRef)) {
Method readMethod = descriptorPolicy.getFromSolutionValueRangeProvider(valueRangeProviderRef);
return new FromSolutionPropertyValueRangeDescriptor(this, addNullInValueRange, readMethod);
} else if (descriptorPolicy.hasFromEntityValueRangeProvider(valueRangeProviderRef)) {
Method readMethod = descriptorPolicy.getFromEntityValueRangeProvider(valueRangeProviderRef);
return new FromEntityPropertyValueRangeDescriptor(this, addNullInValueRange, readMethod);
} else {
throw new IllegalArgumentException("The entityClass (" + entityDescriptor.getEntityClass()
+ ") has a " + PlanningVariable.class.getSimpleName()
+ ") annotated property (" + variablePropertyAccessor.getName()
+ ") with a valueRangeProviderRef (" + valueRangeProviderRef