Package edu.harvard.hul.ois.jhove
Class HandlerBase
- java.lang.Object
-
- edu.harvard.hul.ois.jhove.HandlerBase
-
- All Implemented Interfaces:
OutputHandler
- Direct Known Subclasses:
JsonHandler,TextHandler,XmlHandler
public abstract class HandlerBase extends Object implements OutputHandler
Abstract base class for Jhove output handlers. Output handlers should normally subclass HandlerBase.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHandlerBase.SynchronizedDateFormatA DateFormat class to address an issue of thread safety.
-
Field Summary
Fields Modifier and Type Field Description protected App_appThe application objectprotected JhoveBase_baseThe Jhove engineprotected Date_dateHandler last modification dateprotected List<String>_defaultParamsList of default parameters.protected String_encodingCharacter encoding for writerprotected String_initInitialization value.protected JhoveBase_jeJHOVE engine.protected int_levelIndentation levelprotected Logger_loggerLogger for a handler class.protected String_nameHandler nameprotected String_noteHandler noteprotected String_paramHandler-specific parameter.protected String_releaseHandler release description.protected String_rightsCopyright noticeprotected List<Document>_specificationHandler specification document listprotected Agent_vendorHandler vendorprotected PrintWriter_writerWriter for doing outputstatic HandlerBase.SynchronizedDateFormatdateA DateFormat for representing a Date in yyyy-MM-dd (e.g., 2003-07-31) format.static HandlerBase.SynchronizedDateFormatdateTimeA DateFormat for representing a Date in yyyy-MM-dd HH:mm:ss z (e.g., 2003-07-31 15:31:12 EDT) format.static HandlerBase.SynchronizedDateFormatiso8601A DateFormat for representing a Date in ISO 8601 (e.g., 2003-07-31T15:31:12-0400) format.
-
Constructor Summary
Constructors Modifier Constructor Description protectedHandlerBase(String name, String release, int[] date, String note, String rights)Constructors of all subclasses of HandlerBase should call this as asuperconstructor.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidanalyze(RepInfo info)Callback allowing post-parse, pre-show analysis of object representation information.voidapplyDefaultParams()Applies the default parameters.voidclose()Close the writer after all output has been done.protected static Stringdoctype(String root, String uri)Return the XML DOCTYPE instruction.protected static Stringdoctype(String root, String name, String uri)Return the XML DOCTYPE instruction.protected static StringdoubleArray(double[] darray)Return String representation of an array of double.protected static Stringelement(String tag)Returns, as a String, an empty XML.protected static Stringelement(String tag, String content)Returns, as a String, an XML element with a given tag and contentprotected static Stringelement(String tag, String[][] attrs)Returns, as a String, an XML element with a given tag and attributesprotected static Stringelement(String tag, String[][] attrs, String content)Returns, as a String, an XML element with a given tag, content and attributesprotected static StringelementEnd(String tag)Returns, as a String, the closing tag of an element.protected static StringelementStart(String tag)Returns, as a String, the opening tag of an element.protected static StringelementStart(String tag, String[][] attrs)Returns, as a String, the opening tag of an element with specified attributes.voidendDirectory()Callback indicating a directory is finished being processed.DategetDate()Return the last modification date of this OutputHandler, as a Java Date objectStringgetEncoding()Returns this handler's encoding.protected static StringgetIndent(int level)Returns a String containing a number of spaces equal to the current indent level.StringgetName()Return the OutputHandler nameStringgetNote()Return the OutputHandler noteStringgetRelease()Return the release identifierStringgetRights()Return the copyright information stringList<Document>getSpecification()Returns a list ofDocumentobjects (one for each specification document).AgentgetVendor()Return the vendor informationvoidinit(String init)Per-instantiation initialization.protected static StringintegerArray(int[] iarray)Return String representation of an integer array.protected static StringintegerArray(int[] iarray, char separator)Return String representation of an integer array with specified separator.protected static StringlongArray(long[] larray)Return String representation of an array of long with space separator.booleanokToProcess(String filepath)Callback to give the handler the opportunity to decide whether or not to process a file.voidparam(String param)Per-action initialization.protected static StringrationalArray(Rational[] rarray)Return String representation of an array of Rational, each evaluated as a double, with space separator.protected static StringrationalArray10(Rational[] rarray)Return String representation of an array of Rational, each as two integers, with space separator.voidreset()Reset the handler.voidresetParams()Reset parameter settings.voidsetApp(App app)Pass the associated App object to this Module.voidsetBase(JhoveBase je)Assigns the JHOVE engine object to provide services to this handlervoidsetDefaultParams(List<String> params)Set a a List of default parameters for the module.voidsetEncoding(String encoding)Assigns the encoding to be used by this OutputHandlervoidsetWriter(PrintWriter writer)Assigns a PrintWriter to do output for this OutputHandlerabstract voidshow()Outputs minimal information about the applicationabstract voidshow(App app)Outputs detailed information about the application, including configuration, available modules and handlers, etc.abstract voidshow(Module module)Outputs information about a Moduleabstract voidshow(OutputHandler handler)Outputs information about the OutputHandler specified in the parameterabstract voidshow(RepInfo info)Outputs the information contained in a RepInfo objectabstract voidshowFooter()Do the final output.abstract voidshowHeader()Do the initial output.voidstartDirectory(String directory)Callback indicating a new directory is being processed.protected StringtoDateTime(Date date)protected static StringxmlDecl()Return a canonical XML declaration with default encoding.protected static StringxmlDecl(String encoding)Return a canonical XML declaration with specified encoding.
-
-
-
Field Detail
-
date
public static HandlerBase.SynchronizedDateFormat date
A DateFormat for representing a Date in yyyy-MM-dd (e.g., 2003-07-31) format.
-
dateTime
public static HandlerBase.SynchronizedDateFormat dateTime
A DateFormat for representing a Date in yyyy-MM-dd HH:mm:ss z (e.g., 2003-07-31 15:31:12 EDT) format.
-
iso8601
public static HandlerBase.SynchronizedDateFormat iso8601
A DateFormat for representing a Date in ISO 8601 (e.g., 2003-07-31T15:31:12-0400) format. We subclass SimpleDateFormat to make it thread-safe.
-
_app
protected App _app
The application object
-
_base
protected JhoveBase _base
The Jhove engine
-
_date
protected Date _date
Handler last modification date
-
_encoding
protected String _encoding
Character encoding for writer
-
_init
protected String _init
Initialization value.
-
_je
protected JhoveBase _je
JHOVE engine.
-
_level
protected int _level
Indentation level
-
_name
protected String _name
Handler name
-
_note
protected String _note
Handler note
-
_release
protected String _release
Handler release description.
-
_param
protected String _param
Handler-specific parameter.
-
_rights
protected String _rights
Copyright notice
-
_vendor
protected Agent _vendor
Handler vendor
-
_writer
protected PrintWriter _writer
Writer for doing output
-
_logger
protected Logger _logger
Logger for a handler class.
-
-
Constructor Detail
-
HandlerBase
protected HandlerBase(String name, String release, int[] date, String note, String rights)
Constructors of all subclasses of HandlerBase should call this as asuperconstructor.- Parameters:
name- Name of the handlerrelease- Release identifierdate- Last modification date of the handler code, in the form of an array of three numbers.date[0]is the year,date[1]the month, anddate[2]the day.note- Additional information about the handler (may be null)rights- Copyright notice for the handler
-
-
Method Detail
-
reset
public void reset()
Reset the handler. This needs to be called before each invocation.- Specified by:
resetin interfaceOutputHandler
-
setDefaultParams
public void setDefaultParams(List<String> params)
Set a a List of default parameters for the module.- Specified by:
setDefaultParamsin interfaceOutputHandler- Parameters:
params- A List whose elements are Strings. May be empty.
-
applyDefaultParams
public void applyDefaultParams()
Applies the default parameters. Calling this clears any prior parameters.- Specified by:
applyDefaultParamsin interfaceOutputHandler
-
resetParams
public void resetParams()
Reset parameter settings. Returns to a default state without any parameters. The default method clears the saved parameter.- Specified by:
resetParamsin interfaceOutputHandler
-
init
public void init(String init)
Per-instantiation initialization. The default method does nothing.- Specified by:
initin interfaceOutputHandler- Parameters:
init- Initialization parameter. This is typically obtained from the configuration file.
-
param
public void param(String param)
Per-action initialization. The default method does nothing.- Specified by:
paramin interfaceOutputHandler- Parameters:
param- Initialization parameter.
-
getDate
public final Date getDate()
Return the last modification date of this OutputHandler, as a Java Date object- Specified by:
getDatein interfaceOutputHandler
-
getName
public final String getName()
Return the OutputHandler name- Specified by:
getNamein interfaceOutputHandler
-
getNote
public final String getNote()
Return the OutputHandler note- Specified by:
getNotein interfaceOutputHandler
-
getRelease
public final String getRelease()
Return the release identifier- Specified by:
getReleasein interfaceOutputHandler
-
getRights
public final String getRights()
Return the copyright information string- Specified by:
getRightsin interfaceOutputHandler
-
getSpecification
public final List<Document> getSpecification()
Returns a list ofDocumentobjects (one for each specification document). The specification list is generated by the OutputHandler, and specifications cannot be added by callers.- Specified by:
getSpecificationin interfaceOutputHandler- See Also:
Document
-
getVendor
public final Agent getVendor()
Return the vendor information- Specified by:
getVendorin interfaceOutputHandler
-
getEncoding
public String getEncoding()
Returns this handler's encoding.- Specified by:
getEncodingin interfaceOutputHandler
-
setApp
public final void setApp(App app)
Pass the associated App object to this Module. The App makes various services available.- Specified by:
setAppin interfaceOutputHandler
-
setBase
public final void setBase(JhoveBase je)
Assigns the JHOVE engine object to provide services to this handler- Specified by:
setBasein interfaceOutputHandler
-
setEncoding
public void setEncoding(String encoding)
Assigns the encoding to be used by this OutputHandler- Specified by:
setEncodingin interfaceOutputHandler
-
setWriter
public final void setWriter(PrintWriter writer)
Assigns a PrintWriter to do output for this OutputHandler- Specified by:
setWriterin interfaceOutputHandler
-
analyze
public void analyze(RepInfo info)
Callback allowing post-parse, pre-show analysis of object representation information.- Specified by:
analyzein interfaceOutputHandler- Parameters:
info- Object representation information
-
endDirectory
public void endDirectory()
Callback indicating a directory is finished being processed.- Specified by:
endDirectoryin interfaceOutputHandler
-
okToProcess
public boolean okToProcess(String filepath)
Callback to give the handler the opportunity to decide whether or not to process a file. Most handlers will always return true.- Specified by:
okToProcessin interfaceOutputHandler- Parameters:
filepath- File pathname
-
show
public abstract void show(Module module)
Outputs information about a Module- Specified by:
showin interfaceOutputHandler
-
show
public abstract void show(RepInfo info)
Outputs the information contained in a RepInfo object- Specified by:
showin interfaceOutputHandler
-
show
public abstract void show(OutputHandler handler)
Outputs information about the OutputHandler specified in the parameter- Specified by:
showin interfaceOutputHandler
-
show
public abstract void show()
Outputs minimal information about the application- Specified by:
showin interfaceOutputHandler
-
show
public abstract void show(App app)
Outputs detailed information about the application, including configuration, available modules and handlers, etc.- Specified by:
showin interfaceOutputHandler
-
showHeader
public abstract void showHeader()
Do the initial output. This should be in a suitable format for including multiple files between the header and the footer.- Specified by:
showHeaderin interfaceOutputHandler
-
showFooter
public abstract void showFooter()
Do the final output. This should be in a suitable format for including multiple files between the header and the footer.- Specified by:
showFooterin interfaceOutputHandler
-
close
public void close()
Close the writer after all output has been done.- Specified by:
closein interfaceOutputHandler
-
startDirectory
public void startDirectory(String directory)
Callback indicating a new directory is being processed.- Specified by:
startDirectoryin interfaceOutputHandler- Parameters:
directory- Directory path
-
doctype
protected static String doctype(String root, String uri)
Return the XML DOCTYPE instruction.- Parameters:
root- Root element of the DTDuri- URI of the DTD
-
doctype
protected static String doctype(String root, String name, String uri)
Return the XML DOCTYPE instruction.- Parameters:
root- Root element of the DTDname- Public name of the DTDuri- URI of the DTD
-
element
protected static String element(String tag)
Returns, as a String, an empty XML.- Parameters:
tag- XML tag
-
element
protected static String element(String tag, String content)
Returns, as a String, an XML element with a given tag and content- Parameters:
tag- An XML tagcontent- Content string. Characters requiring conversion to entitites will be converted.
-
element
protected static String element(String tag, String[][] attrs)
Returns, as a String, an XML element with a given tag and attributes- Parameters:
tag- An XML tagattrs- An array of String[2] elements, where for each element, attrs[i][0] is the attribute key and attrs[i][1] is the attribute value. Null values are skipped.
-
element
protected static String element(String tag, String[][] attrs, String content)
Returns, as a String, an XML element with a given tag, content and attributes- Parameters:
tag- An XML tagcontent- Content string. Characters requiring conversion to entitites will be converted.attrs- An array of String[2] elements, where for each element, attrs[i][0] is the attribute key and attrs[i][1] is the attribute value. Null values are skipped.
-
elementEnd
protected static String elementEnd(String tag)
Returns, as a String, the closing tag of an element. No checking is done that opening and closing tags match.- Parameters:
tag- An XML tag
-
elementStart
protected static String elementStart(String tag)
Returns, as a String, the opening tag of an element.- Parameters:
tag- An XML tag
-
elementStart
protected static String elementStart(String tag, String[][] attrs)
Returns, as a String, the opening tag of an element with specified attributes.- Parameters:
tag- An XML tagattrs- An array of String[2] elements, where for each element, attrs[i][0] is the attribute key and attrs[i][1] is the attribute value.
-
xmlDecl
protected static String xmlDecl()
Return a canonical XML declaration with default encoding.
-
xmlDecl
protected static String xmlDecl(String encoding)
Return a canonical XML declaration with specified encoding.
-
getIndent
protected static String getIndent(int level)
Returns a String containing a number of spaces equal to the current indent level.
-
integerArray
protected static String integerArray(int[] iarray)
Return String representation of an integer array.
-
integerArray
protected static String integerArray(int[] iarray, char separator)
Return String representation of an integer array with specified separator.
-
longArray
protected static String longArray(long[] larray)
Return String representation of an array of long with space separator.
-
rationalArray
protected static String rationalArray(Rational[] rarray)
Return String representation of an array of Rational, each evaluated as a double, with space separator.
-
rationalArray10
protected static String rationalArray10(Rational[] rarray)
Return String representation of an array of Rational, each as two integers, with space separator.
-
doubleArray
protected static String doubleArray(double[] darray)
Return String representation of an array of double.
-
-