Interface Literal

All Superinterfaces:
Serializable, Value
All Known Implementing Classes:
AbstractLiteral, BooleanLiteral, BooleanMemLiteral, CalendarLiteral, CalendarMemLiteral, DecimalLiteral, DecimalMemLiteral, IntegerLiteral, IntegerMemLiteral, LmdbLiteral, MemLiteral, NativeLiteral, NumericLiteral, NumericMemLiteral, SimpleLiteral

public interface Literal extends Value
An RDF-1.1 literal consisting of a label (the lexical value), a datatype, and optionally a language tag.

Value accessor methods (for instance, booleanValue()) map literal lexical values conforming to the syntax of a supported XML Schema 1.1 datatype to a corresponding Java object.

Author:
Arjohn Kampman
See Also:
  • Method Details

    • isLiteral

      default boolean isLiteral()
      Description copied from interface: Value
      Check if the object is an instance of the given type. Typically 2x than using instanceof. For implementers: This default implementation is overridden in the repsective sub-interface.
      Specified by:
      isLiteral in interface Value
      Returns:
      true if instance of Literal
    • getLabel

      String getLabel()
      Gets the label (the lexical value) of this literal.
      Returns:
      The literal's label.
    • getLanguage

      Optional<String> getLanguage()
      Gets the language tag for this literal, normalized to lower case.
      Returns:
      The language tag for this literal, or Optional.empty() if it doesn't have one.
    • getDatatype

      IRI getDatatype()
      Gets the datatype for this literal.

      If getLanguage() returns a non-empty value than this must return rdf:langString. If no datatype was assigned to this literal by the creator, then this method must return xsd:string.

      Returns:
      The datatype for this literal.
    • booleanValue

      boolean booleanValue()
      Returns the boolean value of this literal.
      Returns:
      The boolean value of the literal.
      Throws:
      IllegalArgumentException - If the literal's label cannot be represented by a boolean .
    • byteValue

      byte byteValue()
      Returns the byte value of this literal.
      Returns:
      The byte value of the literal.
      Throws:
      NumberFormatException - If the literal cannot be represented by a byte.
    • shortValue

      short shortValue()
      Returns the short value of this literal.
      Returns:
      The short value of the literal.
      Throws:
      NumberFormatException - If the literal's label cannot be represented by a short.
    • intValue

      int intValue()
      Returns the int value of this literal.
      Returns:
      The int value of the literal.
      Throws:
      NumberFormatException - If the literal's label cannot be represented by a int.
    • longValue

      long longValue()
      Returns the long value of this literal.
      Returns:
      The long value of the literal.
      Throws:
      NumberFormatException - If the literal's label cannot be represented by to a long .
    • integerValue

      BigInteger integerValue()
      Returns the integer value of this literal.
      Returns:
      The integer value of the literal.
      Throws:
      NumberFormatException - If the literal's label is not a valid integer.
    • decimalValue

      BigDecimal decimalValue()
      Returns the decimal value of this literal.
      Returns:
      The decimal value of the literal.
      Throws:
      NumberFormatException - If the literal's label is not a valid decimal.
    • floatValue

      float floatValue()
      Returns the float value of this literal.
      Returns:
      The float value of the literal.
      Throws:
      NumberFormatException - If the literal's label cannot be represented by a float.
    • doubleValue

      double doubleValue()
      Returns the double value of this literal.
      Returns:
      The double value of the literal.
      Throws:
      NumberFormatException - If the literal's label cannot be represented by a double.
    • temporalAccessorValue

      default TemporalAccessor temporalAccessorValue() throws DateTimeException
      Retrieves the temporal accessor value of this literal.

      A temporal accessor representation can be given for literals whose label conforms to the syntax of the following XML Schema 1.1 date/time datatypes:

      Temporal accessor representations may be converted to specific java.time values like OffsetDateTime using target static factory methods, for instance OffsetDateTime.from(literal.temporalAccessorValue()).

      Note however that java.time doesn't include dedicated classes for some legal XML Schema date/time values, like offset dates (for instance, 2020-11-16+01:00) and xsd:gDay (for instance, ---16).

      Returns:
      the temporal accessor value of this literal
      Throws:
      DateTimeException - if this literal cannot be represented by a TemporalAccessor value
      Since:
      3.5.0
      See Also:
    • temporalAmountValue

      default TemporalAmount temporalAmountValue() throws DateTimeException
      Retrieves the temporal amount value of this literal.

      A temporal amount representation can be given for literals whose label conforms to the syntax of the XML Schema 2 xsd:duration datatype.

      The adoption of the XML Schema 2 definition is a known deviation from the RDF 1.1 standard; well-formedness rules are relaxed to consider all duration components as optional and freely mixable.

      Temporal amount representations may be converted to specific java.time values like Duration using target static factory methods, for instance Duration.from(literal.temporalAmountValue()).

      Note however that java.time doesn't include dedicated classes for legal XML Schema duration values including both date and time components (for instance, P1YT23H).

      Returns:
      the temporal amount value of this literal
      Throws:
      DateTimeException - if this literal cannot be represented by a TemporalAmount value
      Since:
      3.5.0
      See Also:
    • calendarValue

      XMLGregorianCalendar calendarValue()
      Returns the XMLGregorianCalendar value of this literal. A calendar representation can be given for literals whose label conforms to the syntax of the following XML Schema datatypes: dateTime, time, date, gYearMonth, gMonthDay, gYear, gMonth or gDay.
      Returns:
      The calendar value of the literal.
      Throws:
      IllegalArgumentException - If the literal cannot be represented by a XMLGregorianCalendar.
    • getCoreDatatype

      CoreDatatype getCoreDatatype()
      CoreDatatype is an interface for natively supported datatypes in RDF4J. This includes, among others, the XML Schema datatypes and rdf:langString. CoreDatatypes are implemented as enums and more performant and convenient to work with than IRI-based datatypes. The constant
      invalid @link
      {@link CoreDatatype#NONE)
      } is used to represent a datatype that is not one of the supported core datatypes.
      Returns:
      The CoreDatatype or
      invalid @link
      {@link CoreDatatype#NONE)
      } if the datatype matches none of the core datatypes. This method will not return null.
    • equals

      boolean equals(Object other)
      Compares this literal to another object.
      Overrides:
      equals in class Object
      Parameters:
      other - the object to compare this literal to
      Returns:
      true, if the other object is an instance of Literal and if their labels, language tags and datatypes are equal
    • hashCode

      int hashCode()
      Computes the hash code of this literal.
      Overrides:
      hashCode in class Object
      Returns:
      a hash code for this literal computed as getLabel().hashCode()