<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_265) on Tue Aug 25 19:30:52 UTC 2020 -->
<title>ConfigurableProperties (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="ConfigurableProperties (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All 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/ConfigurableProperties.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>Prev&nbsp;Class</li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html" target="_top">Frames</a></li>
<li><a href="ConfigurableProperties.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="#fields.inherited.from.class.edu.ucsb.nceas.metacat.shared.BaseService">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>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.properties</div>
<h2 title="Class ConfigurableProperties" class="title">Class ConfigurableProperties</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">edu.ucsb.nceas.metacat.shared.BaseService</a></li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.properties.ConfigurableProperties</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ConfigurableProperties</span>
extends <a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a>
implements <a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></pre>
<div class="block">A suite of utility classes for the metadata configuration utility</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>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.edu.ucsb.nceas.metacat.shared.BaseService">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;edu.ucsb.nceas.metacat.shared.<a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a></h3>
<code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html#Z:Z_serviceName">_serviceName</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.edu.ucsb.nceas.metacat.properties.PropertiesInterface">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;edu.ucsb.nceas.metacat.properties.<a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></h3>
<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#BYPASSED">BYPASSED</a>, <a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#CONFIGURED">CONFIGURED</a>, <a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#UNCONFIGURED">UNCONFIGURED</a></code></li>
</ul>
</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="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#ConfigurableProperties--">ConfigurableProperties</a></span>()</code>
<div class="block">private constructor since this is a singleton</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="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/properties/ConfigurableProperties.html#addProperty-java.lang.String-java.lang.String-">addProperty</a></span>(java.lang.String&nbsp;propertyName,
           java.lang.String&nbsp;value)</code>
<div class="block">Utility method to add a property value both in memory and to the
 properties file</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#arePropertiesConfigured--">arePropertiesConfigured</a></span>()</code>
<div class="block">Reports whether properties are fully configured.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#bypassConfiguration--">bypassConfiguration</a></span>()</code>
<div class="block">Reports whether the metacat configuration utility should be run.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#checkAndSetProperty-javax.servlet.http.HttpServletRequest-java.lang.String-">checkAndSetProperty</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
                   java.lang.String&nbsp;propertyName)</code>
<div class="block">Take input from the user in an HTTP request about an property to be changed
 and update the metacat property file with that new value if it has
 changed from the value that was originally set.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#doBypass--">doBypass</a></span>()</code>
<div class="block">Determine if the system is configured to bypass configuration.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#doRefresh--">doRefresh</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>edu.ucsb.nceas.utilities.SortedProperties</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getAuthBackupProperties--">getAuthBackupProperties</a></span>()</code>
<div class="block">Get the auth backup properties file.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>edu.ucsb.nceas.utilities.PropertiesMetaData</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getAuthMetaData--">getAuthMetaData</a></span>()</code>
<div class="block">Get the auth properties metadata.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>edu.ucsb.nceas.utilities.SortedProperties</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getMainBackupProperties--">getMainBackupProperties</a></span>()</code>
<div class="block">Get the main backup properties file.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>edu.ucsb.nceas.utilities.PropertiesMetaData</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getMainMetaData--">getMainMetaData</a></span>()</code>
<div class="block">Get the main properties metadata.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getPropertiesByGroup-java.lang.String-">getPropertiesByGroup</a></span>(java.lang.String&nbsp;groupName)</code>
<div class="block">Get a Map of all properties that start with the groupName prefix.</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/properties/ConfigurableProperties.html#getProperty-java.lang.String-">getProperty</a></span>(java.lang.String&nbsp;propertyName)</code>
<div class="block">Utility method to get a property value from the properties file</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.Vector&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getPropertyNames--">getPropertyNames</a></span>()</code>
<div class="block">Get a set of all property names.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.util.Vector&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#getPropertyNamesByGroup-java.lang.String-">getPropertyNamesByGroup</a></span>(java.lang.String&nbsp;groupName)</code>
<div class="block">Get a Set of all property names that start with the groupName prefix.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#persistAuthBackupProperties-javax.servlet.ServletContext-">persistAuthBackupProperties</a></span>(javax.servlet.ServletContext&nbsp;servletContext)</code>
<div class="block">Writes out backup configurable properties to a file.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#persistMainBackupProperties--">persistMainBackupProperties</a></span>()</code>
<div class="block">Writes out backup configurable properties to a file.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#persistProperties--">persistProperties</a></span>()</code>
<div class="block">Save the properties to a properties file.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#refreshable--">refreshable</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#setProperty-java.lang.String-java.lang.String-">setProperty</a></span>(java.lang.String&nbsp;propertyName,
           java.lang.String&nbsp;newValue)</code>
<div class="block">Utility method to set a property value both in memory and to the
 properties file</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#setPropertyNoPersist-java.lang.String-java.lang.String-">setPropertyNoPersist</a></span>(java.lang.String&nbsp;propertyName,
                    java.lang.String&nbsp;newValue)</code>
