org.apache.jackrabbit.rmi.value
Class SerialValueFactory

java.lang.Object
  extended by org.apache.jackrabbit.rmi.value.SerialValueFactory
All Implemented Interfaces:
ValueFactory

public class SerialValueFactory
extends Object
implements ValueFactory

The SerialValueFactory class is used in the RMI infrastructure to create serializable Value instances on the client side.

This class works in conjunction with the implementations of the javax.jcr.Value interface found in this package.

This class may be extended to overwrite any of the createXXXValue methods to create instances of the respective type of org.apache.jackrabbit.rmi.value.StatefullValueimplementation. The methods of the ValueFactory interface are declared final to guard against breaking the rules.


Constructor Summary
protected SerialValueFactory()
          Default constructor only visible to extensions of this class.
 
Method Summary
 Binary createBinary(InputStream stream)
           
 Value createValue(BigDecimal value)
          
 Value createValue(Binary value)
           
 Value createValue(boolean value)
          
 Value createValue(Calendar value)
          
 Value createValue(double value)
          
 Value createValue(InputStream value)
          
 Value createValue(long value)
          
 Value createValue(Node value)
          
 Value createValue(Node value, boolean weak)
           
 Value createValue(String value)
          
 Value createValue(String value, int type)
          
static SerialValueFactory getInstance()
          Returns the ValueFactory instance, which currently is a singleton instance of this class.
static Value makeSerialValue(Value value)
          Utility method for decorating a value.
static Value[] makeSerialValueArray(String[] values)
          Utility method for converting an array of strings to serializable string values.
static Value[] makeSerialValueArray(Value[] values)
          Utility method for decorating an array of values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SerialValueFactory

protected SerialValueFactory()
Default constructor only visible to extensions of this class. See class comments for details.

Method Detail

getInstance

public static final SerialValueFactory getInstance()
Returns the ValueFactory instance, which currently is a singleton instance of this class.

Future revisions will support some kind of configuration to specify which concrete class should be used.


makeSerialValueArray

public static Value[] makeSerialValueArray(Value[] values)
                                    throws RepositoryException
Utility method for decorating an array of values. The returned array will contain serializable value decorators for all the given values. Note that the contents of the original values will only be copied when the decorators are serialized.

If the given array is null, then an empty array is returned.

Parameters:
values - the values to be decorated
Returns:
array of decorated values
Throws:
RepositoryException - if the values can not be serialized

makeSerialValue

public static Value makeSerialValue(Value value)
                             throws RepositoryException
Utility method for decorating a value. Note that the contents of the original values will only be copied when the decorators are serialized. Null referenced and already serializable values are passed as-is.

Parameters:
value - the value to be decorated, or null
Returns:
the decorated value, or null
Throws:
RepositoryException - if the value can not be serialized

makeSerialValueArray

public static Value[] makeSerialValueArray(String[] values)
Utility method for converting an array of strings to serializable string values.

If the given array is null, then an empty array is returned.

Parameters:
values - the string array
Returns:
array of string values

createValue

public Value createValue(String value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(String value,
                               int type)
                        throws ValueFormatException

Specified by:
createValue in interface ValueFactory
Throws:
ValueFormatException

createValue

public final Value createValue(long value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(double value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(boolean value)

Specified by:
createValue in interface ValueFactory

createValue

public Value createValue(BigDecimal value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(Calendar value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(InputStream value)

Specified by:
createValue in interface ValueFactory

createValue

public final Value createValue(Node value)
                        throws RepositoryException

Specified by:
createValue in interface ValueFactory
Throws:
RepositoryException

createBinary

public Binary createBinary(InputStream stream)
                    throws RepositoryException
Specified by:
createBinary in interface ValueFactory
Throws:
RepositoryException

createValue

public Value createValue(Binary value)
Specified by:
createValue in interface ValueFactory

createValue

public Value createValue(Node value,
                         boolean weak)
                  throws RepositoryException
Specified by:
createValue in interface ValueFactory
Throws:
RepositoryException


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.