<!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>DBTransform (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="DBTransform (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":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/DBTransform.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/DBSimpleQuery.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/DBUtil.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/DBTransform.html" target="_top">Frames</a></li>
<li><a href="DBTransform.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>Field&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>Field&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 DBTransform" class="title">Class DBTransform</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.DBTransform</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">DBTransform</span>
extends java.lang.Object</pre>
<div class="block">A Class that transforms XML documents utitlizing XSL style sheets
 Building a transformer from the .xsl is expensive, so Templates are used                                            
 as an intermediate construct to allow lightweight construction of Transformers.                                     
 (Transformers themselves are not thread safe, so can't be reused)</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/DBTransform.html#DBTransform--">DBTransform</a></span>()</code>
<div class="block">construct a DBTransform instance.</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/DBTransform.html#doTransform-javax.xml.transform.stream.StreamSource-javax.xml.transform.stream.StreamResult-java.lang.String-java.util.Hashtable-java.lang.String-java.lang.String-">doTransform</a></span>(javax.xml.transform.stream.StreamSource&nbsp;xml,
           javax.xml.transform.stream.StreamResult&nbsp;resultOutput,
           java.lang.String&nbsp;xslSystemId,
           java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;param,
           java.lang.String&nbsp;qformat,
           java.lang.String&nbsp;sessionid)</code>
<div class="block">Reads skin's config file if it exists, and populates Transformer paramaters
 with its contents.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static org.w3c.dom.NodeList</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DBTransform.html#getPathContent-java.io.File-java.lang.String-">getPathContent</a></span>(java.io.File&nbsp;f,
              java.lang.String&nbsp;path)</code>
<div class="block">gets the content of a tag in a given xml file with the given path</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected static javax.xml.transform.Transformer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DBTransform.html#getTransformer-java.lang.String-">getTransformer</a></span>(java.lang.String&nbsp;xslSystemId)</code>
<div class="block">The method that manages the Templates Map instances that will be used to build                                                                 
 transformers from.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DBTransform.html#setForceRebuild-boolean-">setForceRebuild</a></span>(boolean&nbsp;forceBuild)</code>
<div class="block">Set the field of forceRebuild</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/DBTransform.html#transformXMLDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.io.Writer-java.util.Hashtable-java.lang.String-">transformXMLDocument</a></span>(java.lang.String&nbsp;doc,
                    java.lang.String&nbsp;sourceType,
                    java.lang.String&nbsp;targetType,
                    java.lang.String&nbsp;qformat,
                    java.io.Writer&nbsp;w,
                    java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;param,
                    java.lang.String&nbsp;sessionid)</code>
<div class="block">Transform an XML document using the stylesheet reference from the db</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="DBTransform--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DBTransform</h4>
<pre>public&nbsp;DBTransform()
            throws java.io.IOException,
                   java.sql.SQLException,
                   java.lang.ClassNotFoundException,
                   edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">construct a DBTransform instance.

 Generally, one calls transformXMLDocument() after constructing the instance</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conn</code> - the database connection from which to lookup the public ids</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
<dd><code>java.sql.SQLException</code></dd>
<dd><code>java.lang.ClassNotFoundException</code></dd>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</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="getTransformer-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransformer</h4>
<pre>protected static&nbsp;javax.xml.transform.Transformer&nbsp;getTransformer(java.lang.String&nbsp;xslSystemId)
                                                         throws javax.xml.transform.TransformerConfigurationException</pre>
<div class="block">The method that manages the Templates Map instances that will be used to build                                                                 
 transformers from.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>xslSystemId</code> - - the URL for the stylesheet</dd>
<dd><code>forceRebuild</code> - - if true, forces reload of the stylesheet from the system, else use the existing one, if there</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>javax.xml.transform.TransformerConfigurationException</code></dd>
</dl>
</li>
</ul>
<a name="transformXMLDocument-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.io.Writer-java.util.Hashtable-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>transformXMLDocument</h4>
<pre>public&nbsp;void&nbsp;transformXMLDocument(java.lang.String&nbsp;doc,
                                 java.lang.String&nbsp;sourceType,
                                 java.lang.String&nbsp;targetType,
                                 java.lang.String&nbsp;qformat,
                                 java.io.Writer&nbsp;w,
                                 java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;param,
                                 java.lang.String&nbsp;sessionid)</pre>
<div class="block">Transform an XML document using the stylesheet reference from the db</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>doc</code> - the document to be transformed</dd>
<dd><code>sourcetype</code> - the document type of the source</dd>
<dd><code>targettype</code> - the target document type</dd>
<dd><code>qformat</code> - the name of the style set to use</dd>
<dd><code>pw</code> - the PrintWriter to which output is printed</dd>
<dd><code>params</code> - some parameters for eml2 transformation</dd>
</dl>
</li>
</ul>
<a name="doTransform-javax.xml.transform.stream.StreamSource-javax.xml.transform.stream.StreamResult-java.lang.String-java.util.Hashtable-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doTransform</h4>
<pre>protected&nbsp;void&nbsp;doTransform(javax.xml.transform.stream.StreamSource&nbsp;xml,
                           javax.xml.transform.stream.StreamResult&nbsp;resultOutput,
                           java.lang.String&nbsp;xslSystemId,
                           java.util.Hashtable&lt;java.lang.String,java.lang.String[]&gt;&nbsp;param,
                           java.lang.String&nbsp;qformat,
                           java.lang.String&nbsp;sessionid)
                    throws edu.ucsb.nceas.utilities.PropertyNotFoundException,
                           javax.xml.transform.TransformerException</pre>
<div class="block">Reads skin's config file if it exists, and populates Transformer paramaters
 with its contents.
 It then adds the parameters passed to it via Hashtable param to the Transformer.
 It then calls the Transformer.transform method.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
<dd><code>javax.xml.transform.TransformerException</code></dd>
</dl>
</li>
</ul>
<a name="getPathContent-java.io.File-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathContent</h4>
<pre>public static&nbsp;org.w3c.dom.NodeList&nbsp;getPathContent(java.io.File&nbsp;f,
                                                  java.lang.String&nbsp;path)</pre>
<div class="block">gets the content of a tag in a given xml file with the given path</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>f</code> - the file to parse</dd>
<dd><code>path</code> - the path to get the content from</dd>
</dl>
</li>
</ul>
<a name="setForceRebuild-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setForceRebuild</h4>
<pre>public static&nbsp;void&nbsp;setForceRebuild(boolean&nbsp;forceBuild)</pre>
<div class="block">Set the field of forceRebuild</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>forceRebuild</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/DBTransform.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/DBSimpleQuery.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/DBUtil.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/DBTransform.html" target="_top">Frames</a></li>
<li><a href="DBTransform.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>Field&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>Field&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>