code: private int analysisItemDataChangesLog() throws IOException
     {
        int itemDataChangesLogType = PendingChangesLog.Type.CHANGESLOG_WITHOUT_STREAM;
  
        int i = 0;
        for (ItemState itemState : itemDataChangesLog.getAllStates())
        {
           ItemData itemData = itemState.getData();
  
           if (itemData instanceof PersistedPropertyData)
           {
              PersistedPropertyData propertyData = (PersistedPropertyData)itemData;
              if ((propertyData.getValues() != null))
                 for (int j = 0; j < propertyData.getValues().size(); j++)
                    if (!(propertyData.getValues().get(j).isByteArray()))
                    {
                       listFixupStream.add(new FixupStream(i, j));
  
                       InputStream inputStream;
                       if (itemState.isDeleted())
                          inputStream = new ByteArrayInputStream("".getBytes());
                       else
                          inputStream = propertyData.getValues().get(j).getAsStream();
  
                       listInputStream.add(inputStream);
                       itemDataChangesLogType = PendingChangesLog.Type.CHANGESLOG_WITH_STREAM;
                    }
           }
  
           i++;
        }
  
        return itemDataChangesLogType;
     }
docs: analysisItemDataChangesLog.
  
  @return int type of ChangesLog (CHANGESLOG_WITHOUT_STREAM or CHANGESLOG_WITH_STREAM)
  @throws IOException
  will be generated the IOException