<!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>D1NodeService (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="D1NodeService (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":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":9,"i22":9,"i23":10,"i24":10,"i25":10,"i26":10,"i27":9,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":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/D1NodeService.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/dataone/D1AuthHelper.html" title="class in edu.ucsb.nceas.metacat.dataone"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeVersionChecker.html" title="class in edu.ucsb.nceas.metacat.dataone"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/dataone/D1NodeService.html" target="_top">Frames</a></li>
<li><a href="D1NodeService.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.dataone</div>
<h2 title="Class D1NodeService" class="title">Class D1NodeService</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.dataone.D1NodeService</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/dataone/CNodeService.html" title="class in edu.ucsb.nceas.metacat.dataone">CNodeService</a>, <a href="../../../../../edu/ucsb/nceas/metacat/dataone/MNodeService.html" title="class in edu.ucsb.nceas.metacat.dataone">MNodeService</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">D1NodeService</span>
extends java.lang.Object</pre>
</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/dataone/D1NodeService.html#DELETEDMESSAGE">DELETEDMESSAGE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<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/dataone/D1NodeService.html#handler">handler</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#MAXIMUM_DB_RECORD_COUNT">MAXIMUM_DB_RECORD_COUNT</a></span></code>
<div class="block">limit paged results sets to a configured maximum</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected javax.servlet.http.HttpServletRequest</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#request">request</a></span></code>
<div class="block">For logging the operations</div>
</td>
</tr>
<tr class="altColor">
<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/dataone/D1NodeService.html#session2">session2</a></span></code>
<div class="block">out-of-band session object to be used when not passed in as a method parameter</div>
</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/dataone/D1NodeService.html#D1NodeService-javax.servlet.http.HttpServletRequest-">D1NodeService</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
<div class="block">Constructor - used to set the metacatUrl from a subclass extending D1NodeService</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 void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#archiveCNObject-boolean-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-">archiveCNObject</a></span>(boolean&nbsp;log,
               org.dataone.service.types.v1.Session&nbsp;session,
               org.dataone.service.types.v1.Identifier&nbsp;pid,
               org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta,
               boolean&nbsp;needModifyDate)</code>
<div class="block">Archive a object on cn and notify the replica.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected org.dataone.service.types.v1.Identifier</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#archiveObject-boolean-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-">archiveObject</a></span>(boolean&nbsp;log,
             org.dataone.service.types.v1.Session&nbsp;session,
             org.dataone.service.types.v1.Identifier&nbsp;pid,
             org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta,
             boolean&nbsp;needModifyDate)</code>
<div class="block">Archives an object, where the object is either a 
 data object or a science metadata object.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#checkSidInModifyingSystemMetadata-org.dataone.service.types.v2.SystemMetadata-java.lang.String-java.lang.String-">checkSidInModifyingSystemMetadata</a></span>(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta,
                                 java.lang.String&nbsp;invalidSystemMetadataCode,
                                 java.lang.String&nbsp;serviceFailureCode)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#checkV1SystemMetaPidExist-org.dataone.service.types.v1.Identifier-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">checkV1SystemMetaPidExist</a></span>(org.dataone.service.types.v1.Identifier&nbsp;identifier,
                         java.lang.String&nbsp;serviceFailureCode,
                         java.lang.String&nbsp;serviceFailureMessage,
                         java.lang.String&nbsp;noFoundCode,
                         java.lang.String&nbsp;notFoundMessage)</code>
<div class="block">A utility method for v1 api to check the specified identifier exists as a pid
 Uses the IdentifierManager to call the Identifier table directly - this detects
 Identifiers for deleted objects (where the SystemMetadata doesn't exist, but the Identifier remains)</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v1.Identifier</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#create-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-java.io.InputStream-org.dataone.service.types.v2.SystemMetadata-">create</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
      org.dataone.service.types.v1.Identifier&nbsp;pid,
      java.io.InputStream&nbsp;object,
      org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)</code>
<div class="block">Adds a new object to the Node, where the object is either a data 
 object or a science metadata object.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>org.dataone.service.types.v1.Identifier</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#delete-java.lang.String-org.dataone.service.types.v1.Identifier-">delete</a></span>(java.lang.String&nbsp;username,
      org.dataone.service.types.v1.Identifier&nbsp;pid)</code>
<div class="block">Deletes an object from the Member Node, where the object is either a 
 data object or a science metadata object.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v1.DescribeResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#describe-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">describe</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
        org.dataone.service.types.v1.Identifier&nbsp;id)</code>
<div class="block">This method provides a lighter weight mechanism than 
 getSystemMetadata() for a client to determine basic 
 properties of the referenced object.</div>
</td>
</tr>
<tr id="i7" 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/dataone/D1NodeService.html#existsInObsoletedBy-org.dataone.service.types.v1.Identifier-">existsInObsoletedBy</a></span>(org.dataone.service.types.v1.Identifier&nbsp;id)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#existsInObsoletes-org.dataone.service.types.v1.Identifier-">existsInObsoletes</a></span>(org.dataone.service.types.v1.Identifier&nbsp;id)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected static java.util.List&lt;org.dataone.service.types.v1.Permission&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#expandPermissions-org.dataone.service.types.v1.Permission-">expandPermissions</a></span>(org.dataone.service.types.v1.Permission&nbsp;permission)</code>
<div class="block">Given a Permission, returns a list of all permissions that it encompasses
 Permissions are hierarchical so that WRITE also allows READ.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#get-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">get</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
   org.dataone.service.types.v1.Identifier&nbsp;pid)</code>
