<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_265) on Tue Aug 25 19:30:51 UTC 2020 -->
<title>MetacatHandler (MetaCat API)</title>
<meta name="date" content="2020-08-25">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="MetacatHandler (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":9,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MetacatHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/MetacatProfiler.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/MetacatHandler.html" target="_top">Frames</a></li>
<li><a href="MetacatHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">edu.ucsb.nceas.metacat</div>
<h2 title="Class MetacatHandler" class="title">Class MetacatHandler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.MetacatHandler</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">MetacatHandler</span>
extends java.lang.Object</pre>
<div class="block">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.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Matthew Jones</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#FGDCDOCTYPE">FGDCDOCTYPE</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#MetacatHandler-java.util.Timer-">MetacatHandler</a></span>(java.util.Timer&nbsp;timer)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleBuildIndexAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">handleBuildIndexAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                      javax.servlet.http.HttpServletRequest&nbsp;request,
                      javax.servlet.http.HttpServletResponse&nbsp;response,
                      java.lang.String&nbsp;username,
                      java.lang.String[]&nbsp;groups)</code>
<div class="block">Rebuild the index for one or more documents.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleDataquery-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-">handleDataquery</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
               javax.servlet.http.HttpServletResponse&nbsp;response,
               java.lang.String&nbsp;sessionId)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleDeleteAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">handleDeleteAction</a></span>(java.io.PrintWriter&nbsp;out,
                  java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                  javax.servlet.http.HttpServletRequest&nbsp;request,
                  javax.servlet.http.HttpServletResponse&nbsp;response,
                  java.lang.String&nbsp;user,
                  java.lang.String[]&nbsp;groups)</code>
<div class="block">Handle the database delete request and delete an XML document from the
 database connection</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleEditCart-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-">handleEditCart</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
              javax.servlet.http.HttpServletResponse&nbsp;response,
              java.lang.String&nbsp;sessionId)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleExportAction-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">handleExportAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                  javax.servlet.http.HttpServletResponse&nbsp;response,
                  java.lang.String&nbsp;user,
                  java.lang.String[]&nbsp;groups,
                  java.lang.String&nbsp;passWord)</code>
<div class="block">Handle the "export" request of data package from Metacat in zip format</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetAccessControlAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">handleGetAccessControlAction</a></span>(java.io.PrintWriter&nbsp;out,
                            java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                            javax.servlet.http.HttpServletResponse&nbsp;response,
                            java.lang.String&nbsp;username,
                            java.lang.String[]&nbsp;groupnames)</code>
<div class="block">Handle "getaccesscontrol" action.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetAllDocidsAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleGetAllDocidsAction</a></span>(java.io.PrintWriter&nbsp;out,
                        java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                        javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle the "getalldocids" action.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetDocid-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleGetDocid</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
              javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Look up the pid (guid)-to-docid mapping.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetDoctypesAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleGetDoctypesAction</a></span>(java.io.PrintWriter&nbsp;out,
                       java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                       javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle "getdoctypes" action.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetDTDSchemaAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleGetDTDSchemaAction</a></span>(java.io.PrintWriter&nbsp;out,
                        java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                        javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle the "getdtdschema" action.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetLogAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">handleGetLogAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                  javax.servlet.http.HttpServletRequest&nbsp;request,
                  javax.servlet.http.HttpServletResponse&nbsp;response,
                  java.lang.String&nbsp;username,
                  java.lang.String[]&nbsp;groups,
                  java.lang.String&nbsp;sessionId)</code>
<div class="block">Print a report from the event log based on filter parameters passed in
 from the web.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetMaxDocidAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleGetMaxDocidAction</a></span>(java.io.PrintWriter&nbsp;out,
                       java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                       javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle the "getlastdocid" action.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetPrincipalsAction-java.io.Writer-java.lang.String-java.lang.String-">handleGetPrincipalsAction</a></span>(java.io.Writer&nbsp;out,
                         java.lang.String&nbsp;user,
                         java.lang.String&nbsp;password)</code>
<div class="block">Handle the "getprincipals" action.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleGetRevisionAndDocTypeAction-java.io.PrintWriter-java.util.Hashtable-">handleGetRevisionAndDocTypeAction</a></span>(java.io.PrintWriter&nbsp;out,
                                 java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)</code>
<div class="block">Handle "getrevsionanddoctype" action Given a docid, return it's current
 revision and doctype from data base The output is String look like
 "rev;doctype"</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleIdIsRegisteredAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">handleIdIsRegisteredAction</a></span>(java.io.PrintWriter&nbsp;out,
                          java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                          javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Check if the document is registered in either the xml_documents or xml_revisions table</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleInsertOrUpdateAction-java.lang.String-java.lang.String-javax.servlet.http.HttpServletResponse-java.io.PrintWriter-java.util.Hashtable-java.lang.String-java.lang.String:A-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">handleInsertOrUpdateAction</a></span>(java.lang.String&nbsp;ipAddress,
                          java.lang.String&nbsp;userAgent,
                          javax.servlet.http.HttpServletResponse&nbsp;response,
                          java.io.PrintWriter&nbsp;out,
                          java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                          java.lang.String&nbsp;user,
                          java.lang.String[]&nbsp;groups,
                          boolean&nbsp;generateSystemMetadata,
                          boolean&nbsp;writeAccessRules,
                          byte[]&nbsp;xmlBytes,
                          java.lang.String&nbsp;formatId,
                          org.dataone.service.types.v1.Checksum&nbsp;checksum)</code>
