Class FileVersionComparator
- java.lang.Object
- 
- org.syncany.database.FileVersionComparator
 
- 
 public class FileVersionComparator extends java.lang.Object The file version comparator is a helper class to compareFileVersions with each other, or compareFileVersions to localFiles.It captures the FileVersionComparator.FilePropertiesof two files or file versions and compares them using the variouscompare*-methods. A comparison returns a set ofFileVersionComparator.FileChanges, each of which identifies a certain attribute change (e.g. checksum changed, name changed). A file can be considered equal if the returned set ofFileVersionComparator.FileChanges is empty.The file version comparator distinguishes between cancelling tests and regular tests. Cancelling tests are implemented in performCancellingTests(). They represent significant changes in a file, for which further comparison would not make sense (e.g. new vs. deleted files or files vs. folders). If a cancelling test is not successful, other tests are not performed.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classFileVersionComparator.FileChangestatic classFileVersionComparator.FilePropertiesstatic classFileVersionComparator.FileVersionComparison
 - 
Constructor SummaryConstructors Constructor Description FileVersionComparator(java.io.File rootFolder, java.lang.String checksumAlgorithm)Creates a new file version comparator helper class.
 - 
Method Summary
 
- 
- 
- 
Constructor Detail- 
FileVersionComparatorpublic FileVersionComparator(java.io.File rootFolder, java.lang.String checksumAlgorithm) Creates a new file version comparator helper class.The rootFolderis needed to allow a comparison of the relative file path. ThechecksumAlgorithmis used for calculate and compare file checksums. Both are used if a localFileis compared to aFileVersion.- Parameters:
- rootFolder- Base folder to determine a relative path to
- checksumAlgorithm- Digest algorithm for checksum calculation, e.g. "SHA1" or "MD5"
 
 
- 
 - 
Method Detail- 
comparepublic FileVersionComparator.FileVersionComparison compare(FileVersion expectedFileVersion, FileVersion actualFileVersion) Compares twoFileVersions to each other and returns aFileVersionComparator.FileVersionComparisonobject.- Parameters:
- expectedFileVersion- The expected file version (that is compared to the actual file version)
- actualFileVersion- The actual file version (that is compared to the expected file version)
- Returns:
- Returns a file version comparison object, indicating if there are differences between the file versions
 
 - 
comparepublic FileVersionComparator.FileVersionComparison compare(FileVersion expectedFileVersion, java.io.File actualFile, boolean actualFileForceChecksum) Compares aFileVersionwith a localFileand returns aFileVersionComparator.FileVersionComparisonobject.If the actual file does not differ in size, it is necessary to calculate and compare the checksum of the local file to the file version to reliably determine if it has changed. Unless comparing the size and last modified date is enough, the actualFileForceChecksumparameter must be switched totrue.- Parameters:
- expectedFileVersion- The expected file version (that is compared to the actual file)
- actualFile- The actual file (that is compared to the expected file version)
- actualFileForceChecksum- Force a checksum comparison if necessary (if size does not differ)
- Returns:
- Returns a file version comparison object, indicating if there are differences between the file versions
 
 - 
comparepublic FileVersionComparator.FileVersionComparison compare(FileVersion expectedLocalFileVersion, java.io.File actualLocalFile, FileContent.FileChecksum actualFileKnownChecksum, boolean actualFileForceChecksum) Compares aFileVersionwith a localFileand returns aFileVersionComparator.FileVersionComparisonobject.If the actual file does not differ in size, it is necessary to calculate and compare the checksum of the local file to the file version to reliably determine if it has changed. Unless comparing the size and last modified date is enough, the actualFileForceChecksumparameter must be switched totrue.If the actualFileKnownChecksumparameter is set and a checksum comparison is necessary, this parameter is used to compare checksums. If not and force checksum is enabled, the checksum is calculated and compared.- Parameters:
- expectedLocalFileVersion- The expected file version (that is compared to the actual file)
- actualLocalFile- The actual file (that is compared to the expected file version)
- actualFileKnownChecksum- If the checksum of the local file is known, it can be set
- actualFileForceChecksum- Force a checksum comparison if necessary (if size does not differ)
- Returns:
- Returns a file version comparison object, indicating if there are differences between the file versions
 
 - 
comparepublic FileVersionComparator.FileVersionComparison compare(FileVersionComparator.FileProperties expectedFileProperties, FileVersionComparator.FileProperties actualFileProperties, boolean compareChecksums) 
 - 
captureFilePropertiespublic FileVersionComparator.FileProperties captureFileProperties(java.io.File file, FileContent.FileChecksum knownChecksum, boolean forceChecksum) 
 - 
captureFilePropertiespublic FileVersionComparator.FileProperties captureFileProperties(FileVersion fileVersion) 
 
- 
 
-