<div class="block">Return the object identified by the given object identifier</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected org.dataone.service.types.v2.NodeList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getCNNodeList--">getCNNodeList</a></span>()</code>
<div class="block">A centralized point for accessing the CN Nodelist,
 to make it easier to cache the nodelist in the future,
 if it's seen as helpful performance-wise</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v2.Log</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getLogRecords-org.dataone.service.types.v1.Session-java.util.Date-java.util.Date-java.lang.String-java.lang.String-java.lang.Integer-java.lang.Integer-">getLogRecords</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
             java.util.Date&nbsp;fromDate,
             java.util.Date&nbsp;toDate,
             java.lang.String&nbsp;event,
             java.lang.String&nbsp;pidFilter,
             java.lang.Integer&nbsp;start,
             java.lang.Integer&nbsp;count)</code>
<div class="block">Return the log records associated with a given event between the start and 
 end dates listed given a particular Subject listed in the Session</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected org.dataone.service.types.v1.Identifier</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getPIDForSID-org.dataone.service.types.v1.Identifier-java.lang.String-">getPIDForSID</a></span>(org.dataone.service.types.v1.Identifier&nbsp;sid,
            java.lang.String&nbsp;serviceFailureCode)</code>
<div class="block">Utility method to get the PID for an SID.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v1.Session</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getSession--">getSession</a></span>()</code>
<div class="block">retrieve the out-of-band session</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>org.dataone.service.types.v2.SystemMetadata</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getSystemMetadata-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">getSystemMetadata</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
                 org.dataone.service.types.v1.Identifier&nbsp;id)</code>
<div class="block">Return the system metadata for a given object</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected org.dataone.service.types.v2.SystemMetadata</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#getSystemMetadataForPID-org.dataone.service.types.v1.Identifier-java.lang.String-java.lang.String-java.lang.String-boolean-">getSystemMetadataForPID</a></span>(org.dataone.service.types.v1.Identifier&nbsp;pid,
                       java.lang.String&nbsp;serviceFailureCode,
                       java.lang.String&nbsp;invalidRequestCode,
                       java.lang.String&nbsp;notFoundCode,
                       boolean&nbsp;needDeleteInfo)</code>
<div class="block">Get the system metadata for the given PID (not a sid).</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#insertDataObject-java.io.InputStream-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Checksum-">insertDataObject</a></span>(java.io.InputStream&nbsp;object,
                org.dataone.service.types.v1.Identifier&nbsp;pid,
                org.dataone.service.types.v1.Session&nbsp;session,
                org.dataone.service.types.v1.Checksum&nbsp;checksum)</code>
<div class="block">Insert a data document</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#insertOrUpdateDocument-java.io.InputStream-java.lang.String-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Session-java.lang.String-java.lang.String-org.dataone.service.types.v1.Checksum-">insertOrUpdateDocument</a></span>(java.io.InputStream&nbsp;xmlStream,
                      java.lang.String&nbsp;encoding,
                      org.dataone.service.types.v1.Identifier&nbsp;pid,
                      org.dataone.service.types.v1.Session&nbsp;session,
                      java.lang.String&nbsp;insertOrUpdate,
                      java.lang.String&nbsp;formatId,
                      org.dataone.service.types.v1.Checksum&nbsp;checksum)</code>
<div class="block">Insert or update an XML document into Metacat</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#insertSystemMetadata-org.dataone.service.types.v2.SystemMetadata-">insertSystemMetadata</a></span>(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)</code>
<div class="block">Insert a systemMetadata document and return its localId</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#isAuthorized-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Permission-">isAuthorized</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
            org.dataone.service.types.v1.Identifier&nbsp;id,
            org.dataone.service.types.v1.Permission&nbsp;permission)</code>
<div class="block">Test if the user identified by the provided token has authorization 
 for the operation on the specified object.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#isScienceMetadata-org.dataone.service.types.v2.SystemMetadata-">isScienceMetadata</a></span>(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)</code>
<div class="block">Determine if a given object should be treated as an XML science metadata
 object.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#isValidIdentifier-org.dataone.service.types.v1.Identifier-">isValidIdentifier</a></span>(org.dataone.service.types.v1.Identifier&nbsp;pid)</code>
<div class="block">Check for whitespace in the given pid.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected java.util.List&lt;org.dataone.service.types.v2.Node&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#listNodesBySubject-org.dataone.service.types.v1.Subject-org.dataone.service.types.v2.NodeList-">listNodesBySubject</a></span>(org.dataone.service.types.v1.Subject&nbsp;subject,
                  org.dataone.service.types.v2.NodeList&nbsp;nodelist)</code>