<div class="block">Handle the database putdocument request and write an XML document to the
 database connection</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleLoginAction-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleLoginAction</a></span>(java.io.Writer&nbsp;out,
                 java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                 javax.servlet.http.HttpServletRequest&nbsp;request,
                 javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle the login request.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleLogoutAction-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleLogoutAction</a></span>(java.io.Writer&nbsp;out,
                  java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                  javax.servlet.http.HttpServletRequest&nbsp;request,
                  javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle the logout request.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleMultipartForm-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleMultipartForm</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
                   javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Handle documents passed to metacat that are encoded using the
 "multipart/form-data" mime type.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">handleQuery</a></span>(java.io.Writer&nbsp;out,
           java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
           javax.servlet.http.HttpServletResponse&nbsp;response,
           java.lang.String&nbsp;user,
           java.lang.String[]&nbsp;groups,
           java.lang.String&nbsp;sessionid)</code>
<div class="block">Create the xml query, execute it and display the results.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleReadAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String-java.lang.String:A-">handleReadAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                javax.servlet.http.HttpServletRequest&nbsp;request,
                javax.servlet.http.HttpServletResponse&nbsp;response,
                java.lang.String&nbsp;user,
                java.lang.String&nbsp;passWord,
                java.lang.String[]&nbsp;groups)</code>
<div class="block">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.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleReadInlineDataAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String-java.lang.String:A-">handleReadInlineDataAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                          javax.servlet.http.HttpServletRequest&nbsp;request,
                          javax.servlet.http.HttpServletResponse&nbsp;response,
                          java.lang.String&nbsp;user,
                          java.lang.String&nbsp;passWord,
                          java.lang.String[]&nbsp;groups)</code>
<div class="block">In eml2 document, the xml can have inline data and data was stripped off
 and store in file system.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleReindexAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">handleReindexAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                   javax.servlet.http.HttpServletRequest&nbsp;request,
                   javax.servlet.http.HttpServletResponse&nbsp;response,
                   java.lang.String&nbsp;username,
                   java.lang.String[]&nbsp;groups)</code>
<div class="block">Rebuild the index for one or more documents.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleReindexAllAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">handleReindexAllAction</a></span>(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                      javax.servlet.http.HttpServletRequest&nbsp;request,
                      javax.servlet.http.HttpServletResponse&nbsp;response,
                      java.lang.String&nbsp;username,
                      java.lang.String[]&nbsp;groups)</code>
<div class="block">Rebuild the index for all documents in the systemMetadata table.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleSetAccessAction-java.io.PrintWriter-java.util.Hashtable-java.lang.String-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleSetAccessAction</a></span>(java.io.PrintWriter&nbsp;out,
                     java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                     java.lang.String&nbsp;username,
                     javax.servlet.http.HttpServletRequest&nbsp;request,
                     javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleSpatialQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">handleSpatialQuery</a></span>(java.io.Writer&nbsp;out,
                  java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                  javax.servlet.http.HttpServletResponse&nbsp;response,
                  java.lang.String&nbsp;username,
                  java.lang.String[]&nbsp;groupnames,
                  java.lang.String&nbsp;sess_id)</code>
