Class DatabaseAdmin
- java.lang.Object
-
- dk.netarkivet.archive.arcrepositoryadmin.DatabaseAdmin
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEntry(String filename, StoreMessage msg, String checksum)
Method for adding an entry for administration.void
close()
Close and cleanup of this class.Set<String>
getAllFileNames()
Retrieves a set of the names for all the known files.Set<String>
getAllFileNames(Replica rep, ReplicaStoreState state)
Retrieves a set with the name of the files with a specific ReplicaStoreState in a specific replica.String
getCheckSum(String filename)
Retrieves the checksum of a given file.static DatabaseAdmin
getInstance()
Retrieval of a singleton DatabaseAdmin.ReplicaStoreState
getState(String filename, String replicaChannelName)
Returns the ReplicaStoreState of a given file in a specific replica.boolean
hasEntry(String filename)
Method for telling whether a file entry exists.boolean
hasReplyInfo(String filename)
Determines whether the StoreMessage of a given file exists.boolean
hasState(String filename, String repChannelId)
Determines whether a given file in a specific replica has a valid replica store state.StoreMessage
removeReplyInfo(String filename)
Retrieves the StoreMessage of a specific file.void
setCheckSum(String filename, String checksum)
Sets the checksum of a given file.void
setReplyInfo(String filename, StoreMessage msg)
Assign a StoreMessage to a specific filename.void
setState(String filename, String repChannelId, ReplicaStoreState state)
Sets the store state of an entry to a specific value.
-
-
-
Method Detail
-
getInstance
public static DatabaseAdmin getInstance()
Retrieval of a singleton DatabaseAdmin. Ensures that this class is not instantiated multiple times.- Returns:
- The current instance of this class.
-
addEntry
public void addEntry(String filename, StoreMessage msg, String checksum) throws ArgumentNotValid
Method for adding an entry for administration.- Specified by:
addEntry
in interfaceAdmin
- Parameters:
filename
- The name of the file to be stored.msg
- The StoreMessage of the entry.checksum
- The checksum of the entry.- Throws:
ArgumentNotValid
- If either the filename or checksum is either null or the empty string.
-
hasEntry
public boolean hasEntry(String filename) throws ArgumentNotValid
Method for telling whether a file entry exists.- Specified by:
hasEntry
in interfaceAdmin
- Parameters:
filename
- The name of the file, the existence of whose entry is to be determined.- Returns:
- Whether the entry exists.
- Throws:
ArgumentNotValid
- If the filename is either null or empty.
-
getState
public ReplicaStoreState getState(String filename, String replicaChannelName) throws ArgumentNotValid
Returns the ReplicaStoreState of a given file in a specific replica.- Specified by:
getState
in interfaceAdmin
- Parameters:
filename
- The name of the file for the ReplicaStoreState.replicaChannelName
- The name of the identification channel for uniquely identifying the replica of for the ReplicaStoreState.- Returns:
- The ReplicaStoreState of a given file in a specific replica.
- Throws:
ArgumentNotValid
- If the filename or the replica id is null or the empty string.
-
hasState
public boolean hasState(String filename, String repChannelId) throws ArgumentNotValid
Determines whether a given file in a specific replica has a valid replica store state. By valid means a replica store state other that UNKNOWN_UPLOAD_STATE.TODO Find out if the assumption that all upload states besides UNKNOWN_UPLOAD_STATE are acceptable!
- Specified by:
hasState
in interfaceAdmin
- Parameters:
filename
- The name of the file for the ReplicaStoreState.repChannelId
- The identification channel of the replica for the ReplicaStoreState.- Returns:
- Whether a given file in a specific replica has a valid store state.
- Throws:
ArgumentNotValid
- If either the filenames or the replica identification channel is null or the empty string.
-
setState
public void setState(String filename, String repChannelId, ReplicaStoreState state) throws ArgumentNotValid
Sets the store state of an entry to a specific value.- Specified by:
setState
in interfaceAdmin
- Parameters:
filename
- The name of the file for the entry.repChannelId
- The identification channel of the replica for the entry.state
- The new state for the entry.- Throws:
ArgumentNotValid
- If the ReplicaStoreState is null, or if either the filename or the replica identification channel is either null or the empty string.
-
hasReplyInfo
public boolean hasReplyInfo(String filename) throws ArgumentNotValid
Determines whether the StoreMessage of a given file exists.- Specified by:
hasReplyInfo
in interfaceAdmin
- Parameters:
filename
- The name of the file to which the existence of the StoreMessage should be determined.- Returns:
- Whether the StoreMessage of the file exists.
- Throws:
ArgumentNotValid
- If the filename is null or the empty string.
-
removeReplyInfo
public StoreMessage removeReplyInfo(String filename) throws ArgumentNotValid
Retrieves the StoreMessage of a specific file.- Specified by:
removeReplyInfo
in interfaceAdmin
- Parameters:
filename
- The name of the file whose StoreMessage should be retrieved.- Returns:
- The StoreMessage corresponding to the file. A null is returned if the corresponding StoreMessage is not found.
- Throws:
ArgumentNotValid
- If the filename is either null or the empty string.
-
setReplyInfo
public void setReplyInfo(String filename, StoreMessage msg) throws ArgumentNotValid
Assign a StoreMessage to a specific filename. If the filename is already associated with a StoreMessage, then this StoreMessage will be overwritten by the new StoreMessage.- Specified by:
setReplyInfo
in interfaceAdmin
- Parameters:
filename
- The name of the file to have a StoreMessage assigned.msg
- The StoreMessage to be assigned to a file.- Throws:
ArgumentNotValid
- If the StoreMessage is null or if the filename is either null or the empty string.
-
getCheckSum
public String getCheckSum(String filename) throws ArgumentNotValid
Retrieves the checksum of a given file.- Specified by:
getCheckSum
in interfaceAdmin
- Parameters:
filename
- The name of the file, whose checksum should be retrieved.- Returns:
- The checksum of the file.
- Throws:
ArgumentNotValid
- If the filename is either null or the empty string.
-
setCheckSum
public void setCheckSum(String filename, String checksum) throws ArgumentNotValid, IllegalState
Sets the checksum of a given file.It should not be possible to change the checksum in the database through arcrepository.
- Specified by:
setCheckSum
in interfaceAdmin
- Parameters:
filename
- The name of the file to have the checksum changed.checksum
- The new checksum for the file.- Throws:
ArgumentNotValid
- If either the filename or the checksum is either null or the empty string.IllegalState
- Always, since it is not allowed for arcrepository to change the checksum of a completed upload.
-
getAllFileNames
public Set<String> getAllFileNames()
Retrieves a set of the names for all the known files.- Specified by:
getAllFileNames
in interfaceAdmin
- Returns:
- A set of the names for all the known file.
-
getAllFileNames
public Set<String> getAllFileNames(Replica rep, ReplicaStoreState state) throws ArgumentNotValid
Retrieves a set with the name of the files with a specific ReplicaStoreState in a specific replica.- Specified by:
getAllFileNames
in interfaceAdmin
- Parameters:
rep
- The replica where the files belong.state
- The ReplicaStoreState for the files.- Returns:
- A set with the names of the files with a specific ReplicaStoreState in a specific replica.
- Throws:
ArgumentNotValid
- If the Replica or the ReplicaStoreState is null.
-
-