public PersistedPropertyData read(ObjectReader in) throws UnknownClassIdException, IOException
   {
      // read id
      int key;
      if ((key = in.readInt()) != SerializationConstants.PERSISTED_PROPERTY_DATA)
      {
         throw new UnknownClassIdException("There is unexpected class [" + key + "]");
      }

      QPath qpath;
      try
      {
         String sQPath = in.readString();
         qpath = QPath.parse(sQPath);
      }
      catch (final IllegalPathException e)
      {
         throw new IOException("Deserialization error. " + e)
         {

            /**
             * {@inheritDoc}
             */
            @Override
            public Throwable getCause()
            {
               return e;
            }
         };
      }

      String identifier = in.readString();

      String parentIdentifier = null;
      if (in.readByte() == SerializationConstants.NOT_NULL_DATA)
      {
         parentIdentifier = in.readString();
      }

      int persistedVersion = in.readInt();
      // --------------

      int type = in.readInt();
      boolean multiValued = in.readBoolean();
      PersistedSize persistedSizeHandler = new SimplePersistedSize(in.readLong());

      PersistedPropertyData prop;

      if (in.readByte() == SerializationConstants.NOT_NULL_DATA)
      {

         int listSize = in.readInt();
         List<ValueData> values = new ArrayList<ValueData>();
         PersistedValueDataReader rdr = new PersistedValueDataReader(holder, spoolConfig);
         for (int i = 0; i < listSize; i++)
         {
            values.add(rdr.read(in, type));
         }

         prop =
            new PersistedPropertyData(identifier, qpath, parentIdentifier, persistedVersion, type, multiValued, values,
               persistedSizeHandler);
      }
      else
      {
         prop =
            new PersistedPropertyData(identifier, qpath, parentIdentifier, persistedVersion, type, multiValued, null,
               persistedSizeHandler);
      }

      return prop;
   }
public PersistedPropertyData read ( ObjectReader in ) throws UnknownClassIdException , IOException { int key ; if ( ( key = in . readInt ( ) ) != SerializationConstants . PERSISTED_PROPERTY_DATA ) { throw new UnknownClassIdException ( "There is unexpected class [" + key + "]" ) ; } QPath qpath ; try { String sQPath = in . readString ( ) ; qpath = QPath . parse ( sQPath ) ; } catch ( final IllegalPathException e ) { throw new IOException ( "Deserialization error. " + e ) { @ Override public Throwable getCause ( ) { return e ; } } ; } String identifier = in . readString ( ) ; String parentIdentifier = null ; if ( in . readByte ( ) == SerializationConstants . NOT_NULL_DATA ) { parentIdentifier = in . readString ( ) ; } int persistedVersion = in . readInt ( ) ; int type = in . readInt ( ) ; boolean multiValued = in . readBoolean ( ) ; PersistedSize persistedSizeHandler = new SimplePersistedSize ( in . readLong ( ) ) ; PersistedPropertyData prop ; if ( in . readByte ( ) == SerializationConstants . NOT_NULL_DATA ) { int listSize = in . readInt ( ) ; List < ValueData > values = new ArrayList < ValueData > ( ) ; PersistedValueDataReader rdr = new PersistedValueDataReader ( holder , spoolConfig ) ; for ( int i = 0 ; i < listSize ; i ++ ) { values . add ( rdr . read ( in , type ) ) ; } prop = new PersistedPropertyData ( identifier , qpath , parentIdentifier , persistedVersion , type , multiValued , values , persistedSizeHandler ) ; } else { prop = new PersistedPropertyData ( identifier , qpath , parentIdentifier , persistedVersion , type , multiValued , null , persistedSizeHandler ) ; } return prop ; }
Read and set PersistedPropertyData object data.

@param in ObjectReader.
@return PersistedPropertyData object.
@throws UnknownClassIdException If read Class ID is not expected or do not
exist.
@throws IOException If an I/O error has occurred.