Class OptimizedHolder

    • Constructor Detail

      • OptimizedHolder

        public OptimizedHolder()
        Default constructor is required for deserialization purposes.
      • OptimizedHolder

        public OptimizedHolder​(TraditionalHttpSessionModel model)
        Default constructor is required for deserialization purposes.
        Parameters:
        model - the traditional http session model
      • OptimizedHolder

        public OptimizedHolder​(String sName,
                               Object oValue,
                               TraditionalHttpSessionModel model)
        Construct an OptimizedHolder for a value.
        Parameters:
        sName - the attribute name
        oValue - the value of the attribute; not null
        model - the traditional http session model
    • Method Detail

      • getValue

        public Object getValue()
        Obtain the object form of the value.
        Overrides:
        getValue in class AttributeHolder
        Returns:
        the object form of the value
      • getBinary

        public Binary getBinary()
        Obtain the binary form of the value. Failure to serialize the value, if serialization is necessary, will result in a runtime exception.
        Returns:
        the binary form of the value
      • getInternalBinary

        protected Binary getInternalBinary()
        Obtain the internally managed binary value.
        Returns:
        the cached binary form of the value, or null if it has not been lazily serialized
      • ensureInternalBinary

        protected Binary ensureInternalBinary()
        Obtain the non-null internally managed binary value. This method allows sub-classes to lazily load the cached binary.

        This method is explicitly NOT a "MAKE BINARY OUT OF VALUE" method. It is only intended to allow lazy loading of the pre-existing binary value, for example from a distributed cache.

        Returns:
        the binary form of the value, but never null
      • setInternalBinary

        protected void setInternalBinary​(Binary binValue)
        Store the internally managed binary value.
        Parameters:
        binValue - the binary form of the value
      • serializeValue

        protected Binary serializeValue​(Object o)
        Take the passed object and turn it into a Binary value.
        Parameters:
        o - the object to serialize
        Returns:
        the binary value of the attribute
      • deserializeValue

        protected Object deserializeValue​(Binary bin)
        Take the Binary form of the attribute value and turn it into the object value.
        Parameters:
        bin - the binary value to deserialize
        Returns:
        the object value of the attribute
      • prepareWrite

        protected void prepareWrite()
                             throws IOException
        Called to test serialization; if the holder cannot serialize its value, it should throw an IOException at this point. Note that this method should only be called as part of the "write" processing for the model, as the holder will expect an immediate follow-up call to actually write itself out.
        Overrides:
        prepareWrite in class AttributeHolder
        Throws:
        IOException - if the holder cannot serialize its value
      • readBinary

        protected Binary readBinary​(DataInput in)
                             throws IOException
        Read the binary value. This is part of deserialization processing, and is separated out to enable subclassing.
        Parameters:
        in - the DataInput that this holder is being deserialized from
        Returns:
        the binary value
        Throws:
        IOException - on I/O error
      • writeBinary

        protected void writeBinary​(DataOutput out)
                            throws IOException
        Write the binary value. This is part of serialization processing, and is separated out to enable subclassing.
        Parameters:
        out - the DataOutput that this holder is being serialized to
        Throws:
        IOException - on I/O error