if(!(in_colCurrentValueTypeRanges.get(oAtom) instanceof OrderedValueTypeRange)) {
return null;
}
OrderedValueTypeRange oVTR =
(OrderedValueTypeRange)in_colCurrentValueTypeRanges.get(oAtom);
OrderedValueType oMaxVT = oVTR.getMaxValue();
if(!oVTR.isMaxIncluded())
oMaxVT = oMaxVT.getLowerValueMinDistance();
OrderedValueType oMinVT = oVTR.getMinValue();
if(!oVTR.isMinIncluded())
oMinVT = oMinVT.getUpperValueMinDistance();
colAtomToValueRanges.put(oAtom, new Pair<ValueType, ValueType>(
oMinVT, oMaxVT));
}
Pair<ValueType, ValueType> oValueTypePair =
m_oMinValue.createValueFromExpression(
oOperation.getRight(), in_colCurrentValueAssignment,
colAtomToValueRanges);
if(oValueTypePair != null) {
OrderedValueType oFirstValue = (OrderedValueType)oValueTypePair.getFirst();
OrderedValueType oSecondValue = (OrderedValueType)oValueTypePair.getSecond();
OrderedValueTypeRange<OVT> oVTR = new OrderedValueTypeRange<OVT>(
oFirstValue, true, oSecondValue, true);
return oVTR;
}