code: 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;
     }
docs: 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.