Package digilib.io
Class CdstarArchiveDocuDirectory
java.lang.Object
digilib.io.DocuDirectory
digilib.io.CdstarArchiveDocuDirectory
- All Implemented Interfaces:
Iterable<DocuDirent>
DocuDirectory backed by a CDSTAR archive.
Initialized with the CDSTAR archive URL.
Reads and caches all file entries in the archive on first access.
Treats all file entries in the archive as files in this DocuDirectory
(even if their file names contain slashes).
Reads image sizes from "exif:Image.ImageHeight" and "exif:Image.ImageWidth"
attributes in CDSTAR file metadata.
- Author:
- casties
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassSmall data class with information about the CDSTAR archive. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intnumber of files to read in one requestprotected Stringstatic final Stringdigilib-config key for the info request batch sizestatic final intmaximum number of info requestsstatic final Stringkey for image height in CDSTAR metadatastatic final Stringkey for image width in CDSTAR metadatastatic final inttime in ms to delay the next archive info call and reuse existing informationstatic final Stringdigilib-config key for the CDSTAR base URLFields inherited from class digilib.io.DocuDirectory
dirMTime, dirName, fileClass, files, isValid, logger, meta, objectATime, parent -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigure(String path, FileOps.FileClass fileClass, DigilibConfiguration dlConfig) Configure object with digilib directory path and a parent DocuDirCache.createFilename(String fn) Returns a possible file name for path fn.Returns a possible parent directory name for path fn.protected CdstarArchiveDocuDirectory.ArchiveInforeadArchiveInfo(org.apache.http.impl.client.CloseableHttpClient httpclient, int offset, int limit, CdstarArchiveDocuDirectory.ArchiveInfo info) booleanreadDir()Read the filesystem directory and fill this object.protected CdstarArchiveDocuDirectory.ArchiveInforeadFilesJson(InputStream instream, CdstarArchiveDocuDirectory.ArchiveInfo info) booleanrefresh()Check to see if the directory has been modified and reread if necessary.Methods inherited from class digilib.io.DocuDirectory
checkMeta, find, get, getAccessTime, getDirMTime, getDirName, getMeta, getParent, indexOf, isBasenameAt, isPrefixBasenameAt, isRead, isValid, iterator, readMeta, setParent, size, touchMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
META_IMAGE_HEIGHT_KEY
key for image height in CDSTAR metadata- See Also:
-
META_IMAGE_WIDTH_KEY
key for image width in CDSTAR metadata- See Also:
-
REFRESH_DELAY
public static final int REFRESH_DELAYtime in ms to delay the next archive info call and reuse existing information- See Also:
-
FILES_BATCH_SIZE_KEY
digilib-config key for the info request batch size- See Also:
-
archiveBatchSize
protected int archiveBatchSizenumber of files to read in one request -
MAX_INFO_REQUESTS
public static final int MAX_INFO_REQUESTSmaximum number of info requests- See Also:
-
STORAGE_URL_KEY
digilib-config key for the CDSTAR base URL- See Also:
-
archiveUrl
-
-
Constructor Details
-
CdstarArchiveDocuDirectory
public CdstarArchiveDocuDirectory()
-
-
Method Details
-
configure
Description copied from class:DocuDirectoryConfigure object with digilib directory path and a parent DocuDirCache. Directory names at the given path are appended to the base directories from the cache. The directory is checked on disk and isValid is set.- Overrides:
configurein classDocuDirectory- Parameters:
path- digilib directory path namefileClass- type of files in this DocuDirectorydlConfig- digilib config- See Also:
-
readDir
public boolean readDir()Description copied from class:DocuDirectoryRead the filesystem directory and fill this object. Clears the List and (re)reads all files.- Specified by:
readDirin classDocuDirectory- Returns:
- boolean the directory exists
-
readArchiveInfo
protected CdstarArchiveDocuDirectory.ArchiveInfo readArchiveInfo(org.apache.http.impl.client.CloseableHttpClient httpclient, int offset, int limit, CdstarArchiveDocuDirectory.ArchiveInfo info) throws IOException, URISyntaxException - Parameters:
httpclient-offset-info-- Returns:
- Throws:
IOExceptionURISyntaxException
-
readFilesJson
protected CdstarArchiveDocuDirectory.ArchiveInfo readFilesJson(InputStream instream, CdstarArchiveDocuDirectory.ArchiveInfo info) - Parameters:
instream-info-- Returns:
-
refresh
public boolean refresh()Description copied from class:DocuDirectoryCheck to see if the directory has been modified and reread if necessary.- Specified by:
refreshin classDocuDirectory- Returns:
- boolean the directory is valid
-
createParentName
Description copied from class:DocuDirectoryReturns a possible parent directory name for path fn.- Specified by:
createParentNamein classDocuDirectory- Parameters:
fn- the fn- Returns:
- the parent name
-
createFilename
Description copied from class:DocuDirectoryReturns a possible file name for path fn.- Specified by:
createFilenamein classDocuDirectory- Parameters:
fn- the fn- Returns:
- the name
-