public Range getOpsite() {
Range ran = new Range();
ran.column = this.column;
ran.valueType = this.valueType;
ran.startValue = this.endValue;
ran.endValue = this.startValue;
ran.setStartTs(startTs);
ran.setEndTs(endTs);
ran.setLatestVersionOnly(latestVersionOnly);
ran.setFilterIfMissing(filterIfMissing);
if (ran.valueType == DataType.BOOLEAN) {
if (Bytes.toString(this.startValue).equals("true")) {
ran.startValue = Bytes.toBytes("false");
} else if (Bytes.toString(this.startValue).equals("false")) {
ran.startValue = Bytes.toBytes("true");
}
ran.startType = CompareOp.EQUAL;
return ran;
}
if (this.startValue != null && this.startValue.length != 0) {
switch (this.startType) {
case EQUAL:
ran.startType = CompareOp.GREATER;
ran.startValue = this.startValue;
ran.endValue = this.startValue;
ran.endType = CompareOp.LESS;
break;
case GREATER_OR_EQUAL:
ran.endType = CompareOp.LESS;
break;
case GREATER:
ran.endType = CompareOp.LESS_OR_EQUAL;
break;
default:
break;
}
}
if (this.endValue != null && this.endValue.length != 0) {
switch (this.endType) {
case LESS:
ran.startType = CompareOp.GREATER_OR_EQUAL;
break;
case LESS_OR_EQUAL:
ran.startType = CompareOp.GREATER;
break;
default:
break;
}
}
return ran;
}