<!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:50 UTC 2020 -->
<title>DocumentImpl (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="DocumentImpl (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":9,"i21":9,"i22":9,"i23":9,"i24":10,"i25":10,"i26":9,"i27":9,"i28":9,"i29":10,"i30":10,"i31":10,"i32":10,"i33":9,"i34":9,"i35":9,"i36":9};
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/DocumentImpl.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/DocumentIdQuery.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/DocumentImplWrapper.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/DocumentImpl.html" target="_top">Frames</a></li>
<li><a href="DocumentImpl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">edu.ucsb.nceas.metacat</div>
<h2 title="Class DocumentImpl" class="title">Class DocumentImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.DocumentImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">DocumentImpl</span>
extends java.lang.Object</pre>
<div class="block">A class that represents an XML document. It can be created with a simple
 document identifier from a database connection. It also will write an XML
 text document to a database connection using SAX.</div>
</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>protected <a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#connection">connection</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#DECLARATIONHANDLERPROPERTY">DECLARATIONHANDLERPROPERTY</a></span></code>&nbsp;</td>
</tr>
<tr 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/DocumentImpl.html#docid">docid</a></span></code>&nbsp;</td>
</tr>
<tr 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/DocumentImpl.html#docname">docname</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#DOCNAME">DOCNAME</a></span></code>&nbsp;</td>
</tr>
<tr 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/DocumentImpl.html#doctype">doctype</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#DOCUMENTTABLE">DOCUMENTTABLE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#DTD">DTD</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#EML2_0_0NAMESPACE">EML2_0_0NAMESPACE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#EML2_0_1NAMESPACE">EML2_0_1NAMESPACE</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#EML2_1_0NAMESPACE">EML2_1_0NAMESPACE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#EML2_1_1NAMESPACE">EML2_1_1NAMESPACE</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#EML200">EML200</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#EML210">EML210</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY">EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#EXTERNALSCHEMALOCATIONPROPERTY">EXTERNALSCHEMALOCATIONPROPERTY</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#FULLSCHEMAVALIDATIONFEATURE">FULLSCHEMAVALIDATIONFEATURE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#LEXICALPROPERTY">LEXICALPROPERTY</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#NAMESPACEFEATURE">NAMESPACEFEATURE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#NAMESPACEPREFIXESFEATURE">NAMESPACEPREFIXESFEATURE</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#NONAMESPACESCHEMA">NONAMESPACESCHEMA</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#PUBLICID">PUBLICID</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#RDF_SYNTAX_NAMESPACE">RDF_SYNTAX_NAMESPACE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#REVISIONTABLE">REVISIONTABLE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#rootnodeid">rootnodeid</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#SCHEMA">SCHEMA</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#SCHEMAVALIDATIONFEATURE">SCHEMAVALIDATIONFEATURE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#SYSTEMID">SYSTEMID</a></span></code>&nbsp;</td>
</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/DocumentImpl.html#VALIDATIONFEATURE">VALIDATIONFEATURE</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/DocumentImpl.html#DocumentImpl--">DocumentImpl</a></span>()</code>
<div class="block">Default constructor</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#DocumentImpl-edu.ucsb.nceas.metacat.database.DBConnection-long-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-int-java.util.Date-java.util.Date-">DocumentImpl</a></span>(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
            long&nbsp;rootNodeId,
            java.lang.String&nbsp;docName,
            java.lang.String&nbsp;docType,
            java.lang.String&nbsp;docId,
            java.lang.String&nbsp;newRevision,
            java.lang.String&nbsp;action,
            java.lang.String&nbsp;user,
            java.lang.String&nbsp;pub,
            java.lang.String&nbsp;catalogId,
            int&nbsp;serverCode,
            java.util.Date&nbsp;createDate,
            java.util.Date&nbsp;updateDate)</code>
<div class="block">Construct a new document instance, writing the contents to the database.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#DocumentImpl-java.lang.String-">DocumentImpl</a></span>(java.lang.String&nbsp;docid)</code>
<div class="block">Constructor, creates document from database connection, used for reading
 the document</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#DocumentImpl-java.lang.String-boolean-">DocumentImpl</a></span>(java.lang.String&nbsp;accNum,
            boolean&nbsp;readNodes)</code>
<div class="block">Constructor used to create a document and read the document information
 from the database.</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#buildIndex--">buildIndex</a></span>()</code>
<div class="block">Build the index records for this document.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#delete-java.lang.String-boolean-java.lang.String-java.lang.String:A-java.lang.String-boolean-">delete</a></span>(java.lang.String&nbsp;accnum,
      boolean&nbsp;ignoreRev,
      java.lang.String&nbsp;user,
      java.lang.String[]&nbsp;groups,
      java.lang.String&nbsp;notifyServer,
      boolean&nbsp;removeAll)</code>
<div class="block">Archive an object from the xml_documents table to the xml_revision table (including other changes as well).</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#delete-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-boolean-">delete</a></span>(java.lang.String&nbsp;accnum,
      java.lang.String&nbsp;user,
      java.lang.String[]&nbsp;groups,
      java.lang.String&nbsp;notifyServer,
      boolean&nbsp;removeAll)</code>
<div class="block">Archive an object from the xml_documents table to the xml_revision table (including other changes as well).</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getBytes--">getBytes</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.util.Date</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getCreateDate--">getCreateDate</a></span>()</code>
<div class="block">get the creation date</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDataFileLockGrant-java.lang.String-">getDataFileLockGrant</a></span>(java.lang.String&nbsp;accnum)</code>
<div class="block">Get a lock for a given document.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDataFileLockGrant-java.lang.String-int-">getDataFileLockGrant</a></span>(java.lang.String&nbsp;accnum,
                    int&nbsp;serverCode)</code>