<div class="block">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);</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleSQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">handleSQuery</a></span>(java.io.Writer&nbsp;out,
            java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
            javax.servlet.http.HttpServletResponse&nbsp;response,
            java.lang.String&nbsp;user,
            java.lang.String[]&nbsp;groups,
            java.lang.String&nbsp;sessionid)</code>
<div class="block">Retreive the squery xml, execute it and display it</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#handleValidateAction-java.io.PrintWriter-java.util.Hashtable-">handleValidateAction</a></span>(java.io.PrintWriter&nbsp;out,
                    java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)</code>
<div class="block">Handle the validation request and return the results to the requestor</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../edu/ucsb/nceas/metacat/MetacatResultSet.html" title="class in edu.ucsb.nceas.metacat">MetacatResultSet</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#query-java.lang.String-java.util.Hashtable-java.lang.String-java.lang.String:A-java.lang.String-">query</a></span>(java.lang.String&nbsp;metacatUrl,
     java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
     java.lang.String&nbsp;username,
     java.lang.String[]&nbsp;groups,
     java.lang.String&nbsp;sessionid)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#read-java.lang.String-">read</a></span>(java.lang.String&nbsp;docid)</code>
<div class="block">Read a document from metacat and return the InputStream.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#readFromMetacat-java.lang.String-java.lang.String-javax.servlet.http.HttpServletResponse-java.io.OutputStream-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-boolean-java.util.Hashtable-">readFromMetacat</a></span>(java.lang.String&nbsp;ipAddress,
               java.lang.String&nbsp;userAgent,
               javax.servlet.http.HttpServletResponse&nbsp;response,
               java.io.OutputStream&nbsp;out,
               java.lang.String&nbsp;docid,
               java.lang.String&nbsp;qformat,
               java.lang.String&nbsp;user,
               java.lang.String[]&nbsp;groups,
               boolean&nbsp;withInlineData,
               java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)</code>
<div class="block">read metadata or data from Metacat</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#scheduleSitemapGeneration-javax.servlet.http.HttpServletRequest-">scheduleSitemapGeneration</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
<div class="block">Schedule the sitemap generator to run periodically and update all
 of the sitemap files for search indexing engines.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#set_sitemapScheduled-boolean-">set_sitemapScheduled</a></span>(boolean&nbsp;sitemapScheduled)</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/MetacatHandler.html#setAccess-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">setAccess</a></span>(java.lang.String&nbsp;metacatUrl,
         java.lang.String&nbsp;username,
         java.lang.String&nbsp;docid,
         java.lang.String&nbsp;principal,
         java.lang.String&nbsp;permission,
         java.lang.String&nbsp;permissionType,
         java.lang.String&nbsp;permissionOrder)</code>
<div class="block">set the access permissions on the document specified</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="FGDCDOCTYPE">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FGDCDOCTYPE</h4>
<pre>public static final&nbsp;java.lang.String FGDCDOCTYPE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.MetacatHandler.FGDCDOCTYPE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="MetacatHandler-java.util.Timer-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MetacatHandler</h4>
<pre>public&nbsp;MetacatHandler(java.util.Timer&nbsp;timer)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="handleDataquery-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleDataquery</h4>
<pre>protected&nbsp;void&nbsp;handleDataquery(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                               javax.servlet.http.HttpServletResponse&nbsp;response,
                               java.lang.String&nbsp;sessionId)
                        throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                               java.io.IOException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleEditCart-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleEditCart</h4>
<pre>protected&nbsp;void&nbsp;handleEditCart(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                              javax.servlet.http.HttpServletResponse&nbsp;response,
                              java.lang.String&nbsp;sessionId)
                       throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                              java.io.IOException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleSpatialQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleSpatialQuery</h4>
<pre>protected&nbsp;void&nbsp;handleSpatialQuery(java.io.Writer&nbsp;out,
                                  java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                  javax.servlet.http.HttpServletResponse&nbsp;response,
                                  java.lang.String&nbsp;username,
                                  java.lang.String[]&nbsp;groupnames,
                                  java.lang.String&nbsp;sess_id)
                           throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                  <a href="../../../../edu/ucsb/nceas/metacat/shared/HandlerException.html" title="class in edu.ucsb.nceas.metacat.shared">HandlerException</a></pre>
