Class DatabaseChecksumArchive

    • Constructor Detail

      • DatabaseChecksumArchive

        public DatabaseChecksumArchive()
                                throws com.sleepycat.je.DatabaseException
        Constructor. Retrieves the minimum space left variable, and ensures the existence of the archive file. If the file does not exist, then it is created.
        Throws:
        Exception
        com.sleepycat.je.DatabaseException
    • Method Detail

      • getInstance

        public static DatabaseChecksumArchive getInstance()
                                                   throws Exception
        Method for obtaining the current singleton instance of this class. If the instance of this class has not yet been constructed, then it will be initialised.
        Returns:
        The current instance of this class.
        Throws:
        Exception
      • hasEnoughSpace

        public boolean hasEnoughSpace()
        Description copied from interface: ChecksumArchive
        Method for checking whether there is enough space left on the hard drive.
        Specified by:
        hasEnoughSpace in interface ChecksumArchive
        Returns:
        Whether there is enough space left on the hard drive.
      • correct

        public File correct​(String filename,
                            File correctFile)
                     throws IOFailure,
                            ArgumentNotValid,
                            IllegalState
        Description copied from interface: ChecksumArchive
        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.
        Specified by:
        correct in interface ChecksumArchive
        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:
        IOFailure - If the entry cannot be corrected.
        ArgumentNotValid - If one of the arguments are not valid.
        IllegalState - If no such entry exists to be corrected, or if the entry has a different checksum than expected.
      • getChecksum

        public String getChecksum​(String filename)
        Description copied from interface: ChecksumArchive
        Method for retrieving the checksum of a specific entry in the archive.
        Specified by:
        getChecksum in interface ChecksumArchive
        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

        public boolean hasEntry​(String filename)
        Description copied from interface: ChecksumArchive
        Method for checking whether an entry exists within the archive.
        Specified by:
        hasEntry in interface ChecksumArchive
        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

        public void upload​(RemoteFile file,
                           String filename)
        Description copied from interface: ChecksumArchive
        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.
        Specified by:
        upload in interface ChecksumArchive
        Parameters:
        file - The remote file to be uploaded.
        filename - The name of the file.
      • put

        public void put​(String filename,
                        String checksum)
        Update the database with a new filename and its checksum.
        Parameters:
        filename - A given filename
        checksum - The related checksum
      • calculateChecksum

        public String calculateChecksum​(File f)
        Description copied from interface: ChecksumArchive
        Method for calculating the checksum of a specific file.
        Specified by:
        calculateChecksum in interface ChecksumArchive
        Parameters:
        f - The file to calculate the checksum from.
        Returns:
        The checksum of the file.
      • calculateChecksum

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

        public File getArchiveAsFile()
        Description copied from interface: ChecksumArchive
        Method for retrieving the archive as a temporary file containing the checksum entries.
        Specified by:
        getArchiveAsFile in interface ChecksumArchive
        Returns:
        A temporary checksum file.
      • getAllFilenames

        public File getAllFilenames()
        Description copied from interface: ChecksumArchive
        Method for retrieving the names of all the files within the archive as a temporary file.
        Specified by:
        getAllFilenames in interface ChecksumArchive
        Returns:
        A temporary file containing the list of all the filenames. This file has one filename per line.