public byte[] getResult() {
    // optimization: do not collect changes if current revision will do
    if (myComparator.isSuitable(myCurrentFileTimestamp)) {
      return myCurrentFileContent.getBytesIfAvailable();
    }

    List<ChangeSet> changes = collectChanges();

    if (changes.isEmpty() && myComparator.isSuitable(myCurrentFileTimestamp)) {
      // visit current version
      return myCurrentFileContent.getBytesIfAvailable();
    }

    for (ChangeSet c : changes) {
      if (myComparator.isSuitable(myCurrentFileTimestamp)) {
        return myCurrentFileContent.getBytesIfAvailable();
      }
      recordContentAndTimestamp(c);
    }

    return null;
  }
public byte[] getResult()