next.lookup(innerMap, result);
}
return;
}
RangeIndexLookupValueRange lookup = (RangeIndexLookupValueRange) lookupValue;
TreeMap treeMap = (TreeMap) parent;
Object rangeValue = lookup.getValue();
if (lookup.getOperator() == QueryGraphRangeEnum.RANGE_CLOSED) {
Range range = (Range) rangeValue;
lookupRange(result, treeMap, range.getLowEndpoint(), true, range.getHighEndpoint(), true, true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.RANGE_HALF_OPEN) {
Range range = (Range) rangeValue;
lookupRange(result, treeMap, range.getLowEndpoint(), true, range.getHighEndpoint(), false, true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.RANGE_HALF_CLOSED) {
Range range = (Range) rangeValue;
lookupRange(result, treeMap, range.getLowEndpoint(), false, range.getHighEndpoint(), true, true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.RANGE_OPEN) {
Range range = (Range) rangeValue;
lookupRange(result, treeMap, range.getLowEndpoint(), false, range.getHighEndpoint(), false, true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.NOT_RANGE_CLOSED) {
Range range = (Range) rangeValue;
lookupRangeInverted(result, treeMap, range.getLowEndpoint(), true, range.getHighEndpoint(), true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.NOT_RANGE_HALF_OPEN) {
Range range = (Range) rangeValue;
lookupRangeInverted(result, treeMap, range.getLowEndpoint(), true, range.getHighEndpoint(), false);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.NOT_RANGE_HALF_CLOSED) {
Range range = (Range) rangeValue;
lookupRangeInverted(result, treeMap, range.getLowEndpoint(), false, range.getHighEndpoint(), true);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.NOT_RANGE_OPEN) {
Range range = (Range) rangeValue;
lookupRangeInverted(result, treeMap, range.getLowEndpoint(), false, range.getHighEndpoint(), false);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.GREATER) {
lookupGreater(result, treeMap, rangeValue);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.GREATER_OR_EQUAL) {
lookupGreaterEqual(result, treeMap, rangeValue);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.LESS) {
lookupLess(result, treeMap, rangeValue);
}
else if (lookup.getOperator() == QueryGraphRangeEnum.LESS_OR_EQUAL) {
lookupLessEqual(result, treeMap, rangeValue);
}
else {
throw new IllegalArgumentException("Unrecognized operator '" + lookup.getOperator() + "'");
}
}