Class AbstractNodeExpression

java.lang.Object
org.topbraid.shacl.expr.AbstractNodeExpression
All Implemented Interfaces:
NodeExpression
Direct Known Subclasses:
ComplexNodeExpression, ConstantTermExpression, FocusNodeExpression

public abstract class AbstractNodeExpression extends Object implements NodeExpression
  • Constructor Details

    • AbstractNodeExpression

      protected AbstractNodeExpression(org.apache.jena.rdf.model.RDFNode expr)
  • Method Details

    • evalReverse

      public org.apache.jena.util.iterator.ExtendedIterator<org.apache.jena.rdf.model.RDFNode> evalReverse(org.apache.jena.rdf.model.RDFNode valueNode, NodeExpressionContext context)
      Description copied from interface: NodeExpression
      Produces an iterator of focus nodes for a given value node. This operation can only be called for node expressions where isReversible returns true and may throw an IllegalStateException otherwise.
      Specified by:
      evalReverse in interface NodeExpression
      Parameters:
      valueNode - the value node
      context - the context
      Returns:
      an iterator (never null)
    • getInputExpressions

      public List<NodeExpression> getInputExpressions()
      Specified by:
      getInputExpressions in interface NodeExpression
    • getOutputShape

      public org.apache.jena.rdf.model.Resource getOutputShape(org.apache.jena.rdf.model.Resource contextShape)
      Description copied from interface: NodeExpression
      Gets the shape of the output data (if known), based on a context shape. For example, for a path expression it would try to infer the output shape from the sh:class or sh:node of the property (path).
      Specified by:
      getOutputShape in interface NodeExpression
      Parameters:
      contextShape - the shape where the evaluation would start, e.g. the node shape of the sh:values statement
      Returns:
      an output shape or null if unknown
    • getRDFNode

      public org.apache.jena.rdf.model.RDFNode getRDFNode()
      Description copied from interface: NodeExpression
      Gets the RDF node that was used to construct the expression, in the SHACL node expressions syntax.
      Specified by:
      getRDFNode in interface NodeExpression
      Returns:
      the RDF node
    • isReversible

      public boolean isReversible(NodeExpressionContext context)
      Description copied from interface: NodeExpression
      Checks if this expression could be evaluated in the reverse direction, with a value given and then finding all focus nodes. The function evalReverse can then be called. NOTE THAT THIS IS CURRENTLY BARELY IMPLEMENTED.
      Specified by:
      isReversible in interface NodeExpression
      Parameters:
      context - the context
      Returns:
      true if reversible
    • toString

      public String toString()
      Overrides:
      toString in class Object