<!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:52 UTC 2020 -->
<title>D1ResourceHandler (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="D1ResourceHandler (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":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/D1ResourceHandler.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/restservice/D1HttpRequest.html" title="class in edu.ucsb.nceas.metacat.restservice"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1RestServlet.html" title="class in edu.ucsb.nceas.metacat.restservice"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html" target="_top">Frames</a></li>
<li><a href="D1ResourceHandler.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.restservice</div>
<h2 title="Class D1ResourceHandler" class="title">Class D1ResourceHandler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.restservice.D1ResourceHandler</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../edu/ucsb/nceas/metacat/restservice/v1/CNResourceHandler.html" title="class in edu.ucsb.nceas.metacat.restservice.v1">CNResourceHandler</a>, <a href="../../../../../edu/ucsb/nceas/metacat/restservice/v2/CNResourceHandler.html" title="class in edu.ucsb.nceas.metacat.restservice.v2">CNResourceHandler</a>, <a href="../../../../../edu/ucsb/nceas/metacat/restservice/v1/MNResourceHandler.html" title="class in edu.ucsb.nceas.metacat.restservice.v1">MNResourceHandler</a>, <a href="../../../../../edu/ucsb/nceas/metacat/restservice/v2/MNResourceHandler.html" title="class in edu.ucsb.nceas.metacat.restservice.v2">MNResourceHandler</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">D1ResourceHandler</span>
extends java.lang.Object</pre>
<div class="block">Base class for handling D1 REST calls in Metacat</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>leinfelder</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 byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#DELETE">DELETE</a></span></code>
<div class="block">HTTP Verb DELETE</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#FUNCTION_NAME_INSERT">FUNCTION_NAME_INSERT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#FUNCTION_NAME_UPDATE">FUNCTION_NAME_UPDATE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#GET">GET</a></span></code>
<div class="block">HTTP Verb GET</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../edu/ucsb/nceas/metacat/MetacatHandler.html" title="class in edu.ucsb.nceas.metacat">MetacatHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#handler">handler</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#HEAD">HEAD</a></span></code>
<div class="block">HTTP Verb HEAD</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static org.apache.log4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#logMetacat">logMetacat</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#MAX_UPLOAD_SIZE">MAX_UPLOAD_SIZE</a></span></code>
<div class="block">Maximum size of uploads, defaults to 1GB if not set in property file</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#multipartparams">multipartparams</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#params">params</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#POST">POST</a></span></code>
<div class="block">HTTP Verb POST</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static byte</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#PUT">PUT</a></span></code>
<div class="block">HTTP Verb PUT</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected javax.servlet.http.HttpServletRequest</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#request">request</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_ACCESS_RULES">RESOURCE_ACCESS_RULES</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_BASE_URL">RESOURCE_BASE_URL</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_IS_AUTHORIZED">RESOURCE_IS_AUTHORIZED</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_LOG">RESOURCE_LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_META">RESOURCE_META</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_OBJECTS">RESOURCE_OBJECTS</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_QUERY">RESOURCE_QUERY</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#RESOURCE_VIEWS">RESOURCE_VIEWS</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected javax.servlet.http.HttpServletResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#response">response</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected javax.servlet.ServletContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#servletContext">servletContext</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected org.dataone.service.types.v1.Session</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#session">session</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/restservice/D1ResourceHandler.html#D1ResourceHandler-javax.servlet.ServletContext-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">D1ResourceHandler</a></span>(javax.servlet.ServletContext&nbsp;servletContext,
                 javax.servlet.http.HttpServletRequest&nbsp;request,
                 javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Initializes new instance by setting servlet context,request and response</div>
</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 java.util.Map&lt;java.lang.String,java.io.File&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#collectMultipartFiles--">collectMultipartFiles</a></span>()</code>
<div class="block">Process the MMP request that includes files for each param</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/restservice/D1ResourceHandler.html#collectMultipartParams--">collectMultipartParams</a></span>()</code>
<div class="block">Parse string parameters from the mime multipart entity of the request.</div>
</td>
</tr>
<tr id="i2" 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/restservice/D1ResourceHandler.html#decode-java.lang.String-">decode</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">A method to decode the given string which is a part of a uri.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected static java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#findBoundaryString-java.io.InputStream-">findBoundaryString</a></span>(java.io.InputStream&nbsp;is)</code>
<div class="block">locate the boundary marker for an MMP</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected static java.io.File</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#getTempDirectory--">getTempDirectory</a></span>()</code>
<div class="block">return the directory where temp files are stored</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#handle-byte-">handle</a></span>(byte&nbsp;httpVerb)</code>
<div class="block">This function is called from REST API servlet and handles each request</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#initMultipartParams--">initMultipartParams</a></span>()</code>
<div class="block">Collect the multipart params from the request</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/restservice/D1ResourceHandler.html#initParams--">initParams</a></span>()</code>
<div class="block">copies request parameters to a hashtable which is given as argument to 
  native metacathandler functions</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#isD1Enabled--">isD1Enabled</a></span>()</code>
<div class="block">subclasses should provide a more useful implementation</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#parseTrailing-java.lang.String-java.lang.String-">parseTrailing</a></span>(java.lang.String&nbsp;resource,
             java.lang.String&nbsp;token)</code>&nbsp;</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/restservice/D1ResourceHandler.html#printError-java.lang.String-javax.servlet.http.HttpServletResponse-">printError</a></span>(java.lang.String&nbsp;message,
          javax.servlet.http.HttpServletResponse&nbsp;response)</code>