<div class="block">The method will check if metacat can get data file lock grant If server
 code is 1, it get.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDocHomeServer--">getDocHomeServer</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDocID--">getDocID</a></span>()</code>
<div class="block">Get the document identifier (docid)</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDocname--">getDocname</a></span>()</code>
<div class="block">get the document name</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getDoctype--">getDoctype</a></span>()</code>
<div class="block">get the document type (which is the PublicID)</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getPublicaccess--">getPublicaccess</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getRev--">getRev</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getRootNodeID--">getRootNodeID</a></span>()</code>
<div class="block">get the root node identifier</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getServerlocation--">getServerlocation</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getSystemID--">getSystemID</a></span>()</code>
<div class="block">get the system identifier</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.util.Date</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getUpdateDate--">getUpdateDate</a></span>()</code>
<div class="block">get the update date</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/DocumentImpl.html#getUserowner--">getUserowner</a></span>()</code>&nbsp;</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/DocumentImpl.html#getUserupdated--">getUserupdated</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#getValidateType--">getValidateType</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#hasAllPermission-java.lang.String-java.lang.String:A-java.lang.String-">hasAllPermission</a></span>(java.lang.String&nbsp;user,
                java.lang.String[]&nbsp;groups,
                java.lang.String&nbsp;docid)</code>
<div class="block">Check for "ALL" or "CHMOD" permission on @docid for @user and/or @groups
 from DB connection</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/DocumentImpl.html#hasReadPermission-java.lang.String-java.lang.String:A-java.lang.String-">hasReadPermission</a></span>(java.lang.String&nbsp;user,
                 java.lang.String[]&nbsp;groups,
                 java.lang.String&nbsp;docId)</code>
<div class="block">Check for "READ" permission base on docid, user and group</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/DocumentImpl.html#hasWritePermission-java.lang.String-java.lang.String:A-java.lang.String-">hasWritePermission</a></span>(java.lang.String&nbsp;user,
                  java.lang.String[]&nbsp;groups,
                  java.lang.String&nbsp;docid)</code>
<div class="block">Check for "WRITE" permission on @docid for @user and/or @groups
 from DB connection</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#main-java.lang.String:A-">main</a></span>(java.lang.String[]&nbsp;args)</code>
<div class="block">the main routine used to test the DBWriter utility.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#readFromFileSystem-java.io.OutputStream-java.lang.String-java.lang.String:A-java.lang.String-">readFromFileSystem</a></span>(java.io.OutputStream&nbsp;out,
                  java.lang.String&nbsp;user,
                  java.lang.String[]&nbsp;groups,
                  java.lang.String&nbsp;documentPath)</code>
<div class="block">Read the XML document from the file system and write to a Writer.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#readUsingSlowAlgorithm--">readUsingSlowAlgorithm</a></span>()</code>
<div class="block">Get a text representation of the XML document as a string This older
 algorithm uses a recursive tree of Objects to represent the nodes of the
 tree.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#registerDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-">registerDocument</a></span>(java.lang.String&nbsp;docname,
                java.lang.String&nbsp;doctype,
                java.lang.String&nbsp;accnum,
                java.lang.String&nbsp;user,
                java.lang.String[]&nbsp;groupnames)</code>
<div class="block">This method will be call in handleUploadRequest in MetacatServlet class</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#registerDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-int-">registerDocument</a></span>(java.lang.String&nbsp;docname,
                java.lang.String&nbsp;doctype,
                java.lang.String&nbsp;accnum,
                java.lang.String&nbsp;user,
                java.lang.String[]&nbsp;groups,
                int&nbsp;serverCode)</code>
<div class="block">Register a document that resides on the filesystem with the database.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#registerDocumentInReplication-java.lang.String-java.lang.String-java.lang.String-java.lang.String-int-java.lang.String-java.util.Date-java.util.Date-">registerDocumentInReplication</a></span>(java.lang.String&nbsp;docname,
                             java.lang.String&nbsp;doctype,
                             java.lang.String&nbsp;accnum,
                             java.lang.String&nbsp;user,
                             int&nbsp;serverCode,
                             java.lang.String&nbsp;tableName,
                             java.util.Date&nbsp;createDate,
                             java.util.Date&nbsp;updateDate)</code>
<div class="block">Register a document that resides on the filesystem with the database.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#toString--">toString</a></span>()</code>
<div class="block">Print a string representation of the XML document
 NOTE: this detects the character encoding, or uses the XML default</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#toString-java.lang.String-java.lang.String:A-boolean-">toString</a></span>(java.lang.String&nbsp;user,
        java.lang.String[]&nbsp;groups,
        boolean&nbsp;withInlinedata)</code>
<div class="block">Print a string representation of the XML document
 NOTE: this detects the character encoding, or uses the XML default</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#toXml-java.io.OutputStream-java.lang.String-java.lang.String:A-boolean-">toXml</a></span>(java.io.OutputStream&nbsp;out,
     java.lang.String&nbsp;user,
     java.lang.String[]&nbsp;groups,
     boolean&nbsp;withInLineData)</code>
<div class="block">Print a text representation of the XML document to a Writer</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#toXmlFromDb-java.io.OutputStream-java.lang.String-java.lang.String:A-boolean-">toXmlFromDb</a></span>(java.io.OutputStream&nbsp;outputStream,
           java.lang.String&nbsp;user,
           java.lang.String[]&nbsp;groups,
           boolean&nbsp;withInLineData)</code>