<div class="block">Calls CN.listNodes() to assemble a list of nodes that have been registered with the DataONE infrastructure
 that match the given session subject</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v1.ObjectList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#listObjects-org.dataone.service.types.v1.Session-java.util.Date-java.util.Date-org.dataone.service.types.v1.ObjectFormatIdentifier-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.NodeReference-java.lang.Integer-java.lang.Integer-">listObjects</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
           java.util.Date&nbsp;startTime,
           java.util.Date&nbsp;endTime,
           org.dataone.service.types.v1.ObjectFormatIdentifier&nbsp;objectFormatId,
           org.dataone.service.types.v1.Identifier&nbsp;identifier,
           org.dataone.service.types.v1.NodeReference&nbsp;nodeId,
           java.lang.Integer&nbsp;start,
           java.lang.Integer&nbsp;count)</code>
<div class="block">Retrieve the list of objects present on the MN that match the calling parameters</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>org.dataone.service.types.v2.OptionList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#listViews--">listViews</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>org.dataone.service.types.v2.OptionList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#listViews-org.dataone.service.types.v1.Session-">listViews</a></span>(org.dataone.service.types.v1.Session&nbsp;arg0)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#objectExists-org.dataone.service.types.v1.Identifier-">objectExists</a></span>(org.dataone.service.types.v1.Identifier&nbsp;id)</code>
<div class="block">Determine if an object with the given identifier already exists or not.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.util.Date</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#ping--">ping</a></span>()</code>
<div class="block">Low level, "are you alive" operation.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#removeSolrIndex-org.dataone.service.types.v2.SystemMetadata-">removeSolrIndex</a></span>(org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta)</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#removeSystemMetaAndIdentifier-org.dataone.service.types.v1.Identifier-">removeSystemMetaAndIdentifier</a></span>(org.dataone.service.types.v1.Identifier&nbsp;id)</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#setSession-org.dataone.service.types.v1.Session-">setSession</a></span>(org.dataone.service.types.v1.Session&nbsp;session)</code>
<div class="block">Set the out-of-band session</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#updateSystemMetadata-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-org.dataone.service.types.v2.SystemMetadata-boolean-">updateSystemMetadata</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
                    org.dataone.service.types.v1.Identifier&nbsp;pid,
                    org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta,
                    boolean&nbsp;needUpdateModificationDate,
                    org.dataone.service.types.v2.SystemMetadata&nbsp;currentSysmeta,
                    boolean&nbsp;fromCN)</code>
<div class="block">Update the system metadata of the specified pid.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#updateSystemMetadata-org.dataone.service.types.v2.SystemMetadata-">updateSystemMetadata</a></span>(org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta)</code>
<div class="block">Update a systemMetadata document</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeService.html#view-org.dataone.service.types.v1.Session-java.lang.String-org.dataone.service.types.v1.Identifier-">view</a></span>(org.dataone.service.types.v1.Session&nbsp;session,
    java.lang.String&nbsp;format,
    org.dataone.service.types.v1.Identifier&nbsp;id)</code>&nbsp;</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="DELETEDMESSAGE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DELETEDMESSAGE</h4>
<pre>public static final&nbsp;java.lang.String DELETEDMESSAGE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#edu.ucsb.nceas.metacat.dataone.D1NodeService.DELETEDMESSAGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="request">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>request</h4>
<pre>protected&nbsp;javax.servlet.http.HttpServletRequest request</pre>
<div class="block">For logging the operations</div>
</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="MAXIMUM_DB_RECORD_COUNT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAXIMUM_DB_RECORD_COUNT</h4>
<pre>protected static&nbsp;int MAXIMUM_DB_RECORD_COUNT</pre>
<div class="block">limit paged results sets to a configured maximum</div>
</li>
</ul>
<a name="session2">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>session2</h4>
<pre>protected&nbsp;org.dataone.service.types.v1.Session session2</pre>
<div class="block">out-of-band session object to be used when not passed in as a method parameter</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="D1NodeService-javax.servlet.http.HttpServletRequest-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>D1NodeService</h4>
<pre>public&nbsp;D1NodeService(javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
<div class="block">Constructor - used to set the metacatUrl from a subclass extending D1NodeService</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>metacatUrl</code> - - the URL of the metacat service, including the ending /d1</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSession</h4>
<pre>public&nbsp;org.dataone.service.types.v1.Session&nbsp;getSession()</pre>
<div class="block">retrieve the out-of-band session</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setSession-org.dataone.service.types.v1.Session-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSession</h4>
<pre>public&nbsp;void&nbsp;setSession(org.dataone.service.types.v1.Session&nbsp;session)</pre>
<div class="block">Set the out-of-band session</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - </dd>
</dl>
</li>
</ul>
<a name="getCNNodeList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCNNodeList</h4>
<pre>protected&nbsp;org.dataone.service.types.v2.NodeList&nbsp;getCNNodeList()
                                                       throws org.dataone.service.exceptions.ServiceFailure,
                                                              org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">A centralized point for accessing the CN Nodelist,
 to make it easier to cache the nodelist in the future,
 if it's seen as helpful performance-wise</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="describe-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>describe</h4>
<pre>public&nbsp;org.dataone.service.types.v1.DescribeResponse&nbsp;describe(org.dataone.service.types.v1.Session&nbsp;session,
                                                              org.dataone.service.types.v1.Identifier&nbsp;id)
                                                       throws org.dataone.service.exceptions.InvalidToken,
                                                              org.dataone.service.exceptions.ServiceFailure,
                                                              org.dataone.service.exceptions.NotAuthorized,
                                                              org.dataone.service.exceptions.NotFound,
                                                              org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">This method provides a lighter weight mechanism than 
 getSystemMetadata() for a client to determine basic 
 properties of the referenced object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>pid</code> - - the identifier of the object to be described</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>describeResponse - A set of values providing a basic description 
                            of the object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="delete-java.lang.String-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>public&nbsp;org.dataone.service.types.v1.Identifier&nbsp;delete(java.lang.String&nbsp;username,
                                                      org.dataone.service.types.v1.Identifier&nbsp;pid)
                                               throws org.dataone.service.exceptions.InvalidToken,
                                                      org.dataone.service.exceptions.ServiceFailure,
                                                      org.dataone.service.exceptions.NotAuthorized,
                                                      org.dataone.service.exceptions.NotFound,
                                                      org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Deletes an object from the Member Node, where the object is either a 
 data object or a science metadata object. No access checking.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>username</code> - - the name of the user who calls the method. This is only for logging.</dd>
