if (!ObjectUtils.equals(leftValue, rightValue)) {
movable = true;
if (!variableDescriptor.isValueRangeEntityIndependent()) {
ValueRangeDescriptor valueRangeDescriptor = variableDescriptor.getValueRangeDescriptor();
Solution workingSolution = scoreDirector.getWorkingSolution();
ValueRange rightValueRange = valueRangeDescriptor.extractValueRange(workingSolution, rightEntity);
if (!rightValueRange.contains(leftValue)) {
return false;
}
ValueRange leftValueRange = valueRangeDescriptor.extractValueRange(workingSolution, leftEntity);
if (!leftValueRange.contains(rightValue)) {