Class XPathFunction

java.lang.Object
ca.uqac.lif.cep.functions.Function
ca.uqac.lif.cep.xml.XPathFunction
All Implemented Interfaces:
ca.uqac.lif.cep.Duplicable, ca.uqac.lif.cep.functions.DuplicableFunction
Direct Known Subclasses:
XPathFunctionGet

public class XPathFunction extends ca.uqac.lif.cep.functions.Function
Function that converts a string into an XML element
  • Field Details

    • m_expression

      protected final ca.uqac.lif.xml.XPathExpression m_expression
      The XPath expression this function evaluates
  • Constructor Details

    • XPathFunction

      public XPathFunction(String exp)
    • XPathFunction

      public XPathFunction(ca.uqac.lif.xml.XPathExpression exp)
      Creates a new XPath function
      Parameters:
      exp - The XPath expression to evaluate
  • Method Details

    • parseExpression

      public static ca.uqac.lif.xml.XPathExpression parseExpression(String s)
      Parses an XPath expression from a string
      Parameters:
      s - The string to parse
      Returns:
      An expression, or null if the parsing failed
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • duplicate

      public XPathFunction duplicate(boolean with_state)
      Specified by:
      duplicate in interface ca.uqac.lif.cep.Duplicable
      Specified by:
      duplicate in class ca.uqac.lif.cep.functions.Function
    • evaluatePlaceholders

      protected static ca.uqac.lif.xml.XPathExpression evaluatePlaceholders(ca.uqac.lif.xml.XPathExpression expression, ca.uqac.lif.cep.Context context)
      Replaces all occurrences of placeholders in an XPath expression by concrete values fetched from some context. Placeholders are currently only supported in binary predicates, and are identified by a "$" symbol followed by some name
      Parameters:
      expression - The original expression
      context - The context
      Returns:
      The new expression where placeholders have been replaced
    • evaluate

      public void evaluate(Object[] inputs, Object[] outputs, ca.uqac.lif.cep.Context context)
      Specified by:
      evaluate in class ca.uqac.lif.cep.functions.Function
    • evaluate

      public void evaluate(Object[] inputs, Object[] outputs)
      Overrides:
      evaluate in class ca.uqac.lif.cep.functions.Function
    • getValue

      public Collection<ca.uqac.lif.xml.XmlElement> getValue(ca.uqac.lif.xml.XmlElement x)
    • getInputArity

      public int getInputArity()
      Specified by:
      getInputArity in class ca.uqac.lif.cep.functions.Function
    • getOutputArity

      public int getOutputArity()
      Specified by:
      getOutputArity in class ca.uqac.lif.cep.functions.Function
    • getInputTypesFor

      public void getInputTypesFor(Set<Class<?>> classes, int index)
      Specified by:
      getInputTypesFor in class ca.uqac.lif.cep.functions.Function
    • getOutputTypeFor

      public Class<?> getOutputTypeFor(int index)
      Specified by:
      getOutputTypeFor in class ca.uqac.lif.cep.functions.Function
    • postProcess

      protected Object postProcess(Collection<ca.uqac.lif.xml.XmlElement> col)