Interface ChecksumArchive

  • All Known Implementing Classes:
    DatabaseChecksumArchive, FileChecksumArchive

    public interface ChecksumArchive
    This abstract class is the interface for the checksum archives, which can be one of the following:
    - FileChecksumArchive where the archive is placed in a single file.
    - DatabaseChecksumArchive where the archive is placed in a database.
    See Also:
    FileChecksumArchive
    • Method Detail

      • hasEnoughSpace

        boolean hasEnoughSpace()
        Method for checking whether there is enough space left on the hard drive.
        Returns:
        Whether there is enough space left on the hard drive.
      • correct

        File correct​(String filename,
                     File correctFile)
              throws IOFailure,
                     ArgumentNotValid,
                     IllegalState
        Method for removing a bad entry from the archive. This finds the record and removes it if it has the incorrect checksum. The incorrect record is not deleted, but instead put into a backup file for all the incorrect records.
        Parameters:
        filename - The name of the file whose record should be removed.
        correctFile - The correct remote file to replace the bad one in the archive.
        Returns:
        A file containing the removed data.
        Throws:
        ArgumentNotValid - If one of the arguments are not valid.
        IOFailure - If the entry cannot be corrected.
        IllegalState - If no such entry exists to be corrected, or if the entry has a different checksum than expected.
      • getChecksum

        String getChecksum​(String filename)
        Method for retrieving the checksum of a specific entry in the archive.
        Parameters:
        filename - The name of the file entry in the archive for whom the checksum should be retrieved.
        Returns:
        The checksum of a record, or null if it was not found.
      • hasEntry

        boolean hasEntry​(String filename)
        Method for checking whether an entry exists within the archive.
        Parameters:
        filename - The name of the file whose entry in the archive should be determined.
        Returns:
        Whether an entry with the filename was found.
      • upload

        void upload​(RemoteFile arcfile,
                    String filename)
        Method for uploading a new file to the archive. The checksum of the file needs to be calculated before it is placed in the archive with the given filename.
        Parameters:
        arcfile - The remote file to be uploaded.
        filename - The name of the file.
      • upload

        void upload​(String checksum,
                    String filename)
        Upload a filename with a pre-computed checksum.
        Parameters:
        checksum -
        filename -
      • calculateChecksum

        String calculateChecksum​(File f)
        Method for calculating the checksum of a specific file.
        Parameters:
        f - The file to calculate the checksum from.
        Returns:
        The checksum of the file.
      • calculateChecksum

        String calculateChecksum​(InputStream is)
        Method for calculating the checksum when the file is received in the form of an inputstream.
        Parameters:
        is - The input stream to calculate the checksum from.
        Returns:
        The checksum of the inputstream.
      • getArchiveAsFile

        File getArchiveAsFile()
        Method for retrieving the archive as a temporary file containing the checksum entries.
        Returns:
        A temporary checksum file.
      • getAllFilenames

        File getAllFilenames()
        Method for retrieving the names of all the files within the archive as a temporary file.
        Returns:
        A temporary file containing the list of all the filenames. This file has one filename per line.
      • cleanup

        void cleanup()
        Method for cleaning up when closing down.