<dd><code>pid</code> - - The object identifier to be deleted</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>pid - the identifier of the object used for the deletion</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="ping--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ping</h4>
<pre>public&nbsp;java.util.Date&nbsp;ping()
                    throws org.dataone.service.exceptions.NotImplemented,
                           org.dataone.service.exceptions.ServiceFailure,
                           org.dataone.service.exceptions.InsufficientResources</pre>
<div class="block">Low level, "are you alive" operation. A valid ping response is 
 indicated by a HTTP status of 200.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the service is alive</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.InsufficientResources</code></dd>
</dl>
</li>
</ul>
<a name="create-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-java.io.InputStream-org.dataone.service.types.v2.SystemMetadata-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>public&nbsp;org.dataone.service.types.v1.Identifier&nbsp;create(org.dataone.service.types.v1.Session&nbsp;session,
                                                      org.dataone.service.types.v1.Identifier&nbsp;pid,
                                                      java.io.InputStream&nbsp;object,
                                                      org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)
                                               throws org.dataone.service.exceptions.InvalidToken,
                                                      org.dataone.service.exceptions.ServiceFailure,
                                                      org.dataone.service.exceptions.NotAuthorized,
                                                      org.dataone.service.exceptions.IdentifierNotUnique,
                                                      org.dataone.service.exceptions.UnsupportedType,
                                                      org.dataone.service.exceptions.InsufficientResources,
                                                      org.dataone.service.exceptions.InvalidSystemMetadata,
                                                      org.dataone.service.exceptions.NotImplemented,
                                                      org.dataone.service.exceptions.InvalidRequest</pre>
<div class="block">Adds a new object to the Node, where the object is either a data 
 object or a science metadata object. This method is called by clients 
 to create new data objects on Member Nodes or internally for Coordinating
 Nodes</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>pid</code> - - The object identifier to be created</dd>
<dd><code>object</code> - - the object bytes</dd>
<dd><code>sysmeta</code> - - the system metadata that describes the object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>pid - the object identifier created</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.IdentifierNotUnique</code></dd>
<dd><code>org.dataone.service.exceptions.UnsupportedType</code></dd>
<dd><code>org.dataone.service.exceptions.InsufficientResources</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidSystemMetadata</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="objectExists-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>objectExists</h4>
<pre>protected static&nbsp;void&nbsp;objectExists(org.dataone.service.types.v1.Identifier&nbsp;id)
                            throws org.dataone.service.exceptions.ServiceFailure,
                                   org.dataone.service.exceptions.IdentifierNotUnique</pre>
<div class="block">Determine if an object with the given identifier already exists or not.
 (Using IdentityManager.  Works for SID or PID)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - -  the ID to be checked.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code> - if the system can't fulfill the check process</dd>
<dd><code>org.dataone.service.exceptions.IdentifierNotUnique</code> - if the object with the identifier does exist</dd>
</dl>
</li>
</ul>
<a name="removeSystemMetaAndIdentifier-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSystemMetaAndIdentifier</h4>
<pre>protected&nbsp;void&nbsp;removeSystemMetaAndIdentifier(org.dataone.service.types.v1.Identifier&nbsp;id)</pre>
</li>
</ul>
<a name="removeSolrIndex-org.dataone.service.types.v2.SystemMetadata-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSolrIndex</h4>
<pre>protected&nbsp;void&nbsp;removeSolrIndex(org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta)</pre>
</li>
</ul>
<a name="getLogRecords-org.dataone.service.types.v1.Session-java.util.Date-java.util.Date-java.lang.String-java.lang.String-java.lang.Integer-java.lang.Integer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogRecords</h4>
<pre>public&nbsp;org.dataone.service.types.v2.Log&nbsp;getLogRecords(org.dataone.service.types.v1.Session&nbsp;session,
                                                      java.util.Date&nbsp;fromDate,
                                                      java.util.Date&nbsp;toDate,
                                                      java.lang.String&nbsp;event,
                                                      java.lang.String&nbsp;pidFilter,
                                                      java.lang.Integer&nbsp;start,
                                                      java.lang.Integer&nbsp;count)
                                               throws org.dataone.service.exceptions.InvalidToken,
                                                      org.dataone.service.exceptions.ServiceFailure,
                                                      org.dataone.service.exceptions.NotAuthorized,
                                                      org.dataone.service.exceptions.InvalidRequest,
                                                      org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Return the log records associated with a given event between the start and 
 end dates listed given a particular Subject listed in the Session</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>fromDate</code> - - the start date of the desired log records</dd>
