public XPathExpressionEvaluator build() throws SAXPathException { PredicatesEvaluator evaluator = new PredicatesEvaluator(); if (!(step instanceof NameStep)) { throw new SAXPathException("Unsupported step '" + step.getText() + "'."); } addEvaluators(step, evaluator); // Add the evaluators for the attribute step... if(attributeStep != null) { addEvaluators(attributeStep, evaluator); } return evaluator; }
@SuppressWarnings("unchecked") private void addEvaluators(Step step, PredicatesEvaluator evaluator) throws SAXPathException { List<Predicate> predicates = step.getPredicates(); for (Predicate predicate : predicates) { XPathExpressionEvaluator predicateEvaluator = XPathExpressionEvaluator.getInstance(predicate.getExpr(), selectorStep, namespaces); evaluator.addEvaluator(predicateEvaluator); } }
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); } } }
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); } } }
@SuppressWarnings("unchecked") private void addEvaluators(Step step, PredicatesEvaluator evaluator) throws SAXPathException { List<Predicate> predicates = step.getPredicates(); for (Predicate predicate : predicates) { XPathExpressionEvaluator predicateEvaluator = XPathExpressionEvaluator.getInstance(predicate.getExpr(), selectorStep, namespaces); evaluator.addEvaluator(predicateEvaluator); } }
public XPathExpressionEvaluator build() throws SAXPathException { PredicatesEvaluator evaluator = new PredicatesEvaluator(); if (!(step instanceof NameStep)) { throw new SAXPathException("Unsupported step '" + step.getText() + "'."); } addEvaluators(step, evaluator); // Add the evaluators for the attribute step... if(attributeStep != null) { addEvaluators(attributeStep, evaluator); } return evaluator; }
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); } } }
@SuppressWarnings("unchecked") private void addEvaluators(Step step, PredicatesEvaluator evaluator) throws SAXPathException { List<Predicate> predicates = step.getPredicates(); for (Predicate predicate : predicates) { XPathExpressionEvaluator predicateEvaluator = XPathExpressionEvaluator.getInstance(predicate.getExpr(), selectorStep, namespaces); evaluator.addEvaluator(predicateEvaluator); } }
public XPathExpressionEvaluator build() throws SAXPathException, NotFoundException, CannotCompileException, InstantiationException, IllegalAccessException { PredicatesEvaluator evaluator = new PredicatesEvaluator(); if (!(step instanceof NameStep)) { throw new SAXPathException("Unsupported step '" + step.getText() + "'."); } addEvaluators(step, evaluator); // Add the evaluators for the attribute step... if(attributeStep != null) { addEvaluators(attributeStep, evaluator); } return evaluator; }
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); } } }
private void addEvaluators(Step step, PredicatesEvaluator evaluator) throws SAXPathException { List<Predicate> predicates = step.getPredicates(); for (Predicate predicate : predicates) { XPathExpressionEvaluator predicateEvaluator = XPathExpressionEvaluator.getInstance(predicate.getExpr(), selectorStep, namespaces); evaluator.addEvaluator(predicateEvaluator); } }
public XPathExpressionEvaluator build() throws SAXPathException { PredicatesEvaluator evaluator = new PredicatesEvaluator(); if (!(step instanceof NameStep)) { throw new SAXPathException("Unsupported step '" + step.getText() + "'."); } addEvaluators(step, evaluator); // Add the evaluators for the attribute step... if(attributeStep != null) { addEvaluators(attributeStep, evaluator); } return evaluator; }
/** * 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; }
/** * 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; }