protected synchronized XAttributeMap deserialize ( ) throws IOException { if ( this . size == 0 ) { return new XAttributeMapLazyImpl < XAttributeMapImpl > ( XAttributeMapImpl . class ) ; } else { if ( cacheMap != null && cacheMap . get ( ) != null ) { return cacheMap . get ( ) ; } else { storage . seek ( 0 ) ; XAttributeMap deserialized = this . serializer . deserialize ( storage ) ; cacheMap = new WeakReference < XAttributeMap > ( deserialized ) ; return deserialized ; } } }
Retrieves a quick - access representation of this attribute map for actual usage . De - buffers the attribute map and creates an in - memory representation which should be discarded after use to free memory .