<dd><code>toDate</code> - - the end date of the desired log records</dd>
<dd><code>event</code> - - restrict log records of a specific event type</dd>
<dd><code>start</code> - - zero based offset from the first record in the 
                set of matching log records. Used to assist with 
                paging the response.</dd>
<dd><code>count</code> - - maximum number of log records to return in the response. 
                Used to assist with paging the response.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the desired log records</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="get-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;java.io.InputStream&nbsp;get(org.dataone.service.types.v1.Session&nbsp;session,
                               org.dataone.service.types.v1.Identifier&nbsp;pid)
                        throws org.dataone.service.exceptions.InvalidToken,
                               org.dataone.service.exceptions.ServiceFailure,
                               org.dataone.service.exceptions.NotAuthorized,
                               org.dataone.service.exceptions.NotFound,
                               org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Return the object identified by the given object identifier</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>id</code> - - the identifier for the given object
 
 TODO: The D1 Authorization API doesn't provide information on which 
 authentication system the Subject belongs to, and so it's not possible to
 discern which Person or Group is a valid KNB LDAP DN.  Fix this.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>inputStream - the input stream of the given object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
</dl>
</li>
</ul>
<a name="getSystemMetadata-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSystemMetadata</h4>
<pre>public&nbsp;org.dataone.service.types.v2.SystemMetadata&nbsp;getSystemMetadata(org.dataone.service.types.v1.Session&nbsp;session,
                                                                     org.dataone.service.types.v1.Identifier&nbsp;id)
                                                              throws org.dataone.service.exceptions.InvalidToken,
                                                                     org.dataone.service.exceptions.ServiceFailure,
                                                                     org.dataone.service.exceptions.NotAuthorized,
                                                                     org.dataone.service.exceptions.NotFound,
                                                                     org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Return the system metadata for a given object</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>pid</code> - - the object identifier for the given object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>inputStream - the input stream of the given system metadata object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="isAuthorized-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Permission-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAuthorized</h4>
<pre>public&nbsp;boolean&nbsp;isAuthorized(org.dataone.service.types.v1.Session&nbsp;session,
                            org.dataone.service.types.v1.Identifier&nbsp;id,
                            org.dataone.service.types.v1.Permission&nbsp;permission)
                     throws org.dataone.service.exceptions.ServiceFailure,
                            org.dataone.service.exceptions.InvalidToken,
                            org.dataone.service.exceptions.NotFound,
                            org.dataone.service.exceptions.NotAuthorized,
                            org.dataone.service.exceptions.NotImplemented,
                            org.dataone.service.exceptions.InvalidRequest</pre>
<div class="block">Test if the user identified by the provided token has authorization 
 for the operation on the specified object.
 Allowed subjects include:
 1. CNs
 2. Authoritative node
 3. Owner of the object
 4. Users with the specified permission in the access rules.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>pid</code> - - The identifer of the resource for which access is being checked</dd>
<dd><code>operation</code> - - The type of operation which is being requested for the given pid</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the operation is allowed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="isScienceMetadata-org.dataone.service.types.v2.SystemMetadata-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isScienceMetadata</h4>
<pre>public static&nbsp;boolean&nbsp;isScienceMetadata(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)</pre>
<div class="block">Determine if a given object should be treated as an XML science metadata
 object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sysmeta</code> - - the SystemMetadata describing the object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the object should be treated as science metadata</dd>
</dl>
</li>
</ul>
<a name="isValidIdentifier-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidIdentifier</h4>
<pre>public static&nbsp;boolean&nbsp;isValidIdentifier(org.dataone.service.types.v1.Identifier&nbsp;pid)</pre>
<div class="block">Check for whitespace in the given pid.
 null pids are also invalid by default</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pid</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="insertOrUpdateDocument-java.io.InputStream-java.lang.String-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Session-java.lang.String-java.lang.String-org.dataone.service.types.v1.Checksum-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertOrUpdateDocument</h4>
<pre>public&nbsp;java.lang.String&nbsp;insertOrUpdateDocument(java.io.InputStream&nbsp;xmlStream,
                                               java.lang.String&nbsp;encoding,
                                               org.dataone.service.types.v1.Identifier&nbsp;pid,
                                               org.dataone.service.types.v1.Session&nbsp;session,
                                               java.lang.String&nbsp;insertOrUpdate,
                                               java.lang.String&nbsp;formatId,
                                               org.dataone.service.types.v1.Checksum&nbsp;checksum)
                                        throws org.dataone.service.exceptions.ServiceFailure,
                                               java.io.IOException,
                                               edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">Insert or update an XML document into Metacat</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>xml</code> - - the XML document to insert or update</dd>