<div class="block">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);</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/shared/HandlerException.html" title="class in edu.ucsb.nceas.metacat.shared">HandlerException</a></code></dd>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="handleLoginAction-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleLoginAction</h4>
<pre>public&nbsp;void&nbsp;handleLoginAction(java.io.Writer&nbsp;out,
                              java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                              javax.servlet.http.HttpServletRequest&nbsp;request,
                              javax.servlet.http.HttpServletResponse&nbsp;response)
                       throws java.io.IOException</pre>
<div class="block">Handle the login request. Create a new session object. Do user
 authentication through the session.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleLogoutAction-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleLogoutAction</h4>
<pre>public&nbsp;void&nbsp;handleLogoutAction(java.io.Writer&nbsp;out,
                               java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                               javax.servlet.http.HttpServletRequest&nbsp;request,
                               javax.servlet.http.HttpServletResponse&nbsp;response)
                        throws java.io.IOException</pre>
<div class="block">Handle the logout request. Close the connection.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleSQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleSQuery</h4>
<pre>protected&nbsp;void&nbsp;handleSQuery(java.io.Writer&nbsp;out,
                            java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                            javax.servlet.http.HttpServletResponse&nbsp;response,
                            java.lang.String&nbsp;user,
                            java.lang.String[]&nbsp;groups,
                            java.lang.String&nbsp;sessionid)
                     throws edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">Retreive the squery xml, execute it and display it</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the output stream to the client</dd>
<dd><code>params</code> - the Hashtable of parameters that should be included in the
            squery.</dd>
<dd><code>response</code> - the response object linked to the client</dd>
<dd><code>conn</code> - the database connection</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="handleQuery-java.io.Writer-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleQuery</h4>
<pre>protected&nbsp;void&nbsp;handleQuery(java.io.Writer&nbsp;out,
                           java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                           javax.servlet.http.HttpServletResponse&nbsp;response,
                           java.lang.String&nbsp;user,
                           java.lang.String[]&nbsp;groups,
                           java.lang.String&nbsp;sessionid)
                    throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                           java.io.UnsupportedEncodingException,
                           java.io.IOException</pre>
<div class="block">Create the xml query, execute it and display the results.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the output stream to the client</dd>
<dd><code>params</code> - the Hashtable of parameters that should be included in the
            squery.</dd>
<dd><code>response</code> - the response object linked to the client</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dd><code>java.io.UnsupportedEncodingException</code></dd>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="handleExportAction-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleExportAction</h4>
<pre>protected&nbsp;void&nbsp;handleExportAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                  javax.servlet.http.HttpServletResponse&nbsp;response,
                                  java.lang.String&nbsp;user,
                                  java.lang.String[]&nbsp;groups,
                                  java.lang.String&nbsp;passWord)</pre>
<div class="block">Handle the "export" request of data package from Metacat in zip format</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the Hashtable of HTTP request parameters</dd>
<dd><code>response</code> - the HTTP response object linked to the client</dd>
<dd><code>user</code> - the username sent the request</dd>
<dd><code>groups</code> - the user's groupnames</dd>
</dl>
</li>
</ul>
<a name="handleReadInlineDataAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleReadInlineDataAction</h4>
<pre>protected&nbsp;void&nbsp;handleReadInlineDataAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                          javax.servlet.http.HttpServletRequest&nbsp;request,
                                          javax.servlet.http.HttpServletResponse&nbsp;response,
                                          java.lang.String&nbsp;user,
                                          java.lang.String&nbsp;passWord,
                                          java.lang.String[]&nbsp;groups)</pre>
<div class="block">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</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the Hashtable of HTTP request parameters</dd>
<dd><code>response</code> - the HTTP response object linked to the client</dd>
<dd><code>user</code> - the username sent the request</dd>
<dd><code>groups</code> - the user's groupnames</dd>
</dl>
</li>
</ul>
<a name="handleReadAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleReadAction</h4>
<pre>public&nbsp;void&nbsp;handleReadAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                             javax.servlet.http.HttpServletRequest&nbsp;request,
                             javax.servlet.http.HttpServletResponse&nbsp;response,
                             java.lang.String&nbsp;user,
                             java.lang.String&nbsp;passWord,
                             java.lang.String[]&nbsp;groups)</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the Hashtable of HTTP request parameters</dd>
