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.
  • Field Details

    • 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.
    • _defaultParams

      protected List<String> _defaultParams
      List of default parameters.
    • _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
    • _specification

      protected List<Document> _specification
      Handler specification document list
    • _vendor

      protected Agent _vendor
      Handler vendor
    • _writer

      protected PrintWriter _writer
      Writer for doing output
    • _logger

      protected Logger _logger
      Logger for a handler class.
  • Constructor Details

    • HandlerBase

      protected HandlerBase(String name, String release, int[] date, String note, String rights)
      Constructors of all subclasses of HandlerBase should call this as a super constructor.
      Parameters:
      name - Name of the handler
      release - Release identifier
      date - 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, and date[2] the day.
      note - Additional information about the handler (may be null)
      rights - Copyright notice for the handler
  • Method Details

    • reset

      public void reset()
      Reset the handler. This needs to be called before each invocation.
      Specified by:
      reset in interface OutputHandler
    • setDefaultParams

      public void setDefaultParams(List<String> params)
      Set a a List of default parameters for the module.
      Specified by:
      setDefaultParams in interface OutputHandler
      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:
      applyDefaultParams in interface OutputHandler
    • resetParams

      public void resetParams()
      Reset parameter settings. Returns to a default state without any parameters. The default method clears the saved parameter.
      Specified by:
      resetParams in interface OutputHandler
    • init

      public void init(String init)
      Per-instantiation initialization. The default method does nothing.
      Specified by:
      init in interface OutputHandler
      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:
      param in interface OutputHandler
      Parameters:
      param - Initialization parameter.
    • getDate

      public final Date getDate()
      Return the last modification date of this OutputHandler, as a Java Date object
      Specified by:
      getDate in interface OutputHandler
    • getName

      public final String getName()
      Return the OutputHandler name
      Specified by:
      getName in interface OutputHandler
    • getNote

      public final String getNote()
      Return the OutputHandler note
      Specified by:
      getNote in interface OutputHandler
    • getRelease

      public final String getRelease()
      Return the release identifier
      Specified by:
      getRelease in interface OutputHandler
    • getRights

      public final String getRights()
      Return the copyright information string
      Specified by:
      getRights in interface OutputHandler
    • getSpecification

      public final List<Document> getSpecification()
      Returns a list of Document objects (one for each specification document). The specification list is generated by the OutputHandler, and specifications cannot be added by callers.
      Specified by:
      getSpecification in interface OutputHandler
      See Also:
    • getVendor

      public final Agent getVendor()
      Return the vendor information
      Specified by:
      getVendor in interface OutputHandler
    • getEncoding

      public String getEncoding()
      Returns this handler's encoding.
      Specified by:
      getEncoding in interface OutputHandler
    • setApp

      public final void setApp(App app)
      Pass the associated App object to this Module. The App makes various services available.
      Specified by:
      setApp in interface OutputHandler
    • setBase

      public final void setBase(JhoveBase je)
      Assigns the JHOVE engine object to provide services to this handler
      Specified by:
      setBase in interface OutputHandler
    • setEncoding

      public void setEncoding(String encoding)
      Assigns the encoding to be used by this OutputHandler
      Specified by:
      setEncoding in interface OutputHandler
    • setWriter

      public final void setWriter(PrintWriter writer)
      Assigns a PrintWriter to do output for this OutputHandler
      Specified by:
      setWriter in interface OutputHandler
    • analyze

      public void analyze(RepInfo info)
      Callback allowing post-parse, pre-show analysis of object representation information.
      Specified by:
      analyze in interface OutputHandler
      Parameters:
      info - Object representation information
    • endDirectory

      public void endDirectory()
      Callback indicating a directory is finished being processed.
      Specified by:
      endDirectory in interface OutputHandler
    • 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:
      okToProcess in interface OutputHandler
      Parameters:
      filepath - File pathname
    • show

      public abstract void show(Module module)
      Outputs information about a Module
      Specified by:
      show in interface OutputHandler
    • show

      public abstract void show(RepInfo info)
      Outputs the information contained in a RepInfo object
      Specified by:
      show in interface OutputHandler
    • show

      public abstract void show(OutputHandler handler)
      Outputs information about the OutputHandler specified in the parameter
      Specified by:
      show in interface OutputHandler
    • show

      public abstract void show()
      Outputs minimal information about the application
      Specified by:
      show in interface OutputHandler
    • show

      public abstract void show(App app)
      Outputs detailed information about the application, including configuration, available modules and handlers, etc.
      Specified by:
      show in interface OutputHandler
    • 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:
      showHeader in interface OutputHandler
    • 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:
      showFooter in interface OutputHandler
    • close

      public void close()
      Close the writer after all output has been done.
      Specified by:
      close in interface OutputHandler
    • startDirectory

      public void startDirectory(String directory)
      Callback indicating a new directory is being processed.
      Specified by:
      startDirectory in interface OutputHandler
      Parameters:
      directory - Directory path
    • doctype

      protected static String doctype(String root, String uri)
      Return the XML DOCTYPE instruction.
      Parameters:
      root - Root element of the DTD
      uri - 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 DTD
      name - Public name of the DTD
      uri - 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 tag
      content - 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 tag
      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.
    • 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 tag
      content - 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 tag
      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.
    • 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.
    • toDateTime

      protected String toDateTime(Date date)