<div class="block">Print a text representation of the XML document to a Writer</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#write-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-int-boolean-java.lang.String-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">write</a></span>(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
     java.lang.String&nbsp;xmlString,
     java.lang.String&nbsp;pub,
     java.io.Reader&nbsp;dtd,
     java.lang.String&nbsp;action,
     java.lang.String&nbsp;accnum,
     java.lang.String&nbsp;user,
     java.lang.String[]&nbsp;groups,
     int&nbsp;serverCode,
     boolean&nbsp;override,
     java.lang.String&nbsp;ruleBase,
     boolean&nbsp;needValidation,
     boolean&nbsp;writeAccessRules,
     byte[]&nbsp;xmlBytes,
     java.lang.String&nbsp;schemaLocation,
     org.dataone.service.types.v1.Checksum&nbsp;checksum)</code>
<div class="block">Write an XML file to the database, given a Reader</div>
</td>
</tr>
<tr id="i34" 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/DocumentImpl.html#write-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">write</a></span>(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
     java.lang.String&nbsp;xmlString,
     java.lang.String&nbsp;pub,
     java.io.Reader&nbsp;dtd,
     java.lang.String&nbsp;action,
     java.lang.String&nbsp;docid,
     java.lang.String&nbsp;user,
     java.lang.String[]&nbsp;groups,
     java.lang.String&nbsp;ruleBase,
     boolean&nbsp;needValidation,
     boolean&nbsp;writeAccessRules,
     byte[]&nbsp;xmlBytes,
     java.lang.String&nbsp;schemaLocation,
     org.dataone.service.types.v1.Checksum&nbsp;checksum)</code>
<div class="block">Write an XML file to the database, given a filename</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DocumentImpl.html#writeDataFileInReplication-java.io.InputStream-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-java.util.Date-java.util.Date-">writeDataFileInReplication</a></span>(java.io.InputStream&nbsp;input,
                          java.lang.String&nbsp;filePath,
                          java.lang.String&nbsp;docname,
                          java.lang.String&nbsp;doctype,
                          java.lang.String&nbsp;accnum,
                          java.lang.String&nbsp;user,
                          java.lang.String&nbsp;docHomeServer,
                          java.lang.String&nbsp;notificationServer,
                          java.lang.String&nbsp;tableName,
                          boolean&nbsp;timedReplication,
                          java.util.Date&nbsp;createDate,
                          java.util.Date&nbsp;updateDate)</code>
<div class="block">This method will register a data file entry in xml_documents and save a
 data file input Stream into file system..</div>
</td>
</tr>
<tr id="i36" 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/DocumentImpl.html#writeReplication-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-byte:A-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-java.lang.String-java.lang.String-boolean-java.lang.String-boolean-java.util.Date-java.util.Date-java.lang.String-">writeReplication</a></span>(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
                java.lang.String&nbsp;xmlString,
                byte[]&nbsp;xmlBytes,
                java.lang.String&nbsp;pub,
                java.io.Reader&nbsp;dtd,
                java.lang.String&nbsp;action,
                java.lang.String&nbsp;accnum,
                java.lang.String&nbsp;user,
                java.lang.String[]&nbsp;groups,
                java.lang.String&nbsp;homeServer,
                java.lang.String&nbsp;notifyServer,
                java.lang.String&nbsp;ruleBase,
                boolean&nbsp;needValidation,
                java.lang.String&nbsp;tableName,
                boolean&nbsp;timedReplication,
                java.util.Date&nbsp;createDate,
                java.util.Date&nbsp;updateDate,
                java.lang.String&nbsp;schemaLocation)</code>
