dk.netarkivet.archive.arcrepositoryadmin
Class ReadOnlyAdminData
java.lang.Object
dk.netarkivet.archive.arcrepositoryadmin.AdminData
dk.netarkivet.archive.arcrepositoryadmin.ReadOnlyAdminData
public class ReadOnlyAdminData
- extends AdminData
A version of AdminData that cannot be changed, but which allows
synchronization through a file.
To avoid excessive reading of the admin data file and constant stat() calls,
users of this are required call synchronize() before major chunks of use to
ensure that the data are up to date.
Implementation note: Two alternative synch strategies are
1) Recreate ReadOnlyAdminData before every use -- this requires reading the
entire file again (millions of lines).
2) Synchronize at every entry point (hasEntry, getState etc) -- this requires
an expensive stat() call before every action, costly when iterating.
Field Summary |
(package private) long |
lastModified
The time the underlying file (adminDataFile) was last read in. |
(package private) org.apache.commons.logging.Log |
log
|
Method Summary |
static ReadOnlyAdminData |
getInstance()
Returns _an_ instance if admin data. |
protected void |
read()
Read admin data. |
void |
synchronize()
Make sure that the internal admin data set is synchronized to the file. |
Methods inherited from class dk.netarkivet.archive.arcrepositoryadmin.AdminData |
getAllFileNames, getAllFileNames, getCheckSum, getEntry, getReadOnlyInstance, getState, getUpdateableInstance, hasEntry, hasReplyInfo, hasState, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
log
org.apache.commons.logging.Log log
lastModified
long lastModified
- The time the underlying file (adminDataFile) was last read in.
If 0, we have never read admin data (the file doesn't exist).
ReadOnlyAdminData
public ReadOnlyAdminData()
- See Also:
AdminData.AdminData()
getInstance
public static ReadOnlyAdminData getInstance()
- Returns _an_ instance if admin data. This is _not_ a singleton.
- Returns:
- An instance of ReadOnlyAdminData
read
protected void read()
- Read admin data. This should not be used, use synchronize instead, which
only rereads when necessary.
- Overrides:
read
in class AdminData
synchronize
public void synchronize()
- Make sure that the internal admin data set is synchronized to the file.