<dd><code>request</code> - the HTTP request object linked to the client</dd>
<dd><code>response</code> - the HTTP response object linked to the client</dd>
<dd><code>user</code> - the username sent the request</dd>
<dd><code>groups</code> - the user's groupnames</dd>
</dl>
</li>
</ul>
<a name="query-java.lang.String-java.util.Hashtable-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>query</h4>
<pre>public&nbsp;<a href="../../../../edu/ucsb/nceas/metacat/MetacatResultSet.html" title="class in edu.ucsb.nceas.metacat">MetacatResultSet</a>&nbsp;query(java.lang.String&nbsp;metacatUrl,
                              java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                              java.lang.String&nbsp;username,
                              java.lang.String[]&nbsp;groups,
                              java.lang.String&nbsp;sessionid)
                       throws java.lang.Exception</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="setAccess-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAccess</h4>
<pre>public&nbsp;void&nbsp;setAccess(java.lang.String&nbsp;metacatUrl,
                      java.lang.String&nbsp;username,
                      java.lang.String&nbsp;docid,
                      java.lang.String&nbsp;principal,
                      java.lang.String&nbsp;permission,
                      java.lang.String&nbsp;permissionType,
                      java.lang.String&nbsp;permissionOrder)
               throws java.lang.Exception</pre>
<div class="block">set the access permissions on the document specified</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="read-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre>public static&nbsp;java.io.InputStream&nbsp;read(java.lang.String&nbsp;docid)
                                throws edu.ucsb.nceas.utilities.ParseLSIDException,
                                       edu.ucsb.nceas.utilities.PropertyNotFoundException,
                                       <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a>,
                                       java.sql.SQLException,
                                       java.lang.ClassNotFoundException,
                                       java.io.IOException</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>docid</code> - - the metacat docid to read</dd>
<dd><code>username</code> - - the DN of the principal attempting the read</dd>
<dd><code>groups</code> - - the list of groups the DN belongs to as a String array</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>objectStream - the document as an InputStream</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a></code></dd>
<dd><code>edu.ucsb.nceas.utilities.ParseLSIDException</code></dd>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
<dd><code>java.sql.SQLException</code></dd>
<dd><code>java.lang.ClassNotFoundException</code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="readFromMetacat-java.lang.String-java.lang.String-javax.servlet.http.HttpServletResponse-java.io.OutputStream-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-boolean-java.util.Hashtable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFromMetacat</h4>
<pre>public&nbsp;void&nbsp;readFromMetacat(java.lang.String&nbsp;ipAddress,
                            java.lang.String&nbsp;userAgent,
                            javax.servlet.http.HttpServletResponse&nbsp;response,
                            java.io.OutputStream&nbsp;out,
                            java.lang.String&nbsp;docid,
                            java.lang.String&nbsp;qformat,
                            java.lang.String&nbsp;user,
                            java.lang.String[]&nbsp;groups,
                            boolean&nbsp;withInlineData,
                            java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)
                     throws java.lang.ClassNotFoundException,
                            java.io.IOException,
                            java.sql.SQLException,
                            <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a>,
                            edu.ucsb.nceas.utilities.PropertyNotFoundException,
                            edu.ucsb.nceas.utilities.ParseLSIDException,
                            <a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a></pre>
<div class="block">read metadata or data from Metacat</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userAgent</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
<dd><code>edu.ucsb.nceas.utilities.ParseLSIDException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a></code></dd>
<dd><code>java.lang.ClassNotFoundException</code></dd>
<dd><code>java.io.IOException</code></dd>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="handleInsertOrUpdateAction-java.lang.String-java.lang.String-javax.servlet.http.HttpServletResponse-java.io.PrintWriter-java.util.Hashtable-java.lang.String-java.lang.String:A-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleInsertOrUpdateAction</h4>
<pre>public&nbsp;java.lang.String&nbsp;handleInsertOrUpdateAction(java.lang.String&nbsp;ipAddress,
                                                   java.lang.String&nbsp;userAgent,
                                                   javax.servlet.http.HttpServletResponse&nbsp;response,
                                                   java.io.PrintWriter&nbsp;out,
                                                   java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                                   java.lang.String&nbsp;user,
                                                   java.lang.String[]&nbsp;groups,
                                                   boolean&nbsp;generateSystemMetadata,
                                                   boolean&nbsp;writeAccessRules,
                                                   byte[]&nbsp;xmlBytes,
                                                   java.lang.String&nbsp;formatId,
                                                   org.dataone.service.types.v1.Checksum&nbsp;checksum)</pre>
<div class="block">Handle the database putdocument request and write an XML document to the
 database connection</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userAgent</code> - </dd>