<div class="block">Write an XML file to the database during replication</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, 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="SCHEMA">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SCHEMA</h4>
<pre>public static final&nbsp;java.lang.String SCHEMA</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.SCHEMA">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NONAMESPACESCHEMA">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NONAMESPACESCHEMA</h4>
<pre>public static final&nbsp;java.lang.String NONAMESPACESCHEMA</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.NONAMESPACESCHEMA">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DTD">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DTD</h4>
<pre>public static final&nbsp;java.lang.String DTD</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.DTD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EML200">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML200</h4>
<pre>public static final&nbsp;java.lang.String EML200</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.EML200">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EML210">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML210</h4>
<pre>public static final&nbsp;java.lang.String EML210</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.EML210">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXTERNALSCHEMALOCATIONPROPERTY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXTERNALSCHEMALOCATIONPROPERTY</h4>
<pre>public static final&nbsp;java.lang.String EXTERNALSCHEMALOCATIONPROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.EXTERNALSCHEMALOCATIONPROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY</h4>
<pre>public static final&nbsp;java.lang.String EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.EXTERNALNONAMESPACESCHEMALOCATIONPROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REVISIONTABLE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REVISIONTABLE</h4>
<pre>public static final&nbsp;java.lang.String REVISIONTABLE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.REVISIONTABLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DOCUMENTTABLE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOCUMENTTABLE</h4>
<pre>public static final&nbsp;java.lang.String DOCUMENTTABLE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.DOCUMENTTABLE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DECLARATIONHANDLERPROPERTY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DECLARATIONHANDLERPROPERTY</h4>
<pre>public static final&nbsp;java.lang.String DECLARATIONHANDLERPROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.DECLARATIONHANDLERPROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LEXICALPROPERTY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LEXICALPROPERTY</h4>
<pre>public static final&nbsp;java.lang.String LEXICALPROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.LEXICALPROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="VALIDATIONFEATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>VALIDATIONFEATURE</h4>
<pre>public static final&nbsp;java.lang.String VALIDATIONFEATURE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.VALIDATIONFEATURE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SCHEMAVALIDATIONFEATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SCHEMAVALIDATIONFEATURE</h4>
<pre>public static final&nbsp;java.lang.String SCHEMAVALIDATIONFEATURE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.SCHEMAVALIDATIONFEATURE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FULLSCHEMAVALIDATIONFEATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FULLSCHEMAVALIDATIONFEATURE</h4>
<pre>public static final&nbsp;java.lang.String FULLSCHEMAVALIDATIONFEATURE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.FULLSCHEMAVALIDATIONFEATURE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAMESPACEFEATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAMESPACEFEATURE</h4>
<pre>public static final&nbsp;java.lang.String NAMESPACEFEATURE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.NAMESPACEFEATURE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAMESPACEPREFIXESFEATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAMESPACEPREFIXESFEATURE</h4>
<pre>public static final&nbsp;java.lang.String NAMESPACEPREFIXESFEATURE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.NAMESPACEPREFIXESFEATURE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EML2_0_0NAMESPACE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML2_0_0NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String EML2_0_0NAMESPACE</pre>
</li>
</ul>
<a name="EML2_0_1NAMESPACE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML2_0_1NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String EML2_0_1NAMESPACE</pre>
</li>
</ul>
<a name="EML2_1_0NAMESPACE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML2_1_0NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String EML2_1_0NAMESPACE</pre>
</li>
</ul>
<a name="EML2_1_1NAMESPACE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EML2_1_1NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String EML2_1_1NAMESPACE</pre>
</li>
</ul>
<a name="RDF_SYNTAX_NAMESPACE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RDF_SYNTAX_NAMESPACE</h4>
<pre>public static final&nbsp;java.lang.String RDF_SYNTAX_NAMESPACE</pre>
</li>
</ul>
<a name="DOCNAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOCNAME</h4>
<pre>public static final&nbsp;java.lang.String DOCNAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.DOCNAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PUBLICID">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PUBLICID</h4>
<pre>public static final&nbsp;java.lang.String PUBLICID</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.PUBLICID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SYSTEMID">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SYSTEMID</h4>
<pre>public static final&nbsp;java.lang.String SYSTEMID</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.DocumentImpl.SYSTEMID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="connection">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connection</h4>
<pre>protected&nbsp;<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a> connection</pre>
</li>
</ul>
<a name="docname">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>docname</h4>
<pre>protected&nbsp;java.lang.String docname</pre>
</li>
</ul>
<a name="doctype">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doctype</h4>
<pre>protected&nbsp;java.lang.String doctype</pre>
</li>
</ul>
<a name="docid">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>docid</h4>
<pre>protected&nbsp;java.lang.String docid</pre>
</li>
</ul>
<a name="rootnodeid">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rootnodeid</h4>
<pre>protected&nbsp;long rootnodeid</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DocumentImpl--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DocumentImpl</h4>
<pre>public&nbsp;DocumentImpl()</pre>
<div class="block">Default constructor</div>
</li>
</ul>
<a name="DocumentImpl-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DocumentImpl</h4>
<pre>public&nbsp;DocumentImpl(java.lang.String&nbsp;accNum,
                    boolean&nbsp;readNodes)
             throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Constructor used to create a document and read the document information
 from the database. If readNodes is false, then the node data is not read
 at this time, but is deferred until it is needed (such as when a call to
 toXml() is made).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the database connection from which to read the document</dd>
<dd><code>docid</code> - the identifier of the document to be created, it should
            be with revision</dd>
<dd><code>readNodes</code> - flag indicating whether the xmlnodes should be read</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="DocumentImpl-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DocumentImpl</h4>
<pre>public&nbsp;DocumentImpl(java.lang.String&nbsp;docid)
             throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Constructor, creates document from database connection, used for reading
 the document</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the database connection from which to read the document</dd>
<dd><code>docid</code> - the identifier of the document to be created</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="DocumentImpl-edu.ucsb.nceas.metacat.database.DBConnection-long-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-int-java.util.Date-java.util.Date-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DocumentImpl</h4>
<pre>public&nbsp;DocumentImpl(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
                    long&nbsp;rootNodeId,
                    java.lang.String&nbsp;docName,
                    java.lang.String&nbsp;docType,
                    java.lang.String&nbsp;docId,
                    java.lang.String&nbsp;newRevision,
                    java.lang.String&nbsp;action,
                    java.lang.String&nbsp;user,
                    java.lang.String&nbsp;pub,
                    java.lang.String&nbsp;catalogId,
                    int&nbsp;serverCode,
                    java.util.Date&nbsp;createDate,
                    java.util.Date&nbsp;updateDate)
             throws java.sql.SQLException,
                    java.lang.Exception</pre>
<div class="block">Construct a new document instance, writing the contents to the database.
 This method is called from DBSAXHandler because we need to know the root
 element name for documents without a DOCTYPE before creating it.

 In this constructor, the docid is without rev. There is a string rev to
 specify the revision user want to upadate. The revion is only need to be
 greater than current one. It is not need to be sequent number just after
 current one. So it is only used in update action</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC Connection to which all information is written</dd>
<dd><code>rootnodeid</code> - -
            sequence id of the root node in the document</dd>
<dd><code>docname</code> - -
            the name of DTD, i.e. the name immediately following the
            DOCTYPE keyword ( should be the root element name ) or the
            root element name if no DOCTYPE declaration provided (Oracle's
            and IBM parsers are not aware if it is not the root element
            name)</dd>
<dd><code>doctype</code> - -
            Public ID of the DTD, i.e. the name immediately following the
            PUBLIC keyword in DOCTYPE declaration or the docname if no
            Public ID provided or null if no DOCTYPE declaration provided</dd>
