Class SerWrapper<T extends Serializable>

  • All Implemented Interfaces:
    Externalizable, Serializable
    Direct Known Subclasses:
    CompSerWrapper

    public class SerWrapper<T extends Serializable>
    extends DualWrapper<T,​byte[]>
    A dual-form wrapper for marshalling a serializable object. The raw form is an object implementing Serializable, and the marshalled form is a byte array.

    This wrapper is itself Java serializable and JAXB-marshallable. Its own deserialization/unmarshalling succeeds without an exception even if the wrapped object cannot be deserialized, in which case the wrapper contains a null value for the wrapped object's raw and marshalled forms, logs a warning, and getDeserializationException() returns the exception thrown during deserialization. Similarly, its own serialization/marshalling succeeds without an exception even if the wrapped object cannot be serialized, in which case the wrapper contains a null value for the wrapped object's raw and marshalled forms, logs a warning, and getSerializationException() returns the exception thrown during serialization.

    Since:
    1.0.0
    Version:
    $Id: SerWrapper.java 16154 2012-07-14 16:34:05Z colin $
    Author:
    tlerios@marketcetera.com
    See Also:
    Serialized Form
    • Field Detail

      • mSerializationException

        private org.apache.commons.lang.SerializationException mSerializationException
      • mDeserializationException

        private org.apache.commons.lang.SerializationException mDeserializationException
    • Constructor Detail

      • SerWrapper

        public SerWrapper​(T raw)
        Creates a new wrapper for the given object, in its raw form. It also sets the internal marshalled form to match.
        Parameters:
        raw - The object, which may be null.
      • SerWrapper

        public SerWrapper()
        Creates a new wrapper. This empty constructor is intended for use by JAXB and Java serialization.
    • Method Detail

      • getSerializationException

        public org.apache.commons.lang.SerializationException getSerializationException()
        Returns the exception encountered during the most recent serialization attempt; it is null if that attempt was successful, or no attempt has been made yet.
        Returns:
        The exception.
      • setSerializationException

        private void setSerializationException​(org.apache.commons.lang.SerializationException serializationException)
        Sets the exception encountered during the most recent serialization attempt to the given exception.
        Parameters:
        serializationException - The exception.
      • getDeserializationException

        public org.apache.commons.lang.SerializationException getDeserializationException()
        Returns the exception encountered during the most recent deserialization attempt; it is null if that attempt was successful, or no attempt has been made yet.
        Returns:
        The exception.
      • setDeserializationException

        private void setDeserializationException​(org.apache.commons.lang.SerializationException deserializationException)
        Sets the exception encountered during the most recent deserialization attempt to the given exception.
        Parameters:
        deserializationException - The exception.
      • toRaw

        protected void toRaw()
        Description copied from class: DualWrapper
        Sets the raw form of the receiver's value so that it corresponds to its marshalled form. The subclass implementation can assume that the latter form is non-null. The subclass may modify both the former and latter forms (for example, if the latter form is invalid). Only DualWrapper.setRawOnly(Object) and DualWrapper.setMarshalledOnly(Object) should be used in setting either form, to prevent infinite recursion. The raw form is null if and only if the marshalled one is null; the caller of this method will enforce this invariant, so the subclass implementation can set just the raw form to null.
        Specified by:
        toRaw in class DualWrapper<T extends Serializable,​byte[]>
      • toMarshalled

        protected void toMarshalled()
        Description copied from class: DualWrapper
        Sets the marshalled form of the receiver's value so that it corresponds to its raw form. The subclass implementation can assume that the latter form is non-null. The subclass may modify both the former and latter forms (for example, if the latter form is invalid). Only DualWrapper.setRawOnly(Object) and DualWrapper.setMarshalledOnly(Object) should be used in setting either form, to prevent infinite recursion. The raw form is null if and only if the marshalled one is null; the caller of this method will enforce this invariant, so the subclass implementation can set just the marshalled form to null.
        Specified by:
        toMarshalled in class DualWrapper<T extends Serializable,​byte[]>