<dd><code>pid</code> - - the identifier to be used for the resulting object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>localId - the resulting docid of the document created or updated</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>java.io.IOException</code></dd>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="insertDataObject-java.io.InputStream-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Checksum-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertDataObject</h4>
<pre>public&nbsp;java.lang.String&nbsp;insertDataObject(java.io.InputStream&nbsp;object,
                                         org.dataone.service.types.v1.Identifier&nbsp;pid,
                                         org.dataone.service.types.v1.Session&nbsp;session,
                                         org.dataone.service.types.v1.Checksum&nbsp;checksum)
                                  throws org.dataone.service.exceptions.ServiceFailure,
                                         org.dataone.service.exceptions.InvalidSystemMetadata,
                                         org.dataone.service.exceptions.NotAuthorized</pre>
<div class="block">Insert a data document</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - </dd>
<dd><code>pid</code> - </dd>
<dd><code>sessionData</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidSystemMetadata</code></dd>
</dl>
</li>
</ul>
<a name="insertSystemMetadata-org.dataone.service.types.v2.SystemMetadata-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertSystemMetadata</h4>
<pre>public&nbsp;void&nbsp;insertSystemMetadata(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta)
                          throws org.dataone.service.exceptions.ServiceFailure</pre>
<div class="block">Insert a systemMetadata document and return its localId</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
</dl>
</li>
</ul>
<a name="listObjects-org.dataone.service.types.v1.Session-java.util.Date-java.util.Date-org.dataone.service.types.v1.ObjectFormatIdentifier-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v1.NodeReference-java.lang.Integer-java.lang.Integer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listObjects</h4>
<pre>public&nbsp;org.dataone.service.types.v1.ObjectList&nbsp;listObjects(org.dataone.service.types.v1.Session&nbsp;session,
                                                           java.util.Date&nbsp;startTime,
                                                           java.util.Date&nbsp;endTime,
                                                           org.dataone.service.types.v1.ObjectFormatIdentifier&nbsp;objectFormatId,
                                                           org.dataone.service.types.v1.Identifier&nbsp;identifier,
                                                           org.dataone.service.types.v1.NodeReference&nbsp;nodeId,
                                                           java.lang.Integer&nbsp;start,
                                                           java.lang.Integer&nbsp;count)
                                                    throws org.dataone.service.exceptions.NotAuthorized,
                                                           org.dataone.service.exceptions.InvalidRequest,
                                                           org.dataone.service.exceptions.NotImplemented,
                                                           org.dataone.service.exceptions.ServiceFailure,
                                                           org.dataone.service.exceptions.InvalidToken</pre>
<div class="block">Retrieve the list of objects present on the MN that match the calling parameters</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>startTime</code> - - Specifies the beginning of the time range from which 
                    to return object (>=)</dd>
<dd><code>endTime</code> - - Specifies the beginning of the time range from which 
                  to return object (>=)</dd>
<dd><code>objectFormat</code> - - Restrict results to the specified object format</dd>
<dd><code>replicaStatus</code> - - Indicates if replicated objects should be returned in the list</dd>
<dd><code>start</code> - - The zero-based index of the first value, relative to the 
                first record of the resultset that matches the parameters.</dd>
<dd><code>count</code> - - The maximum number of entries that should be returned in 
                the response. The Member Node may return less entries 
                than specified in this value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>objectList - the list of objects matching the criteria</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="updateSystemMetadata-org.dataone.service.types.v2.SystemMetadata-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateSystemMetadata</h4>
<pre>protected&nbsp;void&nbsp;updateSystemMetadata(org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta)
                             throws org.dataone.service.exceptions.ServiceFailure</pre>
<div class="block">Update a systemMetadata document</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sysMeta</code> - - the system metadata object in the system to update</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
</dl>
</li>
</ul>
<a name="updateSystemMetadata-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-org.dataone.service.types.v2.SystemMetadata-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateSystemMetadata</h4>
<pre>protected&nbsp;boolean&nbsp;updateSystemMetadata(org.dataone.service.types.v1.Session&nbsp;session,
                                       org.dataone.service.types.v1.Identifier&nbsp;pid,
                                       org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta,
                                       boolean&nbsp;needUpdateModificationDate,
                                       org.dataone.service.types.v2.SystemMetadata&nbsp;currentSysmeta,
                                       boolean&nbsp;fromCN)
                                throws org.dataone.service.exceptions.NotImplemented,
                                       org.dataone.service.exceptions.NotAuthorized,
                                       org.dataone.service.exceptions.ServiceFailure,
                                       org.dataone.service.exceptions.InvalidRequest,
                                       org.dataone.service.exceptions.InvalidSystemMetadata,
                                       org.dataone.service.exceptions.InvalidToken</pre>
<div class="block">Update the system metadata of the specified pid. The caller of this method should lock the system metadata in hazelcast server.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the identity of the client which calls the method</dd>
<dd><code>pid</code> - - the identifier of the object which will be updated</dd>
<dd><code>sysmeta</code> - - the new system metadata</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidSystemMetadata</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
</dl>
</li>
</ul>
<a name="expandPermissions-org.dataone.service.types.v1.Permission-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expandPermissions</h4>
<pre>protected static&nbsp;java.util.List&lt;org.dataone.service.types.v1.Permission&gt;&nbsp;expandPermissions(org.dataone.service.types.v1.Permission&nbsp;permission)</pre>
<div class="block">Given a Permission, returns a list of all permissions that it encompasses
 Permissions are hierarchical so that WRITE also allows READ.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>permission</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of included Permissions for the given permission</dd>