<dd><code>generateSystemMetadata</code> - </dd>
</dl>
</li>
</ul>
<a name="handleDeleteAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleDeleteAction</h4>
<pre>public&nbsp;void&nbsp;handleDeleteAction(java.io.PrintWriter&nbsp;out,
                               java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                               javax.servlet.http.HttpServletRequest&nbsp;request,
                               javax.servlet.http.HttpServletResponse&nbsp;response,
                               java.lang.String&nbsp;user,
                               java.lang.String[]&nbsp;groups)</pre>
<div class="block">Handle the database delete request and delete an XML document from the
 database connection</div>
</li>
</ul>
<a name="handleValidateAction-java.io.PrintWriter-java.util.Hashtable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleValidateAction</h4>
<pre>protected&nbsp;void&nbsp;handleValidateAction(java.io.PrintWriter&nbsp;out,
                                    java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)</pre>
<div class="block">Handle the validation request and return the results to the requestor</div>
</li>
</ul>
<a name="handleGetDocid-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetDocid</h4>
<pre>protected&nbsp;void&nbsp;handleGetDocid(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                              javax.servlet.http.HttpServletResponse&nbsp;response)
                       throws java.io.IOException</pre>
<div class="block">Look up the pid (guid)-to-docid mapping.
 Returns XML on the response, e.g.:
 <docid>sample.1.1</docid></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - </dd>
<dd><code>response</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleGetRevisionAndDocTypeAction-java.io.PrintWriter-java.util.Hashtable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetRevisionAndDocTypeAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetRevisionAndDocTypeAction(java.io.PrintWriter&nbsp;out,
                                                 java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params)</pre>
<div class="block">Handle "getrevsionanddoctype" action Given a docid, return it's current
 revision and doctype from data base The output is String look like
 "rev;doctype"</div>
</li>
</ul>
<a name="handleGetAccessControlAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetAccessControlAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetAccessControlAction(java.io.PrintWriter&nbsp;out,
                                            java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                            javax.servlet.http.HttpServletResponse&nbsp;response,
                                            java.lang.String&nbsp;username,
                                            java.lang.String[]&nbsp;groupnames)</pre>
<div class="block">Handle "getaccesscontrol" action. Read Access Control List from db
 connection in XML format</div>
</li>
</ul>
<a name="handleGetPrincipalsAction-java.io.Writer-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetPrincipalsAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetPrincipalsAction(java.io.Writer&nbsp;out,
                                         java.lang.String&nbsp;user,
                                         java.lang.String&nbsp;password)
                                  throws java.io.IOException</pre>
<div class="block">Handle the "getprincipals" action. Read all principals from
 authentication scheme in XML format</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="handleGetDoctypesAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetDoctypesAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetDoctypesAction(java.io.PrintWriter&nbsp;out,
                                       java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                       javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Handle "getdoctypes" action. Read all doctypes from db connection in XML
 format</div>
</li>
</ul>
<a name="handleGetDTDSchemaAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetDTDSchemaAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetDTDSchemaAction(java.io.PrintWriter&nbsp;out,
                                        java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                        javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Handle the "getdtdschema" action. Read DTD or Schema file for a given
 doctype from Metacat catalog system</div>