<div class="block">Utility method to set a property value in memory.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html#stop--">stop</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.edu.ucsb.nceas.metacat.shared.BaseService">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;edu.ucsb.nceas.metacat.shared.<a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a></h3>
<code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html#refresh--">refresh</a></code></li>
</ul>
<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="ConfigurableProperties--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ConfigurableProperties</h4>
<pre>protected&nbsp;ConfigurableProperties()
                          throws <a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></pre>
<div class="block">private constructor since this is a singleton</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>servletContext</code> - the context we will use to get relative paths</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></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="refreshable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshable</h4>
<pre>public&nbsp;boolean&nbsp;refreshable()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html#refreshable--">refreshable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a></code></dd>
</dl>
</li>
</ul>
<a name="doRefresh--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doRefresh</h4>
<pre>public&nbsp;void&nbsp;doRefresh()
               throws <a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html#doRefresh--">doRefresh</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></code></dd>
</dl>
</li>
</ul>
<a name="stop--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;stop()
          throws <a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html#stop--">stop</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/shared/BaseService.html" title="class in edu.ucsb.nceas.metacat.shared">BaseService</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/shared/ServiceException.html" title="class in edu.ucsb.nceas.metacat.shared">ServiceException</a></code></dd>
</dl>
</li>
</ul>
<a name="getProperty-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProperty</h4>
<pre>public&nbsp;java.lang.String&nbsp;getProperty(java.lang.String&nbsp;propertyName)
                             throws edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">Utility method to get a property value from the properties file</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getProperty-java.lang.String-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>propertyName</code> - the name of the property requested</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the String value for the property</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="getPropertyNames--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyNames</h4>
<pre>public&nbsp;java.util.Vector&lt;java.lang.String&gt;&nbsp;getPropertyNames()</pre>
<div class="block">Get a set of all property names.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getPropertyNames--">getPropertyNames</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of property names</dd>
</dl>
</li>
</ul>
<a name="getPropertyNamesByGroup-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertyNamesByGroup</h4>
<pre>public&nbsp;java.util.Vector&lt;java.lang.String&gt;&nbsp;getPropertyNamesByGroup(java.lang.String&nbsp;groupName)</pre>
<div class="block">Get a Set of all property names that start with the groupName prefix.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getPropertyNamesByGroup-java.lang.String-">getPropertyNamesByGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groupName</code> - the prefix of the keys to search for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>enumeration of property names</dd>
</dl>
</li>
</ul>
<a name="getPropertiesByGroup-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPropertiesByGroup</h4>
<pre>public&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;getPropertiesByGroup(java.lang.String&nbsp;groupName)
                                                                      throws edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">Get a Map of all properties that start with the groupName prefix.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getPropertiesByGroup-java.lang.String-">getPropertiesByGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groupName</code> - the prefix of the keys to search for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of property names</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="addProperty-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProperty</h4>
<pre>public&nbsp;void&nbsp;addProperty(java.lang.String&nbsp;propertyName,
                        java.lang.String&nbsp;value)
                 throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Utility method to add a property value both in memory and to the
 properties file</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#addProperty-java.lang.String-java.lang.String-">addProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>propertyName</code> - the name of the property to add</dd>
<dd><code>newValue</code> - the value for the property</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="setProperty-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProperty</h4>
<pre>public&nbsp;void&nbsp;setProperty(java.lang.String&nbsp;propertyName,
                        java.lang.String&nbsp;newValue)
                 throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Utility method to set a property value both in memory and to the
 properties file</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#setProperty-java.lang.String-java.lang.String-">setProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>propertyName</code> - the name of the property requested</dd>
<dd><code>newValue</code> - the new value for the property</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="setPropertyNoPersist-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPropertyNoPersist</h4>
<pre>public&nbsp;void&nbsp;setPropertyNoPersist(java.lang.String&nbsp;propertyName,
                                 java.lang.String&nbsp;newValue)
                          throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Utility method to set a property value in memory. This will NOT cause the
 property to be written to disk. Use this method to set multiple
 properties in a row without causing excessive I/O. You must call
 persistProperties() once you're done setting properties to have them
 written to disk.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#setPropertyNoPersist-java.lang.String-java.lang.String-">setPropertyNoPersist</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>propertyName</code> - the name of the property requested</dd>
<dd><code>newValue</code> - the new value for the property</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="persistProperties--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>persistProperties</h4>
<pre>public&nbsp;void&nbsp;persistProperties()
                       throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Save the properties to a properties file. Note, the 
 order and comments will be preserved.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#persistProperties--">persistProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="getMainBackupProperties--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMainBackupProperties</h4>
<pre>public&nbsp;edu.ucsb.nceas.utilities.SortedProperties&nbsp;getMainBackupProperties()</pre>
<div class="block">Get the main backup properties file. These are configurable properties that
 are stored outside the metacat install directories so the user does not
 need to re-enter all the configuration information every time they do an
 upgrade.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getMainBackupProperties--">getMainBackupProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a SortedProperties object with the backup properties</dd>