<dd><code>docid</code> - the docid to use for the UPDATE, no version number</dd>
<dd><code>version,</code> - need to be update</dd>
<dd><code>action</code> - the action to be performed (INSERT OR UPDATE)</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>pub</code> - flag for public "read" access on document</dd>
<dd><code>serverCode</code> - the serverid from xml_replication on which this document
            resides.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code>java.lang.Exception</code></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="registerDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerDocument</h4>
<pre>public static&nbsp;void&nbsp;registerDocument(java.lang.String&nbsp;docname,
                                    java.lang.String&nbsp;doctype,
                                    java.lang.String&nbsp;accnum,
                                    java.lang.String&nbsp;user,
                                    java.lang.String[]&nbsp;groupnames)
                             throws java.sql.SQLException,
                                    <a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a>,
                                    java.lang.Exception</pre>
<div class="block">This method will be call in handleUploadRequest in MetacatServlet class</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="registerDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerDocument</h4>
<pre>public static&nbsp;void&nbsp;registerDocument(java.lang.String&nbsp;docname,
                                    java.lang.String&nbsp;doctype,
                                    java.lang.String&nbsp;accnum,
                                    java.lang.String&nbsp;user,
                                    java.lang.String[]&nbsp;groups,
                                    int&nbsp;serverCode)
                             throws java.sql.SQLException,
                                    <a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a>,
                                    java.lang.Exception</pre>
<div class="block">Register a document that resides on the filesystem with the database.
 (ie, just an entry in xml_documents, nothing in xml_nodes). Creates a
 reference to a filesystem document (used for non-xml data files). This
 class only be called in MetaCatServerlet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC Connection to which all information is written</dd>
<dd><code>docname</code> - -
            the name of DTD, i.e. the name immediately following the
            DOCTYPE keyword ( should be the root element name ) or the
            root element name if no DOCTYPE declaration provided (Oracle's
            and IBM parsers are not aware if it is not the root element
            name)</dd>
<dd><code>doctype</code> - -
            Public ID of the DTD, i.e. the name immediately following the
            PUBLIC keyword in DOCTYPE declaration or the docname if no
            Public ID provided or null if no DOCTYPE declaration provided</dd>
<dd><code>accnum</code> - the accession number to use for the INSERT OR UPDATE, which
            includes a revision number for this revision of the document
            (e.g., knb.1.1)</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>groupnames</code> - the groups that owns the document</dd>
<dd><code>serverCode</code> - the serverid from xml_replication on which this document
            resides.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="registerDocumentInReplication-java.lang.String-java.lang.String-java.lang.String-java.lang.String-int-java.lang.String-java.util.Date-java.util.Date-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerDocumentInReplication</h4>
<pre>public static&nbsp;void&nbsp;registerDocumentInReplication(java.lang.String&nbsp;docname,
                                                 java.lang.String&nbsp;doctype,
                                                 java.lang.String&nbsp;accnum,
                                                 java.lang.String&nbsp;user,
                                                 int&nbsp;serverCode,
                                                 java.lang.String&nbsp;tableName,
                                                 java.util.Date&nbsp;createDate,
                                                 java.util.Date&nbsp;updateDate)
                                          throws java.sql.SQLException,
                                                 <a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a>,
                                                 java.lang.Exception</pre>
<div class="block">Register a document that resides on the filesystem with the database.
 (ie, just an entry in xml_documents, nothing in xml_nodes). Creates a
 reference to a filesystem document (used for non-xml data files) This
 method will be called for register data file in xml_documents in
 Replication. This method is revised from registerDocument.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC Connection to which all information is written</dd>
<dd><code>docname</code> - -
            the name of DTD, i.e. the name immediately following the
            DOCTYPE keyword ( should be the root element name ) or the
            root element name if no DOCTYPE declaration provided (Oracle's
            and IBM parsers are not aware if it is not the root element
            name)</dd>
<dd><code>doctype</code> - -
            Public ID of the DTD, i.e. the name immediately following the
            PUBLIC keyword in DOCTYPE declaration or the docname if no
            Public ID provided or null if no DOCTYPE declaration provided</dd>
<dd><code>accnum</code> - the accession number to use for the INSERT OR UPDATE, which
            includes a revision number for this revision of the document
            (e.g., knb.1.1)</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>serverCode</code> - the serverid from xml_replication on which this document
            resides.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="writeDataFileInReplication-java.io.InputStream-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-java.util.Date-java.util.Date-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeDataFileInReplication</h4>
<pre>public static&nbsp;void&nbsp;writeDataFileInReplication(java.io.InputStream&nbsp;input,
                                              java.lang.String&nbsp;filePath,
                                              java.lang.String&nbsp;docname,
                                              java.lang.String&nbsp;doctype,
                                              java.lang.String&nbsp;accnum,
                                              java.lang.String&nbsp;user,
                                              java.lang.String&nbsp;docHomeServer,
                                              java.lang.String&nbsp;notificationServer,
                                              java.lang.String&nbsp;tableName,
                                              boolean&nbsp;timedReplication,
                                              java.util.Date&nbsp;createDate,
                                              java.util.Date&nbsp;updateDate)
                                       throws java.sql.SQLException,
                                              <a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a>,
                                              java.lang.Exception</pre>
<div class="block">This method will register a data file entry in xml_documents and save a
 data file input Stream into file system.. It is only used in replication</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>input,</code> - the input stream which contain the file content.</dd>
<dd><code>,</code> - the input stream which contain the file content</dd>
<dd><code>docname</code> - -
            the name of DTD, for data file, it is a docid number.</dd>
<dd><code>doctype</code> - -
            "BIN" for data file</dd>
<dd><code>accnum</code> - the accession number to use for the INSERT OR UPDATE, which
            includes a revision number for this revision of the document
            (e.g., knb.1.1)</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>docHomeServer,</code> - the home server of the docid</dd>
