Module java.corba
Package javax.rmi.CORBA

## Interface ValueHandler

All Known Subinterfaces:
  ValueHandlerMultiFormat

    public interface ValueHandler

Defines methods which allow serialization of Java objects to and from GIOP streams.

### Method Summary

All Methods Instance Methods Abstract Methods
`String` `getRMIRepositoryID(Class clz)` Returns the CORBA RepositoryId for the given Java class.
`RunTime` `getRunTimeCodeBase()` Returns the CodeBase for this ValueHandler.
`boolean` `isCustomMarshaled(Class clz)` Indicates whether the given class performs custom or default marshaling.
`Serializable` `readValue(InputStream in, int offset, Class clz, String repositoryID, RunTime sender)` Reads a value from the stream using Java semantics.
`Serializable` `writeReplace(Serializable value)` If the value contains a `writeReplace` method then the result is returned.
`void` `writeValue(OutputStream out, Serializable value)` Writes a value to the stream using Java semantics.

### Method Detail

#### writeValue

    void writeValue(OutputStream out,
                    Serializable value)

Writes a value to the stream using Java semantics.

Parameters:
  `out` - the stream to write the value to.
  `value` - the value to be written to the stream.

#### readValue

    Serializable readValue(InputStream in,
                           int offset,
                           Class clz,
                           String repositoryID,
                           RunTime sender)

Reads a value from the stream using Java semantics.

Parameters:
  `in` - the stream to read the value from.
  `offset` - the current position in the input stream.
  `clz` - the type of the value to be read in.
  `repositoryID` - the RepositoryId of the value to be read in.
  `sender` - the sending context runtime codebase.
Returns:
  the value read from the stream.

#### getRMIRepositoryID

    String getRMIRepositoryID(Class clz)

Returns the CORBA RepositoryId for the given Java class.

Parameters:
  `clz` - a Java class.
Returns:
  the CORBA RepositoryId for the class.

#### isCustomMarshaled

    boolean isCustomMarshaled(Class clz)

Indicates whether the given class performs custom or default marshaling.

Parameters:
  `clz` - the class to test for custom marshaling.
Returns:
  `true` if the class performs custom marshaling, `false` if it does not.

#### getRunTimeCodeBase

    RunTime getRunTimeCodeBase()

Returns the CodeBase for this ValueHandler. This is used by the ORB runtime. The server sends the service context containing the IOR for this CodeBase on the first GIOP reply. The client does the same on the first GIOP request.

Returns:
  the SendingContext.CodeBase of this ValueHandler.

#### writeReplace

    Serializable writeReplace(Serializable value)

If the value contains a `writeReplace` method then the result is returned. Otherwise, the value itself is returned.

Parameters:
  `value` - the value to be marshaled.
Returns:
  the true value to marshal on the wire.