private static Predicate<String[]> getComparativeClausePredicate(
ComparisonPredicate comparisonPredicate, Map<String, Integer> descriptorIndexMap) {
DataType dataType = getDataTypeToCastOperandsTo(comparisonPredicate);
ComparisonOperator operator = comparisonPredicate.getComparisonOperator();
Pair<String, String> leftOperand = comparisonPredicate.getLeftOperand();
Pair<String, String> rightOperand = comparisonPredicate.getRightOperand();
String literal = comparisonPredicate.getLiteral();
int variable1IndexInPropertyResults = descriptorIndexMap.get(leftOperand.a + '.' +
leftOperand.b);
int variable2IndexInPropertyResults = (null != rightOperand) ? descriptorIndexMap.get(
rightOperand.a + '.' + rightOperand.b) : -1;
return (String[] predicate) -> {
String rvalue = (variable2IndexInPropertyResults == -1) ? literal : predicate[
variable2IndexInPropertyResults];
return RuntimeComparator.resolveTypesAndCompare(DataType.parseDataType(dataType,
predicate[variable1IndexInPropertyResults]), DataType.parseDataType(dataType,
rvalue), operator);
};
}
PredicateFactory.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:graphflow
作者:
评论列表
文章目录