</li>
</ul>
<a name="handleIdIsRegisteredAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleIdIsRegisteredAction</h4>
<pre>public&nbsp;void&nbsp;handleIdIsRegisteredAction(java.io.PrintWriter&nbsp;out,
                                       java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                       javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Check if the document is registered in either the xml_documents or xml_revisions table</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the writer to write the xml results to</dd>
<dd><code>params</code> - request parameters</dd>
<dd><code>response</code> - the http servlet response</dd>
</dl>
</li>
</ul>
<a name="handleGetAllDocidsAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetAllDocidsAction</h4>
<pre>public&nbsp;void&nbsp;handleGetAllDocidsAction(java.io.PrintWriter&nbsp;out,
                                     java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                     javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Handle the "getalldocids" action. return a list of all docids registered
 in the system</div>
</li>
</ul>
<a name="handleGetMaxDocidAction-java.io.PrintWriter-java.util.Hashtable-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetMaxDocidAction</h4>
<pre>public&nbsp;void&nbsp;handleGetMaxDocidAction(java.io.PrintWriter&nbsp;out,
                                    java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                    javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Handle the "getlastdocid" action. Get the latest docid with rev number
 from db connection in XML format</div>
</li>
</ul>
<a name="handleGetLogAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleGetLogAction</h4>
<pre>protected&nbsp;void&nbsp;handleGetLogAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                  javax.servlet.http.HttpServletRequest&nbsp;request,
                                  javax.servlet.http.HttpServletResponse&nbsp;response,
                                  java.lang.String&nbsp;username,
                                  java.lang.String[]&nbsp;groups,
                                  java.lang.String&nbsp;sessionId)</pre>
<div class="block">Print a report from the event log based on filter parameters passed in
 from the web.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the parameters from the web request</dd>
<dd><code>request</code> - the http request object for getting request details</dd>
<dd><code>response</code> - the http response object for writing output</dd>
</dl>
</li>
</ul>
<a name="handleBuildIndexAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleBuildIndexAction</h4>
<pre>protected&nbsp;void&nbsp;handleBuildIndexAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                      javax.servlet.http.HttpServletRequest&nbsp;request,
                                      javax.servlet.http.HttpServletResponse&nbsp;response,
                                      java.lang.String&nbsp;username,
                                      java.lang.String[]&nbsp;groups)</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the parameters from the web request</dd>
<dd><code>request</code> - the http request object for getting request details</dd>
<dd><code>response</code> - the http response object for writing output</dd>
<dd><code>username</code> - the username of the authenticated user</dd>
</dl>
</li>
</ul>
<a name="handleReindexAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleReindexAction</h4>
<pre>protected&nbsp;void&nbsp;handleReindexAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                   javax.servlet.http.HttpServletRequest&nbsp;request,
                                   javax.servlet.http.HttpServletResponse&nbsp;response,
                                   java.lang.String&nbsp;username,
                                   java.lang.String[]&nbsp;groups)</pre>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the parameters from the web request</dd>
<dd><code>request</code> - the http request object for getting request details</dd>
<dd><code>response</code> - the http response object for writing output</dd>
<dd><code>username</code> - the username of the authenticated user</dd>
</dl>
</li>
</ul>
<a name="handleReindexAllAction-java.util.Hashtable-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleReindexAllAction</h4>
<pre>protected&nbsp;void&nbsp;handleReindexAllAction(java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                      javax.servlet.http.HttpServletRequest&nbsp;request,
                                      javax.servlet.http.HttpServletResponse&nbsp;response,
                                      java.lang.String&nbsp;username,
                                      java.lang.String[]&nbsp;groups)</pre>
<div class="block">Rebuild the index for all documents in the systemMetadata table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>params</code> - the parameters from the web request</dd>
<dd><code>request</code> - the http request object for getting request details</dd>
<dd><code>response</code> - the http response object for writing output</dd>
<dd><code>username</code> - the username of the authenticated user</dd>
</dl>
</li>
</ul>
<a name="handleMultipartForm-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleMultipartForm</h4>
<pre>protected&nbsp;void&nbsp;handleMultipartForm(javax.servlet.http.HttpServletRequest&nbsp;request,
                                   javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="handleSetAccessAction-java.io.PrintWriter-java.util.Hashtable-java.lang.String-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleSetAccessAction</h4>
<pre>protected&nbsp;void&nbsp;handleSetAccessAction(java.io.PrintWriter&nbsp;out,
                                     java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;params,
                                     java.lang.String&nbsp;username,
                                     javax.servlet.http.HttpServletRequest&nbsp;request,
                                     javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
</li>
</ul>
<a name="scheduleSitemapGeneration-javax.servlet.http.HttpServletRequest-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduleSitemapGeneration</h4>
<pre>protected&nbsp;void&nbsp;scheduleSitemapGeneration(javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
<div class="block">Schedule the sitemap generator to run periodically and update all
 of the sitemap files for search indexing engines.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - a servlet request, from which we determine the context</dd>
</dl>
</li>
</ul>
<a name="set_sitemapScheduled-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>set_sitemapScheduled</h4>
<pre>public&nbsp;void&nbsp;set_sitemapScheduled(boolean&nbsp;sitemapScheduled)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sitemapScheduled</code> - toggle the _sitemapScheduled flag</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MetacatHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/MetacatProfiler.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/MetacatHandler.html" target="_top">Frames</a></li>
<li><a href="MetacatHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><i>Copyright © 2020 Regents of the University of California. All Rights Reserved.</i></small></p>
</body>
</html>