</dl>
</li>
</ul>
<a name="listNodesBySubject-org.dataone.service.types.v1.Subject-org.dataone.service.types.v2.NodeList-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listNodesBySubject</h4>
<pre>protected&nbsp;java.util.List&lt;org.dataone.service.types.v2.Node&gt;&nbsp;listNodesBySubject(org.dataone.service.types.v1.Subject&nbsp;subject,
                                                                               org.dataone.service.types.v2.NodeList&nbsp;nodelist)
                                                                        throws org.dataone.service.exceptions.ServiceFailure,
                                                                               org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Calls CN.listNodes() to assemble a list of nodes that have been registered with the DataONE infrastructure
 that match the given session subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subject</code> - - the subject serving as the filter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>nodes - List of nodes from the registry with a matching session subject</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="archiveObject-boolean-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>archiveObject</h4>
<pre>protected&nbsp;org.dataone.service.types.v1.Identifier&nbsp;archiveObject(boolean&nbsp;log,
                                                                org.dataone.service.types.v1.Session&nbsp;session,
                                                                org.dataone.service.types.v1.Identifier&nbsp;pid,
                                                                org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta,
                                                                boolean&nbsp;needModifyDate)
                                                         throws org.dataone.service.exceptions.InvalidToken,
                                                                org.dataone.service.exceptions.ServiceFailure,
                                                                org.dataone.service.exceptions.NotAuthorized,
                                                                org.dataone.service.exceptions.NotFound,
                                                                org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Archives an object, where the object is either a 
 data object or a science metadata object.
 Note: it doesn't check the authorization; it doesn't lock the system metadata;it only accept pid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - - the Session object containing the credentials for the Subject</dd>
<dd><code>pid</code> - - The object identifier to be archived</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>pid - the identifier of the object used for the archiving</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="archiveCNObject-boolean-org.dataone.service.types.v1.Session-org.dataone.service.types.v1.Identifier-org.dataone.service.types.v2.SystemMetadata-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>archiveCNObject</h4>
<pre>protected&nbsp;void&nbsp;archiveCNObject(boolean&nbsp;log,
                               org.dataone.service.types.v1.Session&nbsp;session,
                               org.dataone.service.types.v1.Identifier&nbsp;pid,
                               org.dataone.service.types.v2.SystemMetadata&nbsp;sysMeta,
                               boolean&nbsp;needModifyDate)
                        throws org.dataone.service.exceptions.InvalidToken,
                               org.dataone.service.exceptions.ServiceFailure,
                               org.dataone.service.exceptions.NotAuthorized,
                               org.dataone.service.exceptions.NotFound,
                               org.dataone.service.exceptions.NotImplemented</pre>
<div class="block">Archive a object on cn and notify the replica. This method doesn't lock the system metadata map. The caller should lock it.
 This method doesn't check the authorization; this method only accept a pid.
 It wouldn't notify the replca that the system metadata has been changed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - </dd>
<dd><code>pid</code> - </dd>
<dd><code>sysMeta</code> - </dd>
<dd><code>notifyReplica</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="checkV1SystemMetaPidExist-org.dataone.service.types.v1.Identifier-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkV1SystemMetaPidExist</h4>
<pre>public&nbsp;void&nbsp;checkV1SystemMetaPidExist(org.dataone.service.types.v1.Identifier&nbsp;identifier,
                                      java.lang.String&nbsp;serviceFailureCode,
                                      java.lang.String&nbsp;serviceFailureMessage,
                                      java.lang.String&nbsp;noFoundCode,
                                      java.lang.String&nbsp;notFoundMessage)
                               throws org.dataone.service.exceptions.ServiceFailure,
                                      org.dataone.service.exceptions.NotFound</pre>