</dl>
</li>
</ul>
<a name="getAuthBackupProperties--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthBackupProperties</h4>
<pre>public&nbsp;edu.ucsb.nceas.utilities.SortedProperties&nbsp;getAuthBackupProperties()</pre>
<div class="block">Get the auth backup properties file. These are configurable 
 properties that are stored outside the metacat install directories so 
 the user does not need to re-enter all the configuration information 
 every time they do an upgrade.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getAuthBackupProperties--">getAuthBackupProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a SortedProperties object with the backup properties</dd>
</dl>
</li>
</ul>
<a name="getMainMetaData--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMainMetaData</h4>
<pre>public&nbsp;edu.ucsb.nceas.utilities.PropertiesMetaData&nbsp;getMainMetaData()</pre>
<div class="block">Get the main properties metadata. This is retrieved from an xml file that
 describes the attributes of configurable properties.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getMainMetaData--">getMainMetaData</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a PropertiesMetaData object with the main properties metadata</dd>
</dl>
</li>
</ul>
<a name="getAuthMetaData--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuthMetaData</h4>
<pre>public&nbsp;edu.ucsb.nceas.utilities.PropertiesMetaData&nbsp;getAuthMetaData()</pre>
<div class="block">Get the auth properties metadata. This is retrieved from an xml
 file that describes the attributes of configurable properties.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#getAuthMetaData--">getAuthMetaData</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a PropertiesMetaData object with the organization properties
         metadata</dd>
</dl>
</li>
</ul>
<a name="persistMainBackupProperties--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>persistMainBackupProperties</h4>
<pre>public&nbsp;void&nbsp;persistMainBackupProperties()
                                 throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Writes out backup configurable properties to a file.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#persistMainBackupProperties--">persistMainBackupProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="persistAuthBackupProperties-javax.servlet.ServletContext-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>persistAuthBackupProperties</h4>
<pre>public&nbsp;void&nbsp;persistAuthBackupProperties(javax.servlet.ServletContext&nbsp;servletContext)
                                 throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Writes out backup configurable properties to a file.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#persistAuthBackupProperties-javax.servlet.ServletContext-">persistAuthBackupProperties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="arePropertiesConfigured--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>arePropertiesConfigured</h4>
<pre>public&nbsp;boolean&nbsp;arePropertiesConfigured()
                                throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Reports whether properties are fully configured.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#arePropertiesConfigured--">arePropertiesConfigured</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a boolean that is true if properties are not unconfigured and
         false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="doBypass--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doBypass</h4>
<pre>public&nbsp;boolean&nbsp;doBypass()
                 throws edu.ucsb.nceas.utilities.PropertyNotFoundException</pre>
<div class="block">Determine if the system is configured to bypass configuration. If so, the
 system will look for backup configuration files at startup time and use
 those to configure metacat. The bypass options should only be set by
 developers. Production code should never bypass confguration.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#doBypass--">doBypass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if dev.runConfiguration is set to true in metacat.properties
         and we have not already checked for bypass, false otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.PropertyNotFoundException</code></dd>
</dl>
</li>
</ul>
<a name="bypassConfiguration--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bypassConfiguration</h4>
<pre>public&nbsp;void&nbsp;bypassConfiguration()
                         throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Reports whether the metacat configuration utility should be run.  
 Returns false if  
   -- dev.runConfiguration=false and
   -- backup properties file exists
 Note that dev.runConfiguration should only be set to false when
 reinstalling the same version of the application in developement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#bypassConfiguration--">bypassConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</code></dd>
</dl>
</li>
</ul>
<a name="checkAndSetProperty-javax.servlet.http.HttpServletRequest-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>checkAndSetProperty</h4>
<pre>public&nbsp;boolean&nbsp;checkAndSetProperty(javax.servlet.http.HttpServletRequest&nbsp;request,
                                   java.lang.String&nbsp;propertyName)
                            throws edu.ucsb.nceas.utilities.GeneralPropertyException</pre>
<div class="block">Take input from the user in an HTTP request about an property to be changed
 and update the metacat property file with that new value if it has
 changed from the value that was originally set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html#checkAndSetProperty-javax.servlet.http.HttpServletRequest-java.lang.String-">checkAndSetProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties">PropertiesInterface</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - that was generated by the user</dd>
<dd><code>response</code> - to send output back to the user</dd>
<dd><code>propertyName</code> - the name of the property to be checked and set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>edu.ucsb.nceas.utilities.GeneralPropertyException</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/ConfigurableProperties.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>Prev&nbsp;Class</li>
<li><a href="../../../../../edu/ucsb/nceas/metacat/properties/PropertiesInterface.html" title="interface in edu.ucsb.nceas.metacat.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?edu/ucsb/nceas/metacat/properties/ConfigurableProperties.html" target="_top">Frames</a></li>
<li><a href="ConfigurableProperties.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="#fields.inherited.from.class.edu.ucsb.nceas.metacat.shared.BaseService">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>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>