private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
    {
        // Perform default de-serialization.
        // in.defaultReadObject();

        // Deserialize the attribute by value, from its attribute class and full path.
        String[] pathArrayValue = (String[]) in.readObject();
        String attributeClassName = (String) in.readObject();

        // Re-create the attribute from its value representation.
        HierarchyAttribute attr = getFactoryForClass(attributeClassName).createHierarchyAttribute(pathArrayValue);

        // Copy the fields from the freshly constructed attribute into this one.
        value = attr.value;
        attributeClass = attr.attributeClass;

        // Print out some information about the deserialized object.
        /*log.fine("Deserialized hierarchy attribute = " + this);*/
        /*log.fine("Deserialized hierarchy attribute class = " + attributeClass);*/

        /*log.fine("Deserialized attribute classes in static class map are: ");*/

        for (HierarchyClassImpl attributeClass : attributeClasses.values())
        {
            /*log.fine(attributeClass.toString());*/
        }
    }
private void readObject ( ObjectInputStream in ) throws IOException , ClassNotFoundException { String [ ] pathArrayValue = ( String [ ] ) in . readObject ( ) ; String attributeClassName = ( String ) in . readObject ( ) ; HierarchyAttribute attr = getFactoryForClass ( attributeClassName ) . createHierarchyAttribute ( pathArrayValue ) ; value = attr . value ; attributeClass = attr . attributeClass ; for ( HierarchyClassImpl attributeClass : attributeClasses . values ( ) ) { } }
Deserializes a hierarchy attribute.

@param  in The object input stream.

@throws IOException            If any IO exception occurs.
@throws ClassNotFoundException If any classes to deserialize cannot be found.