<dd><code>notificationServer,</code> - the server to notify force replication info to local metacat</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/AccessionNumberException.html" title="class in edu.ucsb.nceas.metacat">AccessionNumberException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="getDataFileLockGrant-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataFileLockGrant</h4>
<pre>public static&nbsp;boolean&nbsp;getDataFileLockGrant(java.lang.String&nbsp;accnum)
                                    throws java.lang.Exception</pre>
<div class="block">Get a lock for a given document.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="getDataFileLockGrant-java.lang.String-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataFileLockGrant</h4>
<pre>public static&nbsp;boolean&nbsp;getDataFileLockGrant(java.lang.String&nbsp;accnum,
                                           int&nbsp;serverCode)
                                    throws java.lang.Exception</pre>
<div class="block">The method will check if metacat can get data file lock grant If server
 code is 1, it get. If server code is not 1 but call replication getlock
 successfully, it get else, it didn't get</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>accnum,</code> - the ID of the document</dd>
<dd><code>action,</code> - the action to the document</dd>
<dd><code>serverCode,</code> - the server location code</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="getDocname--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDocname</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDocname()</pre>
<div class="block">get the document name</div>
</li>
</ul>
<a name="getDoctype--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDoctype</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDoctype()</pre>
<div class="block">get the document type (which is the PublicID)</div>
</li>
</ul>
<a name="getSystemID--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSystemID</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSystemID()</pre>
<div class="block">get the system identifier</div>
</li>
</ul>
<a name="getRootNodeID--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootNodeID</h4>
<pre>public&nbsp;long&nbsp;getRootNodeID()</pre>
<div class="block">get the root node identifier</div>
</li>
</ul>
<a name="getCreateDate--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCreateDate</h4>
<pre>public&nbsp;java.util.Date&nbsp;getCreateDate()</pre>
<div class="block">get the creation date</div>
</li>
</ul>
<a name="getUpdateDate--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUpdateDate</h4>
<pre>public&nbsp;java.util.Date&nbsp;getUpdateDate()</pre>
<div class="block">get the update date</div>
</li>
</ul>
<a name="getDocID--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDocID</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDocID()</pre>
<div class="block">Get the document identifier (docid)</div>
</li>
</ul>
<a name="getUserowner--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserowner</h4>
<pre>public&nbsp;java.lang.String&nbsp;getUserowner()</pre>
</li>
</ul>
<a name="getUserupdated--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserupdated</h4>
<pre>public&nbsp;java.lang.String&nbsp;getUserupdated()</pre>
</li>
</ul>
<a name="getServerlocation--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerlocation</h4>
<pre>public&nbsp;int&nbsp;getServerlocation()</pre>
</li>
</ul>
<a name="getDocHomeServer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDocHomeServer</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDocHomeServer()</pre>
</li>
</ul>
<a name="getPublicaccess--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPublicaccess</h4>
<pre>public&nbsp;java.lang.String&nbsp;getPublicaccess()</pre>
</li>
</ul>
<a name="getRev--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRev</h4>
<pre>public&nbsp;int&nbsp;getRev()</pre>
</li>
</ul>
<a name="getValidateType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidateType</h4>
<pre>public&nbsp;java.lang.String&nbsp;getValidateType()</pre>
</li>
</ul>
<a name="toString-java.lang.String-java.lang.String:A-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString(java.lang.String&nbsp;user,
                                 java.lang.String[]&nbsp;groups,
                                 boolean&nbsp;withInlinedata)</pre>
<div class="block">Print a string representation of the XML document
 NOTE: this detects the character encoding, or uses the XML default</div>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Print a string representation of the XML document
 NOTE: this detects the character encoding, or uses the XML default</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="getBytes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBytes</h4>
<pre>public&nbsp;byte[]&nbsp;getBytes()</pre>
</li>
</ul>
<a name="readUsingSlowAlgorithm--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUsingSlowAlgorithm</h4>
<pre>public&nbsp;java.lang.String&nbsp;readUsingSlowAlgorithm()
                                        throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Get a text representation of the XML document as a string This older
 algorithm uses a recursive tree of Objects to represent the nodes of the
 tree. Each object is passed the data for the document and searches all of
 the document data to find its children nodes and recursively build. Thus,
 because each node reads the whole document, this algorithm is extremely
 slow for larger documents, and the time to completion is O(N^N) wrt the
 number of nodes. See toXml() for a better algorithm.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="toXml-java.io.OutputStream-java.lang.String-java.lang.String:A-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toXml</h4>
<pre>public&nbsp;java.io.InputStream&nbsp;toXml(java.io.OutputStream&nbsp;out,
                                 java.lang.String&nbsp;user,
                                 java.lang.String[]&nbsp;groups,
                                 boolean&nbsp;withInLineData)
                          throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Print a text representation of the XML document to a Writer</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pw</code> - the Writer to which we print the document Now we decide no
            matter withinInlineData's value, the document will</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="toXmlFromDb-java.io.OutputStream-java.lang.String-java.lang.String:A-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toXmlFromDb</h4>
<pre>public&nbsp;void&nbsp;toXmlFromDb(java.io.OutputStream&nbsp;outputStream,
                        java.lang.String&nbsp;user,
                        java.lang.String[]&nbsp;groups,
                        boolean&nbsp;withInLineData)
                 throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a>,
                        java.io.IOException</pre>
<div class="block">Print a text representation of the XML document to a Writer</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pw</code> - the Writer to which we print the document Now we decide no
            matter withinInlineData's value, the document will</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="readFromFileSystem-java.io.OutputStream-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFromFileSystem</h4>
