Package javax.jcr

Interface Value

All Known Subinterfaces:
JackrabbitValue
All Known Implementing Classes:
BaseValue, BinaryValue, BooleanValue, DateValue, DecimalValue, DoubleValue, ErrorValue, LongValue, NameValue, PathValue, QValueValue, ReferenceValue, StringValue, URIValue, WeakReferenceValue

public interface Value
A generic holder for the value of a property. A Value object can be used without knowing the actual property type (STRING, DOUBLE, BINARY etc.).

The Binary interface and its related methods in Property, Value and ValueFactory replace the deprecated Value.getStream and Property.getStream methods from JCR 1.0. However, though getStream has been deprecated, for reasons of backward compatibility its behavior must still conform to the following rules:

  • A Value object can be read using type-specific get methods. These methods are divided into two groups:
    • The non-stream get methods getString(), getBinary(), getDate(), getDecimal(), getLong(), getDouble() and getBoolean().
    • getStream().
  • Once a Value object has been read once using getStream(), all subsequent calls to getStream() will return the same Stream object. This may mean, for example, that the stream returned is fully or partially consumed. In order to get a fresh stream the Value object must be reacquired via Property.getValue() or Property.getValues().
  • Once a Value object has been read once using getStream(), any subsequent call to any of the non-stream get methods will throw an IllegalStateException. In order to successfully invoke a non-stream get method, the Value must be reacquired via Property.getValue() or Property.getValues().
  • Once a Value object has been read once using a non-stream get method, any subsequent call to getStream() will throw an IllegalStateException. In order to successfully invoke getStream(), the Value must be reacquired via Property.getValue() or Property.getValues().

Two Value instances, v1 and v2, are considered equal if and only if:

  • v1.getType() == v2.getType(), and,
  • v1.getString().equals(v2.getString())
Actually comparing two Value instances by converting them to string form may not be practical in some cases (for example, if the values are very large binaries). Consequently, the above is intended as a normative definition of Value equality but not as a procedural test of equality. It is assumed that implementations will have efficient means of determining equality that conform with the above definition.

An implementation is only required to support equality comparisons on Value instances that were acquired from the same Session and whose contents have not been read. The equality comparison must not change the state of the Value instances even though the getString() method in the above definition implies a state change.

  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a Binary representation of this value.
    boolean
    Returns a Boolean representation of this value.
    Returns a Calendar representation of this value.
    Returns a BigDecimal representation of this value.
    double
    Returns a double representation of this value.
    long
    Returns a long representation of this value.
    Deprecated.
    As of JCR 2.0, getBinary() should be used instead.
    Returns a String representation of this value.
    int
    Returns the type of this Value.
  • Method Details

    • getString

      Returns a String representation of this value.
      Returns:
      A String representation of the value of this property.
      Throws:
      ValueFormatException - if conversion to a String is not possible.
      IllegalStateException - if getStream has previously been called on this Value instance. In this case a new Value instance must be acquired in order to successfully call this method.
      RepositoryException - if another error occurs.
    • getStream

      InputStream getStream() throws RepositoryException
      Deprecated.
      As of JCR 2.0, getBinary() should be used instead.
      Returns an InputStream representation of this value. Uses the standard conversion to binary (see JCR specification).

      It is the responsibility of the caller to close the returned InputStream.

      Returns:
      An InputStream representation of this value.
      Throws:
      RepositoryException - if an error occurs.
    • getBinary

      Binary getBinary() throws RepositoryException
      Returns a Binary representation of this value. The Binary object in turn provides methods to access the binary data itself. Uses the standard conversion to binary (see JCR specification).
      Returns:
      A Binary representation of this value.
      Throws:
      RepositoryException - if an error occurs.
      Since:
      JCR 2.0
    • getLong

      Returns a long representation of this value.
      Returns:
      A long representation of this value.
      Throws:
      ValueFormatException - if conversion to an long is not possible.
      RepositoryException - if another error occurs.
    • getDouble

      double getDouble() throws ValueFormatException, RepositoryException
      Returns a double representation of this value.
      Returns:
      A double representation of this value.
      Throws:
      ValueFormatException - if conversion to a double is not possible.
      RepositoryException - if another error occurs.
    • getDecimal

      Returns a BigDecimal representation of this value.
      Returns:
      A BigDecimal representation of this value.
      Throws:
      ValueFormatException - if conversion to a BigDecimal is not possible.
      RepositoryException - if another error occurs.
      Since:
      JCR 2.0
    • getDate

      Returns a Calendar representation of this value.

      The object returned is a copy of the stored value, so changes to it are not reflected in internal storage.

      Returns:
      A Calendar representation of this value.
      Throws:
      ValueFormatException - if conversion to a Calendar is not possible.
      RepositoryException - if another error occurs.
    • getBoolean

      boolean getBoolean() throws ValueFormatException, RepositoryException
      Returns a Boolean representation of this value.
      Returns:
      A Boolean representation of this value.
      Throws:
      ValueFormatException - if conversion to a Boolean is not possible.
      RepositoryException - if another error occurs.
    • getType

      int getType()
      Returns the type of this Value. One of:
      • PropertyType.STRING
      • PropertyType.DATE
      • PropertyType.BINARY
      • PropertyType.DOUBLE
      • PropertyType.DECIMAL
      • PropertyType.LONG
      • PropertyType.BOOLEAN
      • PropertyType.NAME
      • PropertyType.PATH
      • PropertyType.REFERENCE
      • PropertyType.WEAKREFERENCE
      • PropertyType.URI
      See PropertyType.

      The type returned is that which was set at property creation.

      Returns:
      an int