Class NodeValue

All Implemented Interfaces:
Direct Known Subclasses:
NodeValueBoolean, NodeValueDateTime, NodeValueDecimal, NodeValueDouble, NodeValueDuration, NodeValueFloat, NodeValueInteger, NodeValueLang, NodeValueNode, NodeValueSortKey, NodeValueString

public abstract class NodeValue extends ExprNode
  • Field Details

    • VerboseWarnings

      public static boolean VerboseWarnings
    • VerboseExceptions

      public static boolean VerboseExceptions
    • TRUE

      public static final NodeValue TRUE
    • FALSE

      public static final NodeValue FALSE
    • nvZERO

      public static final NodeValue nvZERO
    • nvNegZERO

      public static final NodeValue nvNegZERO
    • nvONE

      public static final NodeValue nvONE
    • nvTEN

      public static final NodeValue nvTEN
    • nvDecimalZERO

      public static final NodeValue nvDecimalZERO
    • nvDecimalONE

      public static final NodeValue nvDecimalONE
    • nvNaN

      public static final NodeValue nvNaN
    • nvINF

      public static final NodeValue nvINF
    • nvNegINF

      public static final NodeValue nvNegINF
    • nvEmptyString

      public static final NodeValue nvEmptyString
    • xsdNamespace

      public static final String xsdNamespace
      See Also:
    • xmlDatatypeFactory

      public static DatatypeFactory xmlDatatypeFactory
  • Method Details

    • parse

      public static NodeValue parse(String string)
      Convenience operation - parse a string to produce a NodeValue - common namespaces like xsd: are built-in
    • makeInteger

      public static NodeValue makeInteger(long i)
    • makeInteger

      public static NodeValue makeInteger(BigInteger i)
    • makeInteger

      public static NodeValue makeInteger(String lexicalForm)
    • makeFloat

      public static NodeValue makeFloat(float f)
    • makeDouble

      public static NodeValue makeDouble(double d)
    • makeString

      public static NodeValue makeString(String s)
    • makeSortKey

      public static NodeValue makeSortKey(String s, String collation)
    • makeLangString

      public static NodeValue makeLangString(String s, String lang)
    • makeDecimal

      public static NodeValue makeDecimal(BigDecimal d)
    • makeDecimal

      public static NodeValue makeDecimal(long i)
    • makeDecimal

      public static NodeValue makeDecimal(double d)
    • makeDecimal

      public static NodeValue makeDecimal(String lexicalForm)
    • makeDateTime

      public static NodeValue makeDateTime(String lexicalForm)
    • makeDate

      public static NodeValue makeDate(String lexicalForm)
    • makeDateTime

      public static NodeValue makeDateTime(Calendar cal)
    • makeDateTime

      public static NodeValue makeDateTime(XMLGregorianCalendar cal)
    • makeDate

      public static NodeValue makeDate(Calendar cal)
    • makeDate

      public static NodeValue makeDate(XMLGregorianCalendar cal)
    • makeDuration

      public static NodeValue makeDuration(String lexicalForm)
    • makeDuration

      public static NodeValue makeDuration(Duration duration)
    • makeNodeDuration

      public static NodeValue makeNodeDuration(Duration duration, org.apache.jena.graph.Node node)
    • makeBoolean

      public static NodeValue makeBoolean(boolean b)
    • booleanReturn

      public static NodeValue booleanReturn(boolean b)
    • makeNode

      public static NodeValue makeNode(org.apache.jena.graph.Node n)
    • makeNode

      public static NodeValue makeNode(String lexicalForm, org.apache.jena.datatypes.RDFDatatype dtype)
    • makeNode

      public static NodeValue makeNode(String lexicalForm, String langTag, org.apache.jena.graph.Node datatype)
    • makeNode

      public static NodeValue makeNode(String lexicalForm, String langTag, String datatype)
    • makeNodeBoolean

      public static NodeValue makeNodeBoolean(boolean b)
    • makeNodeBoolean

      public static NodeValue makeNodeBoolean(String lexicalForm)
    • makeNodeInteger

      public static NodeValue makeNodeInteger(long v)
    • makeNodeInteger

      public static NodeValue makeNodeInteger(String lexicalForm)
    • makeNodeFloat

      public static NodeValue makeNodeFloat(float f)
    • makeNodeFloat

      public static NodeValue makeNodeFloat(String lexicalForm)
    • makeNodeDouble

      public static NodeValue makeNodeDouble(double v)
    • makeNodeDouble

      public static NodeValue makeNodeDouble(String lexicalForm)
    • makeNodeDecimal

      public static NodeValue makeNodeDecimal(BigDecimal decimal)
    • makeNodeDecimal

      public static NodeValue makeNodeDecimal(String lexicalForm)
    • makeNodeString

      public static NodeValue makeNodeString(String string)
    • makeNodeDateTime

      public static NodeValue makeNodeDateTime(Calendar date)
    • makeNodeDateTime

      public static NodeValue makeNodeDateTime(String lexicalForm)
    • makeNodeDate

      public static NodeValue makeNodeDate(Calendar date)
    • makeNodeDate

      public static NodeValue makeNodeDate(String lexicalForm)
    • eval

      public NodeValue eval(Binding binding, FunctionEnv env)
      Description copied from interface: Expr
      Evaluate this expression against the binding
      Specified by:
      eval in interface Expr
      Specified by:
      eval in class ExprNode
    • copySubstitute

      public Expr copySubstitute(Binding binding)
      Description copied from interface: Expr
      Deep copy with substitution
      Specified by:
      copySubstitute in interface Expr
      Specified by:
      copySubstitute in class ExprNode
    • applyNodeTransform

      public Expr applyNodeTransform(NodeTransform transform)
      Description copied from interface: Expr
      Rewrite, applying a node->node transformation
      Specified by:
      applyNodeTransform in interface Expr
      Specified by:
      applyNodeTransform in class ExprNode
    • evalNode

      public org.apache.jena.graph.Node evalNode(Binding binding, ExecutionContext execCxt)
    • isConstant

      public boolean isConstant()
      Description copied from interface: Expr
      Answer whether this is a constant expression - false includes "don't know" No constant folding so "false" from an expression that evaluates to a constant
      Specified by:
      isConstant in interface Expr
      isConstant in class ExprNode
    • getConstant

      public NodeValue getConstant()
      Description copied from interface: Expr
      NodeValue constant (returns null if not a constant)
      Specified by:
      getConstant in interface Expr
      getConstant in class ExprNode
    • isIRI

      public boolean isIRI()
    • isBlank

      public boolean isBlank()
    • isTripleTerm

      public boolean isTripleTerm()
    • getValueSpace

      public ValueSpace getValueSpace()
    • classifyValueOp

      public static ValueSpace classifyValueOp(NodeValue nv1, NodeValue nv2)
    • sameValueAs

      public static boolean sameValueAs(NodeValue nv1, NodeValue nv2)
      Return true if the two NodeValues are known to be the same value return false if known to be different values, throw ExprEvalException otherwise
    • notSameValueAs

      public static boolean notSameValueAs(org.apache.jena.graph.Node n1, org.apache.jena.graph.Node n2)
      Return true if the two Nodes are known to be different, return false if the two Nodes are known to be the same, else throw ExprEvalException
    • notSameValueAs

      public static boolean notSameValueAs(NodeValue nv1, NodeValue nv2)
      Return true if the two NodeValues are known to be different, return false if the two NodeValues are known to be the same, else throw ExprEvalException
    • compare

      public static int compare(NodeValue nv1, NodeValue nv2)
      Compare by value (and only value) if possible. Supports <, <=, >, >= but not = nor != (which are sameValueAs and notSameValueAs)
      nv1 -
      nv2 -
      Expr.CMP_LESS(-1), Expr.CMP_EQUAL(0) or Expr.CMP_GREATER(+1)
      ExprNotComparableException - for Expr.CMP_INDETERMINATE(+2)
    • compareAlways

      public static int compareAlways(NodeValue nv1, NodeValue nv2)
      Compare by value if possible else compare by kind/type/lexical form Only use when you want an ordering regardless of form of NodeValue, for example in ORDER BY
      nv1 -
      nv2 -
      negative, 0, or positive for less than, equal, greater than.
    • toNode

      public static org.apache.jena.graph.Node toNode(NodeValue nv)
    • asNode

      public final org.apache.jena.graph.Node asNode()
    • getNode

      public org.apache.jena.graph.Node getNode()
      getNode - return the node form - may be null (use .asNode() to force to a node)
    • getDatatypeURI

      public String getDatatypeURI()
    • hasNode

      public boolean hasNode()
    • isBoolean

      public boolean isBoolean()
    • isString

      public boolean isString()
    • isLangString

      public boolean isLangString()
    • isSortKey

      public boolean isSortKey()
    • isNumber

      public boolean isNumber()
    • isInteger

      public boolean isInteger()
    • isDecimal

      public boolean isDecimal()
    • isFloat

      public boolean isFloat()
    • isDouble

      public boolean isDouble()
    • hasDateTime

      public boolean hasDateTime()
    • isDateTime

      public boolean isDateTime()
    • isDate

      public boolean isDate()
    • isLiteral

      public boolean isLiteral()
    • isTime

      public boolean isTime()
    • isDuration

      public boolean isDuration()
    • isYearMonthDuration

      public boolean isYearMonthDuration()
    • isDayTimeDuration

      public boolean isDayTimeDuration()
    • isGYear

      public boolean isGYear()
    • isGYearMonth

      public boolean isGYearMonth()
    • isGMonth

      public boolean isGMonth()
    • isGMonthDay

      public boolean isGMonthDay()
    • isGDay

      public boolean isGDay()
    • getBoolean

      public boolean getBoolean()
    • getString

      public String getString()
    • getLang

      public String getLang()
    • getSortKey

      public NodeValueSortKey getSortKey()
    • getInteger

      public BigInteger getInteger()
    • getDecimal

      public BigDecimal getDecimal()
    • getFloat

      public float getFloat()
    • getDouble

      public double getDouble()
    • getDateTime

      public XMLGregorianCalendar getDateTime()
    • getDuration

      public Duration getDuration()
    • raise

      public static void raise(ExprException ex)
    • visit

      public void visit(ExprVisitor visitor)
    • asUnquotedString

      public final String asUnquotedString()
    • asQuotedString

      public final String asQuotedString()
    • asQuotedString

      public final String asQuotedString(SerializationContext context)
    • asString

      public String asString()
    • hashCode

      public int hashCode()
      Description copied from interface: Expr
      Expr are used in both syntax and algebra. There is no syntax to algebra translation step because the parser uses operator precedence to build the right evaluation structure directly.

      The exceptions to this are the NOT EXISTS and EXISTS expressions which involve a query pattern. As a result there are different ways in syntax to produce the same algebra form.

      Two Expr are considered equal if they are equal as algebra expressions. hashCode and equals must implement that.

      There is also equalsBySyntax. Because two different syntax forms can yield the same algebra, but two different algebra forms must be different syntax, equalsBySyntax implies equals (by algebra).

      Hence, different hashCode => not equalsBySyntax.

      Specified by:
      hashCode in interface Expr
      Specified by:
      hashCode in class ExprNode
    • equals

      public boolean equals(Expr other, boolean bySyntax)
      Description copied from interface: Expr
      General equality operation - consider this to be 'protected'
      Specified by:
      equals in interface Expr
      Specified by:
      equals in class ExprNode
    • visit

      public abstract void visit(NodeValueVisitor visitor)
    • apply

      public Expr apply(ExprTransform transform)
    • toString

      public String toString()
      toString in class ExprNode