private <T extends XPathExpressionEvaluator> void getEvaluators(XPathExpressionEvaluator evaluator, Class<T> evaluatorClass, List<XPathExpressionEvaluator> evaluators) { if(evaluator.getClass() == evaluatorClass) { evaluators.add(evaluator); } if(evaluator instanceof AbstractLogicalEvaluator) { getEvaluators(((AbstractLogicalEvaluator)evaluator).getLhs(), evaluatorClass, evaluators); getEvaluators(((AbstractLogicalEvaluator)evaluator).getRhs(), evaluatorClass, evaluators); } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> subEvaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : subEvaluators) { getEvaluators(pEvaluator, evaluatorClass, evaluators); } } }
LogicalExpr logicalExpr = (LogicalExpr) expr; if(logicalExpr.getOperator().equalsIgnoreCase("and")) { return new AndEvaluator(logicalExpr, selectorStep, namespaces); } else if(logicalExpr.getOperator().equalsIgnoreCase("or")) { return new OrEvaluator(logicalExpr, selectorStep, namespaces);
private <T extends XPathExpressionEvaluator> void getEvaluators(XPathExpressionEvaluator evaluator, Class<T> evaluatorClass, List<XPathExpressionEvaluator> evaluators) { if(evaluator.getClass() == evaluatorClass) { evaluators.add(evaluator); } if(evaluator instanceof AbstractLogicalEvaluator) { getEvaluators(((AbstractLogicalEvaluator)evaluator).getLhs(), evaluatorClass, evaluators); getEvaluators(((AbstractLogicalEvaluator)evaluator).getRhs(), evaluatorClass, evaluators); } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> subEvaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : subEvaluators) { getEvaluators(pEvaluator, evaluatorClass, evaluators); } } }
LogicalExpr logicalExpr = (LogicalExpr) expr; if(logicalExpr.getOperator().equalsIgnoreCase("and")) { return new AndEvaluator(logicalExpr, selectorStep, namespaces); } else if(logicalExpr.getOperator().equalsIgnoreCase("or")) { return new OrEvaluator(logicalExpr, selectorStep, namespaces);
private <T extends XPathExpressionEvaluator> void getEvaluators(XPathExpressionEvaluator evaluator, Class<T> evaluatorClass, List<XPathExpressionEvaluator> evaluators) { if(evaluator.getClass() == evaluatorClass) { evaluators.add(evaluator); } if(evaluator instanceof AbstractLogicalEvaluator) { getEvaluators(((AbstractLogicalEvaluator)evaluator).getLhs(), evaluatorClass, evaluators); getEvaluators(((AbstractLogicalEvaluator)evaluator).getRhs(), evaluatorClass, evaluators); } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> subEvaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : subEvaluators) { getEvaluators(pEvaluator, evaluatorClass, evaluators); } } }
LogicalExpr logicalExpr = (LogicalExpr) expr; if(logicalExpr.getOperator().equalsIgnoreCase("and")) { return new AndEvaluator(logicalExpr, selectorStep, namespaces); } else if(logicalExpr.getOperator().equalsIgnoreCase("or")) { return new OrEvaluator(logicalExpr, selectorStep, namespaces);
private <T extends XPathExpressionEvaluator> void getEvaluators(XPathExpressionEvaluator evaluator, Class<T> evaluatorClass, List<XPathExpressionEvaluator> evaluators) { if(evaluator.getClass() == evaluatorClass) { evaluators.add(evaluator); } if(evaluator instanceof AbstractLogicalEvaluator) { getEvaluators(((AbstractLogicalEvaluator)evaluator).getLhs(), evaluatorClass, evaluators); getEvaluators(((AbstractLogicalEvaluator)evaluator).getRhs(), evaluatorClass, evaluators); } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> subEvaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : subEvaluators) { getEvaluators(pEvaluator, evaluatorClass, evaluators); } } }
LogicalExpr logicalExpr = (LogicalExpr) expr; if(logicalExpr.getOperator().equalsIgnoreCase("and")) { return new AndEvaluator(logicalExpr, selectorStep, namespaces); } else if(logicalExpr.getOperator().equalsIgnoreCase("or")) { return new OrEvaluator(logicalExpr, selectorStep, namespaces);
/** * Does the supplied {@link XPathExpressionEvaluator} access the element text content. * @return True if the supplied {@link XPathExpressionEvaluator} accesses the element text content, * otherwise false. */ @SuppressWarnings("RedundantIfStatement") private boolean accessesText(XPathExpressionEvaluator evaluator) { if(evaluator instanceof AbstractEqualityEvaluator) { if(((AbstractEqualityEvaluator)evaluator).getLhs() instanceof TextValue) { return true; } else if(((AbstractEqualityEvaluator)evaluator).getRhs() instanceof TextValue) { return true; } } else if(evaluator instanceof AbstractLogicalEvaluator) { if(accessesText(((AbstractLogicalEvaluator)evaluator).getLhs())) { return true; } else if(accessesText(((AbstractLogicalEvaluator)evaluator).getRhs())) { return true; } } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> evaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : evaluators) { if(accessesText(pEvaluator)) { return true; } } } return false; }
/** * Does the supplied {@link XPathExpressionEvaluator} access the element text content. * @return True if the supplied {@link XPathExpressionEvaluator} accesses the element text content, * otherwise false. */ @SuppressWarnings("RedundantIfStatement") private boolean accessesText(XPathExpressionEvaluator evaluator) { if(evaluator instanceof AbstractEqualityEvaluator) { if(((AbstractEqualityEvaluator)evaluator).getLhs() instanceof TextValue) { return true; } else if(((AbstractEqualityEvaluator)evaluator).getRhs() instanceof TextValue) { return true; } } else if(evaluator instanceof AbstractLogicalEvaluator) { if(accessesText(((AbstractLogicalEvaluator)evaluator).getLhs())) { return true; } else if(accessesText(((AbstractLogicalEvaluator)evaluator).getRhs())) { return true; } } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> evaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : evaluators) { if(accessesText(pEvaluator)) { return true; } } } return false; }
/** * Does the supplied {@link XPathExpressionEvaluator} access the element text content. * @return True if the supplied {@link XPathExpressionEvaluator} accesses the element text content, * otherwise false. */ private boolean accessesText(XPathExpressionEvaluator evaluator) { if(evaluator instanceof AbstractEqualityEvaluator) { if(((AbstractEqualityEvaluator)evaluator).getLhs() instanceof TextValue) { return true; } else if(((AbstractEqualityEvaluator)evaluator).getRhs() instanceof TextValue) { return true; } } else if(evaluator instanceof AbstractLogicalEvaluator) { if(accessesText(((AbstractLogicalEvaluator)evaluator).getLhs())) { return true; } else if(accessesText(((AbstractLogicalEvaluator)evaluator).getRhs())) { return true; } } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> evaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : evaluators) { if(accessesText(pEvaluator)) { return true; } } } return false; }
/** * Does the supplied {@link XPathExpressionEvaluator} access the element text content. * @return True if the supplied {@link XPathExpressionEvaluator} accesses the element text content, * otherwise false. */ @SuppressWarnings("RedundantIfStatement") private boolean accessesText(XPathExpressionEvaluator evaluator) { if(evaluator instanceof AbstractEqualityEvaluator) { if(((AbstractEqualityEvaluator)evaluator).getLhs() instanceof TextValue) { return true; } else if(((AbstractEqualityEvaluator)evaluator).getRhs() instanceof TextValue) { return true; } } else if(evaluator instanceof AbstractLogicalEvaluator) { if(accessesText(((AbstractLogicalEvaluator)evaluator).getLhs())) { return true; } else if(accessesText(((AbstractLogicalEvaluator)evaluator).getRhs())) { return true; } } else if(evaluator instanceof PredicatesEvaluator) { List<XPathExpressionEvaluator> evaluators = ((PredicatesEvaluator) evaluator).getEvaluators(); for(XPathExpressionEvaluator pEvaluator : evaluators) { if(accessesText(pEvaluator)) { return true; } } } return false; }