edu.ucsb.nceas.metacat

## Class MetacatHandler

- java.lang.Object
- - edu.ucsb.nceas.metacat.MetacatHandler

-     public class MetacatHandler
      extends java.lang.Object

  General entry point for the Metacat server which is called from various mechanisms such as the standard MetacatServlet class and the various web service servlets such as RestServlet class. All application logic should be encapsulated in this class, and the calling classes should only contain parameter marshaling and demarshaling code, delegating all else to this MetacatHandler instance.
  Author:
    Matthew Jones

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `FGDCDOCTYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MetacatHandler()` Default constructor.
    `MetacatHandler(java.util.Timer timer)` Constructor with a timer object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `handleBuildIndexAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groups)` Rebuild the index for one or more documents.
    `protected void` | `handleDataquery(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String sessionId)`
    `void` | `handleDeleteAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups)` Handle the database delete request and delete an XML document from the database connection
    `protected void` | `handleEditCart(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String sessionId)`
    `protected void` | `handleExportAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups, java.lang.String passWord)` Handle the "export" request of data package from Metacat in zip format
    `protected void` | `handleGetAccessControlAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groupnames)` Handle "getaccesscontrol" action.
    `void` | `handleGetAllDocidsAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Handle the "getalldocids" action.
    `protected void` | `handleGetDocid(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Look up the pid (guid)-to-docid mapping.
    `protected void` | `handleGetDoctypesAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Handle "getdoctypes" action.
    `protected void` | `handleGetDTDSchemaAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Handle the "getdtdschema" action.
    `protected void` | `handleGetLogAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groups, java.lang.String sessionId)` Print a report from the event log based on filter parameters passed in from the web.
    `void` | `handleGetMaxDocidAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Handle the "getlastdocid" action.
    `protected void` | `handleGetPrincipalsAction(java.io.Writer out, java.lang.String user, java.lang.String password)` Handle the "getprincipals" action.
    `protected void` | `handleGetRevisionAndDocTypeAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params)` Handle "getrevsionanddoctype" action Given a docid, return it's current revision and doctype from data base The output is String look like "rev;doctype"
    `void` | `handleIdIsRegisteredAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response)` Check if the document is registered in either the xml_documents or xml_revisions table
    `java.lang.String` | `handleInsertOrUpdateAction(java.lang.String ipAddress, java.lang.String userAgent, javax.servlet.http.HttpServletResponse response, java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, java.lang.String user, java.lang.String[] groups, boolean generateSystemMetadata, boolean writeAccessRules, byte[] xmlBytes, java.lang.String formatId, org.dataone.service.types.v1.Checksum checksum, java.io.File objectFile)` Handle the database putdocument request and write an XML document to the database connection
    `void` | `handleLoginAction(java.io.Writer out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Handle the login request.
    `void` | `handleLogoutAction(java.io.Writer out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Handle the logout request.
    `protected void` | `handleMultipartForm(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)` Handle documents passed to metacat that are encoded using the "multipart/form-data" mime type.
    `protected void` | `handleQuery(java.io.Writer out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups, java.lang.String sessionid)` Create the xml query, execute it and display the results.
    `void` | `handleReadAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String passWord, java.lang.String[] groups)` Handle the "read" request of metadata/data files from Metacat or any files from Internet; transformed metadata XML document into HTML presentation if requested; zip files when more than one were requested.
    `protected void` | `handleReadInlineDataAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String passWord, java.lang.String[] groups)` In eml2 document, the xml can have inline data and data was stripped off and store in file system.
    `protected void` | `handleReindexAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groups)` Rebuild the index for one or more documents.
    `protected void` | `handleReindexAllAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groups)` Rebuild the index for all documents in the systemMetadata table.
    `protected void` | `handleSetAccessAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, java.lang.String username, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)`
    `protected void` | `handleSpatialQuery(java.io.Writer out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String username, java.lang.String[] groupnames, java.lang.String sess_id)` handles all spatial queries -- these queries may include any of the queries supported by the WFS / WMS standards handleSQuery(out, params, response, username, groupnames, sess_id);
    `protected void` | `handleSQuery(java.io.Writer out, java.util.Hashtable<java.lang.String,java.lang.String[]> params, javax.servlet.http.HttpServletResponse response, java.lang.String user, java.lang.String[] groups, java.lang.String sessionid)` Retrieve the squery xml, execute it and display it
    `protected void` | `handleValidateAction(java.io.PrintWriter out, java.util.Hashtable<java.lang.String,java.lang.String[]> params)` Handle the validation request and return the results to the requestor
    `MetacatResultSet` | `query(java.lang.String metacatUrl, java.util.Hashtable<java.lang.String,java.lang.String[]> params, java.lang.String username, java.lang.String[] groups, java.lang.String sessionid)`
    `static java.io.InputStream` | `read(java.lang.String docid)` Read a document from metacat and return the InputStream.
    `static java.io.InputStream` | `read(java.lang.String docid, java.lang.String dataType)` Read a document from metacat and return the InputStream.
    `void` | `readFromMetacat(java.lang.String ipAddress, java.lang.String userAgent, javax.servlet.http.HttpServletResponse response, java.io.OutputStream out, java.lang.String docid, java.lang.String qformat, java.lang.String user, java.lang.String[] groups, boolean withInlineData, java.util.Hashtable<java.lang.String,java.lang.String[]> params)` read metadata or data from Metacat
    `protected void` | `scheduleSitemapGeneration()` Schedule the sitemap generator to run periodically and update all of the sitemap files for search indexing engines
    `void` | `set_sitemapScheduled(boolean sitemapScheduled)`
    `void` | `setAccess(java.lang.String metacatUrl, java.lang.String username, java.lang.String docid, java.lang.String principal, java.lang.String permission, java.lang.String permissionType, java.lang.String permissionOrder)` set the access permissions on the document specified

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### FGDCDOCTYPE

          public static final java.lang.String FGDCDOCTYPE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### MetacatHandler

          public MetacatHandler(java.util.Timer timer)

      Constructor with a timer object. This constructor will be used in the MetacatServlet class which is the only place to handle the site map generation.
      Parameters:
        `timer` - the timer used to schedule the site map generation

    - #### MetacatHandler

          public MetacatHandler()

      Default constructor. It will be used in the DataONE API, which doesn't need to handle the timer.

  - ### Method Detail

    - #### handleDataquery

          protected void handleDataquery(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                         javax.servlet.http.HttpServletResponse response,
                                         java.lang.String sessionId)
                                  throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                         java.io.IOException

      Throws:
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`
        `java.io.IOException`

    - #### handleEditCart

          protected void handleEditCart(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                        javax.servlet.http.HttpServletResponse response,
                                        java.lang.String sessionId)
                                 throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                        java.io.IOException

      Throws:
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`
        `java.io.IOException`

    - #### handleSpatialQuery

          protected void handleSpatialQuery(java.io.Writer out,
                                            java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                            javax.servlet.http.HttpServletResponse response,
                                            java.lang.String username,
                                            java.lang.String[] groupnames,
                                            java.lang.String sess_id)
                                     throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                            HandlerException

      handles all spatial queries -- these queries may include any of the queries supported by the WFS / WMS standards handleSQuery(out, params, response, username, groupnames, sess_id);
      Throws:
        `HandlerException`
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`

    - #### handleLoginAction

          public void handleLoginAction(java.io.Writer out,
                                        java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                        javax.servlet.http.HttpServletRequest request,
                                        javax.servlet.http.HttpServletResponse response)
                                 throws java.io.IOException

      Handle the login request. Create a new session object. Do user authentication through the session.
      Throws:
        `java.io.IOException`

    - #### handleLogoutAction

          public void handleLogoutAction(java.io.Writer out,
                                         java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                         javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response)
                                  throws java.io.IOException

      Handle the logout request. Close the connection.
      Throws:
        `java.io.IOException`

    - #### handleSQuery

          protected void handleSQuery(java.io.Writer out,
                                      java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                      javax.servlet.http.HttpServletResponse response,
                                      java.lang.String user,
                                      java.lang.String[] groups,
                                      java.lang.String sessionid)
                               throws edu.ucsb.nceas.utilities.PropertyNotFoundException

      Retrieve the squery xml, execute it and display it
      Parameters:
        `out` - the output stream to the client
        `params` - the Hashtable of parameters that should be included in the squery.
        `response` - the response object linked to the client
        `user` - the user name (it maybe different to the one in param)
        `groups` - the group array
        `sessionid` - the sessionid
      Throws:
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`

    - #### handleQuery

          protected void handleQuery(java.io.Writer out,
                                     java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                     javax.servlet.http.HttpServletResponse response,
                                     java.lang.String user,
                                     java.lang.String[] groups,
                                     java.lang.String sessionid)
                              throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                     java.io.UnsupportedEncodingException,
                                     java.io.IOException

      Create the xml query, execute it and display the results.
      Parameters:
        `out` - the output stream to the client
        `params` - the Hashtable of parameters that should be included in the squery.
        `response` - the response object linked to the client
      Throws:
        `java.io.IOException`
        `java.io.UnsupportedEncodingException`
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`

    - #### handleExportAction

          protected void handleExportAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                            javax.servlet.http.HttpServletResponse response,
                                            java.lang.String user,
                                            java.lang.String[] groups,
                                            java.lang.String passWord)

      Handle the "export" request of data package from Metacat in zip format
      Parameters:
        `params` - the Hashtable of HTTP request parameters
        `response` - the HTTP response object linked to the client
        `user` - the username sent the request
        `groups` - the user's groupnames

    - #### handleReadInlineDataAction

          protected void handleReadInlineDataAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                    javax.servlet.http.HttpServletRequest request,
                                                    javax.servlet.http.HttpServletResponse response,
                                                    java.lang.String user,
                                                    java.lang.String passWord,
                                                    java.lang.String[] groups)

      In eml2 document, the xml can have inline data and data was stripped off and store in file system. This action can be used to read inline data only
      Parameters:
        `params` - the Hashtable of HTTP request parameters
        `response` - the HTTP response object linked to the client
        `user` - the username sent the request
        `groups` - the user's groupnames

    - #### handleReadAction

          public void handleReadAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                       javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response,
                                       java.lang.String user,
                                       java.lang.String passWord,
                                       java.lang.String[] groups)

      Handle the "read" request of metadata/data files from Metacat or any files from Internet; transformed metadata XML document into HTML presentation if requested; zip files when more than one were requested.
      Parameters:
        `params` - the Hashtable of HTTP request parameters
        `request` - the HTTP request object linked to the client
        `response` - the HTTP response object linked to the client
        `user` - the username sent the request
        `groups` - the user's groupnames

    - #### query

          public MetacatResultSet query(java.lang.String metacatUrl,
                                        java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                        java.lang.String username,
                                        java.lang.String[] groups,
                                        java.lang.String sessionid)
                                 throws java.lang.Exception

      Returns:
      Throws:
        `java.lang.Exception`

    - #### setAccess

          public void setAccess(java.lang.String metacatUrl,
                                java.lang.String username,
                                java.lang.String docid,
                                java.lang.String principal,
                                java.lang.String permission,
                                java.lang.String permissionType,
                                java.lang.String permissionOrder)
                         throws java.lang.Exception

      set the access permissions on the document specified
      Throws:
        `java.lang.Exception`

    - #### read

          public static java.io.InputStream read(java.lang.String docid)
                                          throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                                 java.lang.ClassNotFoundException,
                                                 edu.ucsb.nceas.utilities.ParseLSIDException,
                                                 McdbException,
                                                 java.sql.SQLException,
                                                 java.io.IOException

      Read a document from metacat and return the InputStream. The dataType will be null.
      Parameters:
        `docid` - - the metacat docid to read
      Returns:
        the document as an input stream
      Throws:
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`
        `java.lang.ClassNotFoundException`
        `edu.ucsb.nceas.utilities.ParseLSIDException`
        `McdbException`
        `java.sql.SQLException`
        `java.io.IOException`

    - #### read

          public static java.io.InputStream read(java.lang.String docid,
                                                 java.lang.String dataType)
                                          throws edu.ucsb.nceas.utilities.ParseLSIDException,
                                                 edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                                 McdbException,
                                                 java.sql.SQLException,
                                                 java.lang.ClassNotFoundException,
                                                 java.io.IOException

      Read a document from metacat and return the InputStream. The XML or data document should be on disk, but if not, read from the metacat database.
      Parameters:
        `docid` - - the metacat docid to read
        `dataType` - - the type of the object associated with docid
      Returns:
        objectStream - the document as an InputStream
      Throws:
        `InsufficientKarmaException`
        `edu.ucsb.nceas.utilities.ParseLSIDException`
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`
        `McdbException`
        `java.sql.SQLException`
        `java.lang.ClassNotFoundException`
        `java.io.IOException`

    - #### readFromMetacat

          public void readFromMetacat(java.lang.String ipAddress,
                                      java.lang.String userAgent,
                                      javax.servlet.http.HttpServletResponse response,
                                      java.io.OutputStream out,
                                      java.lang.String docid,
                                      java.lang.String qformat,
                                      java.lang.String user,
                                      java.lang.String[] groups,
                                      boolean withInlineData,
                                      java.util.Hashtable<java.lang.String,java.lang.String[]> params)
                               throws java.lang.ClassNotFoundException,
                                      java.io.IOException,
                                      java.sql.SQLException,
                                      McdbException,
                                      edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                      edu.ucsb.nceas.utilities.ParseLSIDException,
                                      InsufficientKarmaException

      read metadata or data from Metacat
      Parameters:
        `userAgent` -
      Throws:
        `edu.ucsb.nceas.utilities.PropertyNotFoundException`
        `edu.ucsb.nceas.utilities.ParseLSIDException`
        `InsufficientKarmaException`
        `java.lang.ClassNotFoundException`
        `java.io.IOException`
        `java.sql.SQLException`
        `McdbException`

    - #### handleInsertOrUpdateAction

          public java.lang.String handleInsertOrUpdateAction(java.lang.String ipAddress,
                                                             java.lang.String userAgent,
                                                             javax.servlet.http.HttpServletResponse response,
                                                             java.io.PrintWriter out,
                                                             java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                             java.lang.String user,
                                                             java.lang.String[] groups,
                                                             boolean generateSystemMetadata,
                                                             boolean writeAccessRules,
                                                             byte[] xmlBytes,
                                                             java.lang.String formatId,
                                                             org.dataone.service.types.v1.Checksum checksum,
                                                             java.io.File objectFile)

      Handle the database putdocument request and write an XML document to the database connection
      Parameters:
        `userAgent` -
        `generateSystemMetadata` -

    - #### handleDeleteAction

          public void handleDeleteAction(java.io.PrintWriter out,
                                         java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                         javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         java.lang.String user,
                                         java.lang.String[] groups)

      Handle the database delete request and delete an XML document from the database connection

    - #### handleValidateAction

          protected void handleValidateAction(java.io.PrintWriter out,
                                              java.util.Hashtable<java.lang.String,java.lang.String[]> params)

      Handle the validation request and return the results to the requestor

    - #### handleGetDocid

          protected void handleGetDocid(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                        javax.servlet.http.HttpServletResponse response)
                                 throws java.io.IOException

      Look up the pid (guid)-to-docid mapping. Returns XML on the response, e.g.: sample.1.1
      Parameters:
        `params` -
        `response` -
      Throws:
        `java.io.IOException`

    - #### handleGetRevisionAndDocTypeAction

          protected void handleGetRevisionAndDocTypeAction(java.io.PrintWriter out,
                                                           java.util.Hashtable<java.lang.String,java.lang.String[]> params)

      Handle "getrevsionanddoctype" action Given a docid, return it's current revision and doctype from data base The output is String look like "rev;doctype"

    - #### handleGetAccessControlAction

          protected void handleGetAccessControlAction(java.io.PrintWriter out,
                                                      java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                      javax.servlet.http.HttpServletResponse response,
                                                      java.lang.String username,
                                                      java.lang.String[] groupnames)

      Handle "getaccesscontrol" action. Read Access Control List from db connection in XML format

    - #### handleGetPrincipalsAction

          protected void handleGetPrincipalsAction(java.io.Writer out,
                                                   java.lang.String user,
                                                   java.lang.String password)
                                            throws java.io.IOException

      Handle the "getprincipals" action. Read all principals from authentication scheme in XML format
      Throws:
        `java.io.IOException`

    - #### handleGetDoctypesAction

          protected void handleGetDoctypesAction(java.io.PrintWriter out,
                                                 java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                 javax.servlet.http.HttpServletResponse response)

      Handle "getdoctypes" action. Read all doctypes from db connection in XML format

    - #### handleGetDTDSchemaAction

          protected void handleGetDTDSchemaAction(java.io.PrintWriter out,
                                                  java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                  javax.servlet.http.HttpServletResponse response)

      Handle the "getdtdschema" action. Read DTD or Schema file for a given doctype from Metacat catalog system

    - #### handleIdIsRegisteredAction

          public void handleIdIsRegisteredAction(java.io.PrintWriter out,
                                                 java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                 javax.servlet.http.HttpServletResponse response)

      Check if the document is registered in either the xml_documents or xml_revisions table
      Parameters:
        `out` - the writer to write the xml results to
        `params` - request parameters
        `response` - the http servlet response

    - #### handleGetAllDocidsAction

          public void handleGetAllDocidsAction(java.io.PrintWriter out,
                                               java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                               javax.servlet.http.HttpServletResponse response)

      Handle the "getalldocids" action. return a list of all docids registered in the system

    - #### handleGetMaxDocidAction

          public void handleGetMaxDocidAction(java.io.PrintWriter out,
                                              java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                              javax.servlet.http.HttpServletResponse response)

      Handle the "getlastdocid" action. Get the latest docid with rev number from db connection in XML format

    - #### handleGetLogAction

          protected void handleGetLogAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                            javax.servlet.http.HttpServletRequest request,
                                            javax.servlet.http.HttpServletResponse response,
                                            java.lang.String username,
                                            java.lang.String[] groups,
                                            java.lang.String sessionId)

      Print a report from the event log based on filter parameters passed in from the web.
      Parameters:
        `params` - the parameters from the web request
        `request` - the http request object for getting request details
        `response` - the http response object for writing output

    - #### handleBuildIndexAction

          protected void handleBuildIndexAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                javax.servlet.http.HttpServletRequest request,
                                                javax.servlet.http.HttpServletResponse response,
                                                java.lang.String username,
                                                java.lang.String[] groups)

      Rebuild the index for one or more documents. If the docid parameter is provided, rebuild for just that one document or list of documents. If not, then rebuild the index for all documents in the xml_documents table.
      Parameters:
        `params` - the parameters from the web request
        `request` - the http request object for getting request details
        `response` - the http response object for writing output
        `username` - the username of the authenticated user

    - #### handleReindexAction

          protected void handleReindexAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                             javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response,
                                             java.lang.String username,
                                             java.lang.String[] groups)

      Rebuild the index for one or more documents. If the "pid" parameter is provided, rebuild for just that one document (or list of documents). If not, an error message will be returned.
      Parameters:
        `params` - the parameters from the web request
        `request` - the http request object for getting request details
        `response` - the http response object for writing output
        `username` - the username of the authenticated user

    - #### handleReindexAllAction

          protected void handleReindexAllAction(java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                                javax.servlet.http.HttpServletRequest request,
                                                javax.servlet.http.HttpServletResponse response,
                                                java.lang.String username,
                                                java.lang.String[] groups)

      Rebuild the index for all documents in the systemMetadata table.
      Parameters:
        `params` - the parameters from the web request
        `request` - the http request object for getting request details
        `response` - the http response object for writing output
        `username` - the username of the authenticated user

    - #### handleMultipartForm

          protected void handleMultipartForm(javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response)

      Handle documents passed to metacat that are encoded using the "multipart/form-data" mime type. This is typically used for uploading data files which may be binary and large.

    - #### handleSetAccessAction

          protected void handleSetAccessAction(java.io.PrintWriter out,
                                               java.util.Hashtable<java.lang.String,java.lang.String[]> params,
                                               java.lang.String username,
                                               javax.servlet.http.HttpServletRequest request,
                                               javax.servlet.http.HttpServletResponse response)

    - #### scheduleSitemapGeneration

          protected void scheduleSitemapGeneration()

      Schedule the sitemap generator to run periodically and update all of the sitemap files for search indexing engines

    - #### set_sitemapScheduled

          public void set_sitemapScheduled(boolean sitemapScheduled)

      Parameters:
        `sitemapScheduled` - toggle the _sitemapScheduled flag

Copyright © 2023 Regents of the University of California. All Rights Reserved.