<pre>public&nbsp;java.io.InputStream&nbsp;readFromFileSystem(java.io.OutputStream&nbsp;out,
                                              java.lang.String&nbsp;user,
                                              java.lang.String[]&nbsp;groups,
                                              java.lang.String&nbsp;documentPath)
                                       throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Read the XML document from the file system and write to a Writer. Strip
 out any inline data that the user does not have permission to read.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pw</code> - the Writer to which we print the document</dd>
<dd><code>user</code> - the user we will use to verify inline data access</dd>
<dd><code>groups</code> - the groups we will use to verify inline data access</dd>
<dd><code>documentPath</code> - the location of the document on disk</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="buildIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildIndex</h4>
<pre>public&nbsp;void&nbsp;buildIndex()
                throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Build the index records for this document. For each node, all absolute
 and relative paths to the root of the document are created and inserted
 into the xml_index table. This requires that the DocumentImpl instance
 exists, so first call the constructor that reads the document from the
 database.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code> - on error getting the node records for the document</dd>
</dl>
</li>
</ul>
<a name="write-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public static&nbsp;java.lang.String&nbsp;write(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
                                     java.lang.String&nbsp;xmlString,
                                     java.lang.String&nbsp;pub,
                                     java.io.Reader&nbsp;dtd,
                                     java.lang.String&nbsp;action,
                                     java.lang.String&nbsp;docid,
                                     java.lang.String&nbsp;user,
                                     java.lang.String[]&nbsp;groups,
                                     java.lang.String&nbsp;ruleBase,
                                     boolean&nbsp;needValidation,
                                     boolean&nbsp;writeAccessRules,
                                     byte[]&nbsp;xmlBytes,
                                     java.lang.String&nbsp;schemaLocation,
                                     org.dataone.service.types.v1.Checksum&nbsp;checksum)
                              throws java.lang.Exception</pre>
<div class="block">Write an XML file to the database, given a filename</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC connection to the database</dd>
<dd><code>filename</code> - the filename to be loaded into the database</dd>
<dd><code>pub</code> - flag for public "read" access on document</dd>
<dd><code>dtdfilename</code> - the dtd to be uploaded on server's file system</dd>
<dd><code>action</code> - the action to be performed (INSERT OR UPDATE)</dd>
<dd><code>docid</code> - the docid to use for the INSERT OR UPDATE</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>groups</code> - the groups to which user belongs</dd>
<dd><code>writeAccessRules</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="write-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-int-boolean-java.lang.String-boolean-boolean-byte:A-java.lang.String-org.dataone.service.types.v1.Checksum-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public static&nbsp;java.lang.String&nbsp;write(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
                                     java.lang.String&nbsp;xmlString,
                                     java.lang.String&nbsp;pub,
                                     java.io.Reader&nbsp;dtd,
                                     java.lang.String&nbsp;action,
                                     java.lang.String&nbsp;accnum,
                                     java.lang.String&nbsp;user,
                                     java.lang.String[]&nbsp;groups,
                                     int&nbsp;serverCode,
                                     boolean&nbsp;override,
                                     java.lang.String&nbsp;ruleBase,
                                     boolean&nbsp;needValidation,
                                     boolean&nbsp;writeAccessRules,
                                     byte[]&nbsp;xmlBytes,
                                     java.lang.String&nbsp;schemaLocation,
                                     org.dataone.service.types.v1.Checksum&nbsp;checksum)
                              throws java.lang.Exception</pre>
<div class="block">Write an XML file to the database, given a Reader</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC connection to the database</dd>
<dd><code>xml</code> - the xml stream to be loaded into the database</dd>
<dd><code>pub</code> - flag for public "read" access on xml document</dd>
<dd><code>dtd</code> - the dtd to be uploaded on server's file system</dd>
<dd><code>action</code> - the action to be performed (INSERT or UPDATE)</dd>
<dd><code>accnum</code> - the docid + rev# to use on INSERT or UPDATE</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>groups</code> - the groups to which user belongs</dd>
<dd><code>serverCode</code> - the serverid from xml_replication on which this document
            resides.</dd>
<dd><code>override</code> - flag to stop insert replication checking. if override = true
            then a document not belonging to the local server will not be
            checked upon update for a file lock. if override = false then
            a document not from this server, upon update will be locked
            and version checked.</dd>
<dd><code>writeAccessRules</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="writeReplication-edu.ucsb.nceas.metacat.database.DBConnection-java.lang.String-byte:A-java.lang.String-java.io.Reader-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-java.lang.String-java.lang.String-boolean-java.lang.String-boolean-java.util.Date-java.util.Date-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeReplication</h4>
<pre>public static&nbsp;java.lang.String&nbsp;writeReplication(<a href="../../../../edu/ucsb/nceas/metacat/database/DBConnection.html" title="class in edu.ucsb.nceas.metacat.database">DBConnection</a>&nbsp;conn,
                                                java.lang.String&nbsp;xmlString,
                                                byte[]&nbsp;xmlBytes,
                                                java.lang.String&nbsp;pub,
                                                java.io.Reader&nbsp;dtd,
                                                java.lang.String&nbsp;action,
                                                java.lang.String&nbsp;accnum,
                                                java.lang.String&nbsp;user,
                                                java.lang.String[]&nbsp;groups,
                                                java.lang.String&nbsp;homeServer,
                                                java.lang.String&nbsp;notifyServer,
                                                java.lang.String&nbsp;ruleBase,
                                                boolean&nbsp;needValidation,
                                                java.lang.String&nbsp;tableName,
                                                boolean&nbsp;timedReplication,
                                                java.util.Date&nbsp;createDate,
                                                java.util.Date&nbsp;updateDate,
                                                java.lang.String&nbsp;schemaLocation)
                                         throws java.lang.Exception</pre>