<div class="block">Prints xml response</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html#serializeException-org.dataone.service.exceptions.BaseException-java.io.OutputStream-">serializeException</a></span>(org.dataone.service.exceptions.BaseException&nbsp;e,
                  java.io.OutputStream&nbsp;out)</code>
<div class="block">serialize a D1 exception using jibx</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="GET">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>GET</h4>
<pre>public static final&nbsp;byte GET</pre>
<div class="block">HTTP Verb GET</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.GET">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="POST">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>POST</h4>
<pre>public static final&nbsp;byte POST</pre>
<div class="block">HTTP Verb POST</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.POST">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PUT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PUT</h4>
<pre>public static final&nbsp;byte PUT</pre>
<div class="block">HTTP Verb PUT</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.PUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DELETE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DELETE</h4>
<pre>public static final&nbsp;byte DELETE</pre>
<div class="block">HTTP Verb DELETE</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.DELETE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HEAD">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HEAD</h4>
<pre>public static final&nbsp;byte HEAD</pre>
<div class="block">HTTP Verb HEAD</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.HEAD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_UPLOAD_SIZE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_UPLOAD_SIZE</h4>
<pre>protected static&nbsp;int MAX_UPLOAD_SIZE</pre>
<div class="block">Maximum size of uploads, defaults to 1GB if not set in property file</div>
</li>
</ul>
<a name="RESOURCE_BASE_URL">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_BASE_URL</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_BASE_URL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_BASE_URL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_OBJECTS">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_OBJECTS</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_OBJECTS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_OBJECTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_META">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_META</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_META</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_META">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_LOG">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_LOG</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_LOG</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_LOG">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_QUERY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_QUERY</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_QUERY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_QUERY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_IS_AUTHORIZED">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_IS_AUTHORIZED</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_IS_AUTHORIZED</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_IS_AUTHORIZED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_ACCESS_RULES">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_ACCESS_RULES</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_ACCESS_RULES</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_ACCESS_RULES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="RESOURCE_VIEWS">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RESOURCE_VIEWS</h4>
<pre>protected static final&nbsp;java.lang.String RESOURCE_VIEWS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.RESOURCE_VIEWS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FUNCTION_NAME_INSERT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FUNCTION_NAME_INSERT</h4>
<pre>protected static final&nbsp;java.lang.String FUNCTION_NAME_INSERT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.FUNCTION_NAME_INSERT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FUNCTION_NAME_UPDATE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FUNCTION_NAME_UPDATE</h4>
<pre>protected static final&nbsp;java.lang.String FUNCTION_NAME_UPDATE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.restservice.D1ResourceHandler.FUNCTION_NAME_UPDATE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="servletContext">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>servletContext</h4>
<pre>protected&nbsp;javax.servlet.ServletContext servletContext</pre>
</li>
</ul>
<a name="logMetacat">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logMetacat</h4>
<pre>protected static&nbsp;org.apache.log4j.Logger logMetacat</pre>
</li>
</ul>
<a name="handler">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handler</h4>
<pre>protected&nbsp;<a href="../../../../../edu/ucsb/nceas/metacat/MetacatHandler.html" title="class in edu.ucsb.nceas.metacat">MetacatHandler</a> handler</pre>
</li>
</ul>
<a name="request">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>request</h4>
<pre>protected&nbsp;javax.servlet.http.HttpServletRequest request</pre>
</li>
</ul>
<a name="response">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>response</h4>
<pre>protected&nbsp;javax.servlet.http.HttpServletResponse response</pre>
</li>
</ul>
<a name="params">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>params</h4>
<pre>protected&nbsp;java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt; params</pre>
</li>
</ul>
<a name="multipartparams">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multipartparams</h4>
<pre>protected&nbsp;java.util.Map&lt;java.lang.String,java.util.List&lt;java.lang.String&gt;&gt; multipartparams</pre>
</li>
</ul>
<a name="session">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>session</h4>
<pre>protected&nbsp;org.dataone.service.types.v1.Session session</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="D1ResourceHandler-javax.servlet.ServletContext-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>D1ResourceHandler</h4>
<pre>public&nbsp;D1ResourceHandler(javax.servlet.ServletContext&nbsp;servletContext,
                         javax.servlet.http.HttpServletRequest&nbsp;request,
                         javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Initializes new instance by setting servlet context,request and response</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="handle-byte-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handle</h4>
<pre>public&nbsp;void&nbsp;handle(byte&nbsp;httpVerb)</pre>
<div class="block">This function is called from REST API servlet and handles each request</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>httpVerb</code> - (GET, POST, PUT or DELETE)</dd>
</dl>
</li>
</ul>
<a name="isD1Enabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isD1Enabled</h4>
<pre>protected&nbsp;boolean&nbsp;isD1Enabled()</pre>
<div class="block">subclasses should provide a more useful implementation</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="parseTrailing-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseTrailing</h4>
<pre>protected&nbsp;java.lang.String&nbsp;parseTrailing(java.lang.String&nbsp;resource,
                                         java.lang.String&nbsp;token)</pre>
</li>
</ul>
<a name="collectMultipartParams--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectMultipartParams</h4>
<pre>protected&nbsp;void&nbsp;collectMultipartParams()
                               throws java.io.IOException,
                                      org.apache.commons.fileupload.FileUploadException,
                                      java.lang.Exception</pre>
<div class="block">Parse string parameters from the mime multipart entity of the request.
 Populates the multipartparams map</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dd><code>org.apache.commons.fileupload.FileUploadException</code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="collectMultipartFiles--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collectMultipartFiles</h4>
<pre>protected&nbsp;java.util.Map&lt;java.lang.String,java.io.File&gt;&nbsp;collectMultipartFiles()
                                                                      throws org.dataone.service.exceptions.ServiceFailure,
                                                                             org.dataone.service.exceptions.InvalidRequest</pre>
<div class="block">Process the MMP request that includes files for each param</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>map of param key and the temp file that contains the encoded information</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="initParams--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initParams</h4>
<pre>protected&nbsp;void&nbsp;initParams()</pre>
<div class="block">copies request parameters to a hashtable which is given as argument to 
  native metacathandler functions</div>
</li>
</ul>
<a name="initMultipartParams--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initMultipartParams</h4>
<pre>protected&nbsp;void&nbsp;initMultipartParams()
                            throws java.lang.Exception</pre>
<div class="block">Collect the multipart params from the request</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="findBoundaryString-java.io.InputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findBoundaryString</h4>
<pre>protected static&nbsp;java.lang.String[]&nbsp;findBoundaryString(java.io.InputStream&nbsp;is)
                                                throws java.io.IOException</pre>
<div class="block">locate the boundary marker for an MMP</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>is</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getTempDirectory--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTempDirectory</h4>
<pre>protected static&nbsp;java.io.File&nbsp;getTempDirectory()</pre>
<div class="block">return the directory where temp files are stored</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="printError-java.lang.String-javax.servlet.http.HttpServletResponse-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printError</h4>
<pre>protected&nbsp;void&nbsp;printError(java.lang.String&nbsp;message,
                          javax.servlet.http.HttpServletResponse&nbsp;response)</pre>
<div class="block">Prints xml response</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>message</code> - Message to be displayed</dd>
<dd><code>response</code> - Servlet response that xml message will be printed</dd>
</dl>
</li>
</ul>
<a name="serializeException-org.dataone.service.exceptions.BaseException-java.io.OutputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serializeException</h4>
<pre>protected&nbsp;void&nbsp;serializeException(org.dataone.service.exceptions.BaseException&nbsp;e,
                                  java.io.OutputStream&nbsp;out)</pre>
<div class="block">serialize a D1 exception using jibx</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - </dd>
<dd><code>out</code> - </dd>
</dl>
</li>
</ul>
<a name="decode-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>decode</h4>
<pre>public static&nbsp;java.lang.String&nbsp;decode(java.lang.String&nbsp;s)</pre>
<div class="block">A method to decode the given string which is a part of a uri.
 The default encoding is utf-8. If the utf-8 is not support in this system, the default one in the systme will be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if the given string is null</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/D1ResourceHandler.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/restservice/D1HttpRequest.html" title="class in edu.ucsb.nceas.metacat.restservice"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/restservice/D1RestServlet.html" title="class in edu.ucsb.nceas.metacat.restservice"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/restservice/D1ResourceHandler.html" target="_top">Frames</a></li>
<li><a href="D1ResourceHandler.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>