Package org.eclipse.rdf4j.model.impl

## Class SimpleValueFactory

- java.lang.Object
- - org.eclipse.rdf4j.model.base.AbstractValueFactory
  - - org.eclipse.rdf4j.model.impl.SimpleValueFactory

- All Implemented Interfaces:
    `ValueFactory`
  Direct Known Subclasses:
    `ValueStore`

      public class SimpleValueFactory
      extends AbstractValueFactory

  Default implementation of the `ValueFactory` interface.
  Author:
    Arjohn Kampman

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `SimpleValueFactory()` | Hidden constructor to enforce singleton pattern.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BNode` | `createBNode()` | Creates a new bNode.
    `BNode` | `createBNode​(String nodeID)` | Creates a new blank node with the given node identifier.
    `protected Literal` | `createFPLiteral​(Number value, IRI datatype)` | Calls `createNumericLiteral(Number, IRI)` with the supplied value and datatype as parameters.
    `protected Literal` | `createFPLiteral​(Number value, XSD.Datatype datatype)` |
    `protected Literal` | `createIntegerLiteral​(Number value, IRI datatype)` | Calls `createNumericLiteral(Number, IRI)` with the supplied value and datatype as parameters.
    `protected Literal` | `createIntegerLiteral​(Number value, XSD.Datatype datatype)` |
    `IRI` | `createIRI​(String iri)` | Creates a new IRI from the supplied string-representation.
    `IRI` | `createIRI​(String namespace, String localName)` | Creates a new IRI from the supplied namespace and local name.
    `Literal` | `createLiteral​(boolean b)` | Creates a new xsd:boolean-typed literal representing the specified value.
    `Literal` | `createLiteral​(byte value)` | Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.BYTE` as parameters.
    `Literal` | `createLiteral​(double value)` | Calls `createFPLiteral(Number, IRI)` with the supplied value and `XSD.DOUBLE` as parameters.
    `Literal` | `createLiteral​(float value)` | Calls `createFPLiteral(Number, IRI)` with the supplied value and `XSD.FLOAT` as parameters.
    `Literal` | `createLiteral​(int value)` | Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.INT` as parameters.
    `Literal` | `createLiteral​(long value)` | Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.LONG` as parameters.
    `Literal` | `createLiteral​(short value)` | Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.SHORT` as parameters.
    `Literal` | `createLiteral​(String value)` | Creates a new literal with the supplied label.
    `Literal` | `createLiteral​(String value, String language)` | Creates a new literal with the supplied label and language attribute.
    `Literal` | `createLiteral​(String value, IRI datatype)` | Creates a new literal with the supplied label and datatype.
    `Literal` | `createLiteral​(BigDecimal bigDecimal)` | Creates a new literal representing the specified bigDecimal that is typed as an xsd:Decimal.
    `Literal` | `createLiteral​(BigInteger bigInteger)` | Creates a new literal representing the specified bigInteger that is typed as an xsd:Integer.
    `Literal` | `createLiteral​(Date date)` | Converts the supplied `Date` to a `XMLGregorianCalendar`, then calls `ValueFactory.createLiteral(XMLGregorianCalendar)`.
    `Literal` | `createLiteral​(XMLGregorianCalendar calendar)` | Calls `ValueFactory.createLiteral(String, IRI)` with the String-value of the supplied calendar and the appropriate datatype as parameters.
    `protected Literal` | `createNumericLiteral​(Number number, IRI datatype)` | Creates specific optimized subtypes of SimpleLiteral for numeric datatypes.
    `protected Literal` | `createNumericLiteral​(Number number, XSD.Datatype datatype)` |
    `Statement` | `createStatement​(Resource subject, IRI predicate, Value object)` | Creates a new statement with the supplied subject, predicate and object.
    `Statement` | `createStatement​(Resource subject, IRI predicate, Value object, Resource context)` | Creates a new statement with the supplied subject, predicate and object and associated context.
    `Triple` | `createTriple​(Resource subject, IRI predicate, Value object)` | Creates a new RDF-star triple with the supplied subject, predicate and object.
    `static SimpleValueFactory` | `getInstance()` | Provide a single shared instance of a SimpleValueFactory.
    `protected void` | `initBNodeParams()` | Generates a new bnode prefix and resets nextBNodeID to 1 .

    - ### Methods inherited from class org.eclipse.rdf4j.model.base.AbstractValueFactory

      `createLiteral, createLiteral`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleValueFactory

          protected SimpleValueFactory()

      Hidden constructor to enforce singleton pattern.

  - ### Method Detail

    - #### getInstance

          public static SimpleValueFactory getInstance()

      Provide a single shared instance of a SimpleValueFactory.
      Returns:
        a singleton instance of SimpleValueFactory.

    - #### createIRI

          public IRI createIRI​(String iri)

      Description copied from interface: `ValueFactory`
      Creates a new IRI from the supplied string-representation.
      Specified by:
        `createIRI` in interface `ValueFactory`
      Overrides:
        `createIRI` in class `AbstractValueFactory`
      Parameters:
        `iri` - A string-representation of a IRI.
      Returns:
        An object representing the IRI.

    - #### createIRI

          public IRI createIRI​(String namespace,
                               String localName)

      Description copied from interface: `ValueFactory`
      Creates a new IRI from the supplied namespace and local name. Calling this method is funtionally equivalent to calling `createIRI(namespace+localName)`, but allows the ValueFactory to reuse supplied namespace and local name strings whenever possible. Note that the values returned by `IRI.getNamespace()` and `IRI.getLocalName()` are not necessarily the same as the values that are supplied to this method.
      Specified by:
        `createIRI` in interface `ValueFactory`
      Overrides:
        `createIRI` in class `AbstractValueFactory`
      Parameters:
        `namespace` - The IRI's namespace.
        `localName` - The IRI's local name.

    - #### createBNode

          public BNode createBNode​(String nodeID)

      Description copied from interface: `ValueFactory`
      Creates a new blank node with the given node identifier.
      Specified by:
        `createBNode` in interface `ValueFactory`
      Overrides:
        `createBNode` in class `AbstractValueFactory`
      Parameters:
        `nodeID` - The blank node identifier.
      Returns:
        An object representing the blank node.

    - #### createLiteral

          public Literal createLiteral​(String value)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label. The return value of `Literal.getDatatype()` for the returned object must be `xsd:string`.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.

    - #### createLiteral

          public Literal createLiteral​(String value,
                                       String language)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label and language attribute. The return value of `Literal.getDatatype()` for the returned object must be `rdf:langString`.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.
        `language` - The literal's language attribute, must not be null.

    - #### createLiteral

          public Literal createLiteral​(boolean b)

      Description copied from interface: `ValueFactory`
      Creates a new xsd:boolean-typed literal representing the specified value.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `b` - The value for the literal.
      Returns:
        An xsd:boolean-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(String value,
                                       IRI datatype)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label and datatype.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.
        `datatype` - The literal's datatype. If it is null, the datatype `xsd:string` will be assigned to this literal.

    - #### createStatement

          public Statement createStatement​(Resource subject,
                                           IRI predicate,
                                           Value object)

      Description copied from interface: `ValueFactory`
      Creates a new statement with the supplied subject, predicate and object.
      Specified by:
        `createStatement` in interface `ValueFactory`
      Overrides:
        `createStatement` in class `AbstractValueFactory`
      Parameters:
        `subject` - The statement's subject.
        `predicate` - The statement's predicate.
        `object` - The statement's object.
      Returns:
        The created statement.

    - #### createStatement

          public Statement createStatement​(Resource subject,
                                           IRI predicate,
                                           Value object,
                                           Resource context)

      Description copied from interface: `ValueFactory`
      Creates a new statement with the supplied subject, predicate and object and associated context.
      Specified by:
        `createStatement` in interface `ValueFactory`
      Overrides:
        `createStatement` in class `AbstractValueFactory`
      Parameters:
        `subject` - The statement's subject.
        `predicate` - The statement's predicate.
        `object` - The statement's object.
        `context` - The statement's context.
      Returns:
        The created statement.

    - #### createTriple

          public Triple createTriple​(Resource subject,
                                     IRI predicate,
                                     Value object)

      Description copied from interface: `ValueFactory`
      Creates a new RDF-star triple with the supplied subject, predicate and object.
      Specified by:
        `createTriple` in interface `ValueFactory`
      Overrides:
        `createTriple` in class `AbstractValueFactory`
      Parameters:
        `subject` - The statement's subject.
        `predicate` - The statement's predicate.
        `object` - The statement's object.
      Returns:
        The created triple.

    - #### initBNodeParams

          protected void initBNodeParams()

      Generates a new bnode prefix and resets nextBNodeID to 1 .

    - #### createBNode

          public BNode createBNode()

      Description copied from interface: `ValueFactory`
      Creates a new bNode.
      Specified by:
        `createBNode` in interface `ValueFactory`
      Overrides:
        `createBNode` in class `AbstractValueFactory`
      Returns:
        An object representing the bNode.

    - #### createLiteral

          public Literal createLiteral​(byte value)

      Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.BYTE` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:byte-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(short value)

      Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.SHORT` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:short-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(int value)

      Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.INT` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:int-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(long value)

      Calls `createIntegerLiteral(Number, IRI)` with the supplied value and `XSD.LONG` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:long-typed literal for the specified value.

    - #### createIntegerLiteral

          protected Literal createIntegerLiteral​(Number value,
                                                 IRI datatype)

      Calls `createNumericLiteral(Number, IRI)` with the supplied value and datatype as parameters.

    - #### createIntegerLiteral

          protected Literal createIntegerLiteral​(Number value,
                                                 XSD.Datatype datatype)

    - #### createLiteral

          public Literal createLiteral​(float value)

      Calls `createFPLiteral(Number, IRI)` with the supplied value and `XSD.FLOAT` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:float-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(double value)

      Calls `createFPLiteral(Number, IRI)` with the supplied value and `XSD.DOUBLE` as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `value` - The value for the literal.
      Returns:
        An xsd:double-typed literal for the specified value.

    - #### createLiteral

          public Literal createLiteral​(BigInteger bigInteger)

      Description copied from interface: `ValueFactory`
      Creates a new literal representing the specified bigInteger that is typed as an xsd:Integer.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`

    - #### createLiteral

          public Literal createLiteral​(BigDecimal bigDecimal)

      Description copied from interface: `ValueFactory`
      Creates a new literal representing the specified bigDecimal that is typed as an xsd:Decimal.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`

    - #### createFPLiteral

          protected Literal createFPLiteral​(Number value,
                                            IRI datatype)

      Calls `createNumericLiteral(Number, IRI)` with the supplied value and datatype as parameters.

    - #### createFPLiteral

          protected Literal createFPLiteral​(Number value,
                                            XSD.Datatype datatype)

    - #### createNumericLiteral

          protected Literal createNumericLiteral​(Number number,
                                                 IRI datatype)

      Creates specific optimized subtypes of SimpleLiteral for numeric datatypes.

    - #### createNumericLiteral

          protected Literal createNumericLiteral​(Number number,
                                                 XSD.Datatype datatype)

    - #### createLiteral

          public Literal createLiteral​(XMLGregorianCalendar calendar)

      Calls `ValueFactory.createLiteral(String, IRI)` with the String-value of the supplied calendar and the appropriate datatype as parameters.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`
      Parameters:
        `calendar` - The value for the literal.
      Returns:
        A typed literal for the specified calendar.
      See Also:
        `XMLGregorianCalendar.toXMLFormat()`, `XMLGregorianCalendar.getXMLSchemaType()`, `XMLDatatypeUtil.qnameToURI(javax.xml.namespace.QName)`

    - #### createLiteral

          public Literal createLiteral​(Date date)

      Converts the supplied `Date` to a `XMLGregorianCalendar`, then calls `ValueFactory.createLiteral(XMLGregorianCalendar)`.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `AbstractValueFactory`