<div class="block">Write an XML file to the database during replication</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the JDBC connection to the database</dd>
<dd><code>xml</code> - the xml stream to be loaded into the database</dd>
<dd><code>pub</code> - flag for public "read" access on xml document</dd>
<dd><code>dtd</code> - the dtd to be uploaded on server's file system</dd>
<dd><code>action</code> - the action to be performed (INSERT or UPDATE)</dd>
<dd><code>accnum</code> - the docid + rev# to use on INSERT or UPDATE</dd>
<dd><code>user</code> - the user that owns the document</dd>
<dd><code>groups</code> - the groups to which user belongs</dd>
<dd><code>homeServer</code> - the name of server which the document origanlly create</dd>
<dd><code>validate,</code> - if the xml document is valid or not</dd>
<dd><code>notifyServer,</code> - the server which notify local server the force replication
            command</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="delete-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>public static&nbsp;void&nbsp;delete(java.lang.String&nbsp;accnum,
                          java.lang.String&nbsp;user,
                          java.lang.String[]&nbsp;groups,
                          java.lang.String&nbsp;notifyServer,
                          boolean&nbsp;removeAll)
                   throws java.sql.SQLException,
                          <a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a>,
                          <a href="../../../../edu/ucsb/nceas/metacat/McdbDocNotFoundException.html" title="class in edu.ucsb.nceas.metacat">McdbDocNotFoundException</a>,
                          java.lang.Exception</pre>
<div class="block">Archive an object from the xml_documents table to the xml_revision table (including other changes as well).
 Or delete an object totally from the db. The parameter "removeAll" decides which action will be taken.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>accnum</code> - the local id (including the rev) will be applied.</dd>
<dd><code>user</code> - the subject who does the action.</dd>
<dd><code>groups</code> - the groups which the user belongs to.</dd>
<dd><code>notifyServer</code> - the server will be notified in the replication. It can be null.</dd>
<dd><code>removeAll</code> - it will be the delete action if this is true; otherwise it will be the archive action</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a></code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbDocNotFoundException.html" title="class in edu.ucsb.nceas.metacat">McdbDocNotFoundException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="delete-java.lang.String-boolean-java.lang.String-java.lang.String:A-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>public static&nbsp;void&nbsp;delete(java.lang.String&nbsp;accnum,
                          boolean&nbsp;ignoreRev,
                          java.lang.String&nbsp;user,
                          java.lang.String[]&nbsp;groups,
                          java.lang.String&nbsp;notifyServer,
                          boolean&nbsp;removeAll)
                   throws java.sql.SQLException,
                          <a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a>,
                          <a href="../../../../edu/ucsb/nceas/metacat/McdbDocNotFoundException.html" title="class in edu.ucsb.nceas.metacat">McdbDocNotFoundException</a>,
                          java.lang.Exception</pre>
<div class="block">Archive an object from the xml_documents table to the xml_revision table (including other changes as well).
 Or delete an object totally from the db. The parameter "removeAll" decides which action will be taken.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>accnum</code> - the local id (including the rev) will be applied.</dd>
<dd><code>ignoreRev</code> - if the archive action should only match docid and ignore the rev</dd>
<dd><code>user</code> - the subject who does the action.</dd>
<dd><code>groups</code> - the groups which the user belongs to.</dd>
<dd><code>notifyServer</code> - the server will be notified in the replication. It can be null.</dd>
<dd><code>removeAll</code> - it will be the delete action if this is true; otherwise it will be the archive action.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/client/InsufficientKarmaException.html" title="class in edu.ucsb.nceas.metacat.client">InsufficientKarmaException</a></code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbDocNotFoundException.html" title="class in edu.ucsb.nceas.metacat">McdbDocNotFoundException</a></code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="hasWritePermission-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasWritePermission</h4>
<pre>public static&nbsp;boolean&nbsp;hasWritePermission(java.lang.String&nbsp;user,
                                         java.lang.String[]&nbsp;groups,
                                         java.lang.String&nbsp;docid)
                                  throws java.sql.SQLException,
                                         java.lang.Exception</pre>
<div class="block">Check for "WRITE" permission on @docid for @user and/or @groups
 from DB connection</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="hasReadPermission-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasReadPermission</h4>
<pre>public static&nbsp;boolean&nbsp;hasReadPermission(java.lang.String&nbsp;user,
                                        java.lang.String[]&nbsp;groups,
                                        java.lang.String&nbsp;docId)
                                 throws java.sql.SQLException,
                                        <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Check for "READ" permission base on docid, user and group</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>docid,</code> - the document</dd>
<dd><code>user,</code> - user name</dd>
<dd><code>groups,</code> - user's group</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="hasAllPermission-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasAllPermission</h4>
<pre>public static&nbsp;boolean&nbsp;hasAllPermission(java.lang.String&nbsp;user,
                                       java.lang.String[]&nbsp;groups,
                                       java.lang.String&nbsp;docid)
                                throws java.sql.SQLException,
                                       java.lang.Exception</pre>
<div class="block">Check for "ALL" or "CHMOD" permission on @docid for @user and/or @groups
 from DB connection</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(java.lang.String[]&nbsp;args)</pre>
<div class="block">the main routine used to test the DBWriter utility.
 <p>
 Usage: java DocumentImpl <-f filename -a action -d docid></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filename</code> - the filename to be loaded into the database</dd>
<dd><code>action</code> - the action to perform (READ, INSERT, UPDATE, DELETE)</dd>
<dd><code>docid</code> - the id of the document to process</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/DocumentImpl.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/DocumentIdQuery.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/DocumentImplWrapper.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/DocumentImpl.html" target="_top">Frames</a></li>
<li><a href="DocumentImpl.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>