/** * Compares a {@link FileVersion} with a local {@link File} and returns a {@link FileVersionComparison} object. * * <p>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 <tt>actualFileForceChecksum</tt> parameter must be switched to <tt>true</tt>. * * @param expectedFileVersion The expected file version (that is compared to the actual file) * @param actualFile The actual file (that is compared to the expected file version) * @param actualFileForceChecksum Force a checksum comparison if necessary (if size does not differ) * @return Returns a file version comparison object, indicating if there are differences between the file versions */ public FileVersionComparison compare(FileVersion expectedFileVersion, File actualFile, boolean actualFileForceChecksum) { return compare(expectedFileVersion, actualFile, null, actualFileForceChecksum); }
protected FileVersionComparison fileChanges(FileVersion expectedLocalFileVersion) { File actualLocalFile = getAbsolutePathFile(expectedLocalFileVersion.getPath()); FileVersionComparison fileVersionComparison = fileVersionHelper.compare(expectedLocalFileVersion, actualLocalFile, true); return fileVersionComparison; }
/** * Compares two {@link FileVersion}s to each other and returns a {@link FileVersionComparison} object. * * @param expectedFileVersion The expected file version (that is compared to the actual file version) * @param actualFileVersion The actual file version (that is compared to the expected file version) * @return Returns a file version comparison object, indicating if there are differences between the file versions */ public FileVersionComparison compare(FileVersion expectedFileVersion, FileVersion actualFileVersion) { FileProperties expectedFileProperties = captureFileProperties(expectedFileVersion); FileProperties actualFileProperties = captureFileProperties(actualFileVersion); return compare(expectedFileProperties, actualFileProperties, true); }
/** * Compares a {@link FileVersion} with a local {@link File} and returns a {@link FileVersionComparison} object. * * <p>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 <tt>actualFileForceChecksum</tt> parameter must be switched to <tt>true</tt>. * * <p>If the <tt>actualFileKnownChecksum</tt> parameter 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. * * @param expectedFileVersion The expected file version (that is compared to the actual file) * @param actualFile The actual file (that is compared to the expected file version) * @param actualFileKnownChecksum If the checksum of the local file is known, it can be set * @param actualFileForceChecksum Force a checksum comparison if necessary (if size does not differ) * @return Returns a file version comparison object, indicating if there are differences between the file versions */ public FileVersionComparison compare(FileVersion expectedLocalFileVersion, File actualLocalFile, FileChecksum actualFileKnownChecksum, boolean actualFileForceChecksum) { FileProperties expectedLocalFileVersionProperties = captureFileProperties(expectedLocalFileVersion); FileProperties actualFileProperties = captureFileProperties(actualLocalFile, actualFileKnownChecksum, actualFileForceChecksum); return compare(expectedLocalFileVersionProperties, actualFileProperties, actualFileForceChecksum); }
FileVersionComparison fileVersionComparison = fileVersionComparator.compare(expectedLastFileVersion, actualLocalFile.toFile(), forceChecksum);
private void determineActionWithLocalVersionAndLocalFileAsExpected(FileVersion winningLastVersion, File winningLastFile, FileVersion localLastVersion, File localLastFile, MemoryDatabase winnersDatabase, List<FileSystemAction> fileSystemActions) { FileVersionComparison winningVersionToLocalVersionComparison = fileVersionComparator.compare(winningLastVersion, localLastVersion);
private void determineActionNoLocalLastVersion(FileVersion winningLastVersion, File winningLastFile, MemoryDatabase winnersDatabase, List<FileSystemAction> outFileSystemActions) throws Exception { FileVersionComparison winningFileToVersionComparison = fileVersionComparator.compare(winningLastVersion, winningLastFile, true);
FileVersionComparison localFileToVersionComparison = fileVersionComparator.compare(localLastVersion, localLastFile, true);
FileVersionComparison lastToNewFileVersionComparison = fileVersionComparator.compare(fileProperties, lastFileVersionProperties, true);
FileProperties expectedFileProperties = fileVersionComparator.captureFileProperties(expectedFile, null, true); FileVersionComparison fileVersionComparison = fileVersionComparator.compare(expectedFileProperties, actualFileProperties, true);