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 () or (). 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 () or (). 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 () or ().

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.

Constructors

Methods

  • 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 Binary

    A Binary representation of this value.

    Throws

    RepositoryException if an error occurs.

    Since

    JCR 2.0

  • Returns a Boolean representation of this value.

    Returns boolean

    A Boolean representation of this value.

    Throws

    ValueFormatException if conversion to a Boolean is not possible.

    Throws

    RepositoryException if another error occurs.

  • Returns a double representation of this value.

    Returns number

    A double representation of this value.

    Throws

    ValueFormatException if conversion to a double is not possible.

    Throws

    RepositoryException if another error occurs.

  • Returns a long representation of this value.

    Returns number

    A long representation of this value.

    Throws

    ValueFormatException if conversion to an long is not possible.

    Throws

    RepositoryException if another error occurs.

  • Returns a String representation of this value.

    Returns string

    A String representation of the value of this property.

    Throws

    ValueFormatException if conversion to a String is not possible.

    Throws

    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.

    Throws

    RepositoryException if another error occurs.

  • 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 number

    an int