dk.netarkivet.archive.checksum
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 Summary
 java.lang.String calculateChecksum(java.io.File f)
          Method for calculating the checksum of a specific file.
 java.lang.String calculateChecksum(java.io.InputStream is)
          Method for calculating the checksum when the file is received in the form of an inputstream.
 void cleanup()
          Method for cleaning up when closing down.
 java.io.File correct(java.lang.String filename, java.io.File correctFile)
          Method for removing a bad entry from the archive.
 java.io.File getAllFilenames()
          Method for retrieving the names of all the files within the archive as a temporary file.
 java.io.File getArchiveAsFile()
          Method for retrieving the archive as a temporary file containing the checksum entries.
 java.lang.String getChecksum(java.lang.String filename)
          Method for retrieving the checksum of a specific entry in the archive.
 boolean hasEnoughSpace()
          Method for checking whether there is enough space left on the hard drive.
 boolean hasEntry(java.lang.String filename)
          Method for checking whether an entry exists within the archive.
 void upload(RemoteFile arcfile, java.lang.String filename)
          Method for uploading a new file to the archive.
 

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

java.io.File correct(java.lang.String filename,
                     java.io.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

java.lang.String getChecksum(java.lang.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(java.lang.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,
            java.lang.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.

calculateChecksum

java.lang.String calculateChecksum(java.io.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

java.lang.String calculateChecksum(java.io.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

java.io.File getArchiveAsFile()
Method for retrieving the archive as a temporary file containing the checksum entries.

Returns:
A temporary checksum file.

getAllFilenames

java.io.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.