<div class="block">A utility method for v1 api to check the specified identifier exists as a pid
 Uses the IdentifierManager to call the Identifier table directly - this detects
 Identifiers for deleted objects (where the SystemMetadata doesn't exist, but the Identifier remains)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>identifier</code> - the specified identifier</dd>
<dd><code>serviceFailureCode</code> - the detail error code for the service failure exception</dd>
<dd><code>noFoundCode</code> - the detail error code for the not found exception</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
</dl>
</li>
</ul>
<a name="getPIDForSID-org.dataone.service.types.v1.Identifier-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPIDForSID</h4>
<pre>protected&nbsp;org.dataone.service.types.v1.Identifier&nbsp;getPIDForSID(org.dataone.service.types.v1.Identifier&nbsp;sid,
                                                               java.lang.String&nbsp;serviceFailureCode)
                                                        throws org.dataone.service.exceptions.ServiceFailure</pre>
<div class="block">Utility method to get the PID for an SID. If the specified identifier is not an SID
 , null will be returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sid</code> - the specified sid</dd>
<dd><code>serviceFailureCode</code> - the detail error code for the service failure exception</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the pid for the sid. If the specified identifier is not an SID, null will be returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>as well for situations where you need the SystemMetadata.  The advantage of 
 this method is that it doesn't unmarshall systemmetadata, and doesn't throw NotFound exceptions.</code></dd>
</dl>
</li>
</ul>
<a name="getSystemMetadataForPID-org.dataone.service.types.v1.Identifier-java.lang.String-java.lang.String-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSystemMetadataForPID</h4>
<pre>protected&nbsp;org.dataone.service.types.v2.SystemMetadata&nbsp;getSystemMetadataForPID(org.dataone.service.types.v1.Identifier&nbsp;pid,
                                                                              java.lang.String&nbsp;serviceFailureCode,
                                                                              java.lang.String&nbsp;invalidRequestCode,
                                                                              java.lang.String&nbsp;notFoundCode,
                                                                              boolean&nbsp;needDeleteInfo)
                                                                       throws org.dataone.service.exceptions.ServiceFailure,
                                                                              org.dataone.service.exceptions.InvalidRequest,
                                                                              org.dataone.service.exceptions.NotFound</pre>
<div class="block">Get the system metadata for the given PID (not a sid).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pid</code> - </dd>
<dd><code>serviceFailureCode</code> - </dd>
<dd><code>invalidRequestCode</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the system metadata associated with the pid</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
</dl>
</li>
</ul>
<a name="checkSidInModifyingSystemMetadata-org.dataone.service.types.v2.SystemMetadata-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSidInModifyingSystemMetadata</h4>
<pre>protected&nbsp;boolean&nbsp;checkSidInModifyingSystemMetadata(org.dataone.service.types.v2.SystemMetadata&nbsp;sysmeta,
                                                    java.lang.String&nbsp;invalidSystemMetadataCode,
                                                    java.lang.String&nbsp;serviceFailureCode)
                                             throws org.dataone.service.exceptions.InvalidSystemMetadata,
                                                    org.dataone.service.exceptions.ServiceFailure</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidSystemMetadata</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
</dl>
</li>
</ul>
<a name="listViews-org.dataone.service.types.v1.Session-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listViews</h4>
<pre>public&nbsp;org.dataone.service.types.v2.OptionList&nbsp;listViews(org.dataone.service.types.v1.Session&nbsp;arg0)
                                                  throws org.dataone.service.exceptions.InvalidToken,
                                                         org.dataone.service.exceptions.ServiceFailure,
                                                         org.dataone.service.exceptions.NotAuthorized,
                                                         org.dataone.service.exceptions.InvalidRequest,
                                                         org.dataone.service.exceptions.NotImplemented</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="listViews--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listViews</h4>
<pre>public&nbsp;org.dataone.service.types.v2.OptionList&nbsp;listViews()
                                                  throws org.dataone.service.exceptions.InvalidToken,
                                                         org.dataone.service.exceptions.ServiceFailure,
                                                         org.dataone.service.exceptions.NotAuthorized,
                                                         org.dataone.service.exceptions.InvalidRequest,
                                                         org.dataone.service.exceptions.NotImplemented</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
</dl>
</li>
</ul>
<a name="view-org.dataone.service.types.v1.Session-java.lang.String-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>view</h4>
<pre>public&nbsp;java.io.InputStream&nbsp;view(org.dataone.service.types.v1.Session&nbsp;session,
                                java.lang.String&nbsp;format,
                                org.dataone.service.types.v1.Identifier&nbsp;id)
                         throws org.dataone.service.exceptions.InvalidToken,
                                org.dataone.service.exceptions.ServiceFailure,
                                org.dataone.service.exceptions.NotAuthorized,
                                org.dataone.service.exceptions.InvalidRequest,
                                org.dataone.service.exceptions.NotImplemented,
                                org.dataone.service.exceptions.NotFound</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidToken</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
<dd><code>org.dataone.service.exceptions.NotAuthorized</code></dd>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.NotImplemented</code></dd>
<dd><code>org.dataone.service.exceptions.NotFound</code></dd>
</dl>
</li>
</ul>
<a name="existsInObsoletes-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>existsInObsoletes</h4>
<pre>protected&nbsp;java.lang.String&nbsp;existsInObsoletes(org.dataone.service.types.v1.Identifier&nbsp;id)
                                      throws org.dataone.service.exceptions.InvalidRequest,
                                             org.dataone.service.exceptions.ServiceFailure</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></dd>
</dl>
</li>
</ul>
<a name="existsInObsoletedBy-org.dataone.service.types.v1.Identifier-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>existsInObsoletedBy</h4>
<pre>protected&nbsp;java.lang.String&nbsp;existsInObsoletedBy(org.dataone.service.types.v1.Identifier&nbsp;id)
                                        throws org.dataone.service.exceptions.InvalidRequest,
                                               org.dataone.service.exceptions.ServiceFailure</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.dataone.service.exceptions.InvalidRequest</code></dd>
<dd><code>org.dataone.service.exceptions.ServiceFailure</code></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/D1NodeService.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/dataone/D1AuthHelper.html" title="class in edu.ucsb.nceas.metacat.dataone"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/dataone/D1NodeVersionChecker.html" title="class in edu.ucsb.nceas.metacat.dataone"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/dataone/D1NodeService.html" target="_top">Frames</a></li>
<li><a href="D1NodeService.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>