<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ConfigurationRegistryWriter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/configuration/io/registry/ConfigurationRegistryWriter.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   
<a class="jxr_linenumber" name="2" href="#2">2</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.configuration.io.registry;
<a class="jxr_linenumber" name="3" href="#3">3</a>   
<a class="jxr_linenumber" name="4" href="#4">4</a>   <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.Registry;
<a class="jxr_linenumber" name="5" href="#5">5</a>   
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment">// Util imports</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="8" href="#8">8</a>   
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment">// Model class imports</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.Configuration;
<a class="jxr_linenumber" name="11" href="#11">11</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.AbstractRepositoryConfiguration;
<a class="jxr_linenumber" name="12" href="#12">12</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RemoteRepositoryConfiguration;
<a class="jxr_linenumber" name="13" href="#13">13</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ManagedRepositoryConfiguration;
<a class="jxr_linenumber" name="14" href="#14">14</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.V1RepositoryConfiguration;
<a class="jxr_linenumber" name="15" href="#15">15</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LegacyArtifactPath;
<a class="jxr_linenumber" name="16" href="#16">16</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RepositoryGroupConfiguration;
<a class="jxr_linenumber" name="17" href="#17">17</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.AbstractRepositoryConnectorConfiguration;
<a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorRuleConfiguration;
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorConfiguration;
<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.SyncConnectorConfiguration;
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.NetworkProxyConfiguration;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RepositoryScanningConfiguration;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.FileType;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.OrganisationInformation;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.WebappConfiguration;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.UserInterfaceOptions;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.NetworkConfiguration;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RedbackRuntimeConfiguration;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LdapConfiguration;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.CacheConfiguration;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LdapGroupMapping;
<a class="jxr_linenumber" name="33" href="#33">33</a>  
<a class="jxr_linenumber" name="34" href="#34">34</a>  
<a class="jxr_linenumber" name="35" href="#35">35</a>  
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Generate Plexus Registry output mechanism for model 'Configuration'.</em>
<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/configuration/io/registry/ConfigurationRegistryWriter.html">ConfigurationRegistryWriter</a>
<a class="jxr_linenumber" name="41" href="#41">41</a>  {
<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> write( Configuration model, Registry registry )
<a class="jxr_linenumber" name="43" href="#43">43</a>      {
<a class="jxr_linenumber" name="44" href="#44">44</a>          writeConfiguration( <span class="jxr_string">""</span>, model, registry );
<a class="jxr_linenumber" name="45" href="#45">45</a>      }
<a class="jxr_linenumber" name="46" href="#46">46</a>  
<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeConfiguration( String prefix, Configuration value, Registry registry )
<a class="jxr_linenumber" name="48" href="#48">48</a>      {
<a class="jxr_linenumber" name="49" href="#49">49</a>          <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="50" href="#50">50</a>          {
<a class="jxr_linenumber" name="51" href="#51">51</a>                    <strong class="jxr_keyword">if</strong> ( value.getVersion() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="52" href="#52">52</a>   )
<a class="jxr_linenumber" name="53" href="#53">53</a>              {
<a class="jxr_linenumber" name="54" href="#54">54</a>                        String version = <span class="jxr_string">"version"</span>;
<a class="jxr_linenumber" name="55" href="#55">55</a>                  registry.setString( prefix + version, value.getVersion() );
<a class="jxr_linenumber" name="56" href="#56">56</a>                    }
<a class="jxr_linenumber" name="57" href="#57">57</a>                    <strong class="jxr_keyword">if</strong> ( value.getRepositories() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRepositories().size() &gt; 0
<a class="jxr_linenumber" name="58" href="#58">58</a>   )
<a class="jxr_linenumber" name="59" href="#59">59</a>              {
<a class="jxr_linenumber" name="60" href="#60">60</a>                  registry.removeSubset( prefix + <span class="jxr_string">"repositories"</span> );
<a class="jxr_linenumber" name="61" href="#61">61</a>  
<a class="jxr_linenumber" name="62" href="#62">62</a>                  <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="63" href="#63">63</a>                  <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRepositories().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="64" href="#64">64</a>                  {
<a class="jxr_linenumber" name="65" href="#65">65</a>                      String name = <span class="jxr_string">"repositories.repository("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="66" href="#66">66</a>                      <a href="../../../../../../org/apache/archiva/configuration/V1RepositoryConfiguration.html">V1RepositoryConfiguration</a> o = ( V1RepositoryConfiguration ) iter.next();
<a class="jxr_linenumber" name="67" href="#67">67</a>                      writeV1RepositoryConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="68" href="#68">68</a>                  }
<a class="jxr_linenumber" name="69" href="#69">69</a>              }
<a class="jxr_linenumber" name="70" href="#70">70</a>              <strong class="jxr_keyword">if</strong> ( value.getRepositoryGroups() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRepositoryGroups().size() &gt; 0
<a class="jxr_linenumber" name="71" href="#71">71</a>   )
<a class="jxr_linenumber" name="72" href="#72">72</a>              {
<a class="jxr_linenumber" name="73" href="#73">73</a>                  registry.removeSubset( prefix + <span class="jxr_string">"repositoryGroups"</span> );
<a class="jxr_linenumber" name="74" href="#74">74</a>  
<a class="jxr_linenumber" name="75" href="#75">75</a>                  <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="76" href="#76">76</a>                  <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRepositoryGroups().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="77" href="#77">77</a>                  {
<a class="jxr_linenumber" name="78" href="#78">78</a>                      String name = <span class="jxr_string">"repositoryGroups.repositoryGroup("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="79" href="#79">79</a>                      <a href="../../../../../../org/apache/archiva/configuration/RepositoryGroupConfiguration.html">RepositoryGroupConfiguration</a> o = ( RepositoryGroupConfiguration ) iter.next();
<a class="jxr_linenumber" name="80" href="#80">80</a>                      writeRepositoryGroupConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="81" href="#81">81</a>                  }
<a class="jxr_linenumber" name="82" href="#82">82</a>              }
<a class="jxr_linenumber" name="83" href="#83">83</a>              <strong class="jxr_keyword">if</strong> ( value.getManagedRepositories() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getManagedRepositories().size() &gt; 0
<a class="jxr_linenumber" name="84" href="#84">84</a>   )
<a class="jxr_linenumber" name="85" href="#85">85</a>              {
<a class="jxr_linenumber" name="86" href="#86">86</a>                  registry.removeSubset( prefix + <span class="jxr_string">"managedRepositories"</span> );
<a class="jxr_linenumber" name="87" href="#87">87</a>  
<a class="jxr_linenumber" name="88" href="#88">88</a>                  <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="89" href="#89">89</a>                  <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getManagedRepositories().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="90" href="#90">90</a>                  {
<a class="jxr_linenumber" name="91" href="#91">91</a>                      String name = <span class="jxr_string">"managedRepositories.managedRepository("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="92" href="#92">92</a>                      <a href="../../../../../../org/apache/archiva/configuration/ManagedRepositoryConfiguration.html">ManagedRepositoryConfiguration</a> o = ( ManagedRepositoryConfiguration ) iter.next();
<a class="jxr_linenumber" name="93" href="#93">93</a>                      writeManagedRepositoryConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="94" href="#94">94</a>                  }
<a class="jxr_linenumber" name="95" href="#95">95</a>              }
<a class="jxr_linenumber" name="96" href="#96">96</a>              <strong class="jxr_keyword">if</strong> ( value.getRemoteRepositories() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRemoteRepositories().size() &gt; 0
<a class="jxr_linenumber" name="97" href="#97">97</a>   )
<a class="jxr_linenumber" name="98" href="#98">98</a>              {
<a class="jxr_linenumber" name="99" href="#99">99</a>                  registry.removeSubset( prefix + <span class="jxr_string">"remoteRepositories"</span> );
<a class="jxr_linenumber" name="100" href="#100">100</a> 
<a class="jxr_linenumber" name="101" href="#101">101</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="102" href="#102">102</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRemoteRepositories().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="103" href="#103">103</a>                 {
<a class="jxr_linenumber" name="104" href="#104">104</a>                     String name = <span class="jxr_string">"remoteRepositories.remoteRepository("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="105" href="#105">105</a>                     <a href="../../../../../../org/apache/archiva/configuration/RemoteRepositoryConfiguration.html">RemoteRepositoryConfiguration</a> o = ( RemoteRepositoryConfiguration ) iter.next();
<a class="jxr_linenumber" name="106" href="#106">106</a>                     writeRemoteRepositoryConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="107" href="#107">107</a>                 }
<a class="jxr_linenumber" name="108" href="#108">108</a>             }
<a class="jxr_linenumber" name="109" href="#109">109</a>             <strong class="jxr_keyword">if</strong> ( value.getProxyConnectors() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProxyConnectors().size() &gt; 0
<a class="jxr_linenumber" name="110" href="#110">110</a>  )
<a class="jxr_linenumber" name="111" href="#111">111</a>             {
<a class="jxr_linenumber" name="112" href="#112">112</a>                 registry.removeSubset( prefix + <span class="jxr_string">"proxyConnectors"</span> );
<a class="jxr_linenumber" name="113" href="#113">113</a> 
<a class="jxr_linenumber" name="114" href="#114">114</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="115" href="#115">115</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProxyConnectors().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="116" href="#116">116</a>                 {
<a class="jxr_linenumber" name="117" href="#117">117</a>                     String name = <span class="jxr_string">"proxyConnectors.proxyConnector("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="118" href="#118">118</a>                     <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> o = ( ProxyConnectorConfiguration ) iter.next();
<a class="jxr_linenumber" name="119" href="#119">119</a>                     writeProxyConnectorConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="120" href="#120">120</a>                 }
<a class="jxr_linenumber" name="121" href="#121">121</a>             }
<a class="jxr_linenumber" name="122" href="#122">122</a>             <strong class="jxr_keyword">if</strong> ( value.getNetworkProxies() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getNetworkProxies().size() &gt; 0
<a class="jxr_linenumber" name="123" href="#123">123</a>  )
<a class="jxr_linenumber" name="124" href="#124">124</a>             {
<a class="jxr_linenumber" name="125" href="#125">125</a>                 registry.removeSubset( prefix + <span class="jxr_string">"networkProxies"</span> );
<a class="jxr_linenumber" name="126" href="#126">126</a> 
<a class="jxr_linenumber" name="127" href="#127">127</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="128" href="#128">128</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getNetworkProxies().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="129" href="#129">129</a>                 {
<a class="jxr_linenumber" name="130" href="#130">130</a>                     String name = <span class="jxr_string">"networkProxies.networkProxy("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="131" href="#131">131</a>                     <a href="../../../../../../org/apache/archiva/configuration/NetworkProxyConfiguration.html">NetworkProxyConfiguration</a> o = ( NetworkProxyConfiguration ) iter.next();
<a class="jxr_linenumber" name="132" href="#132">132</a>                     writeNetworkProxyConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="133" href="#133">133</a>                 }
<a class="jxr_linenumber" name="134" href="#134">134</a>             }
<a class="jxr_linenumber" name="135" href="#135">135</a>             <strong class="jxr_keyword">if</strong> ( value.getLegacyArtifactPaths() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getLegacyArtifactPaths().size() &gt; 0
<a class="jxr_linenumber" name="136" href="#136">136</a>  )
<a class="jxr_linenumber" name="137" href="#137">137</a>             {
<a class="jxr_linenumber" name="138" href="#138">138</a>                 registry.removeSubset( prefix + <span class="jxr_string">"legacyArtifactPaths"</span> );
<a class="jxr_linenumber" name="139" href="#139">139</a> 
<a class="jxr_linenumber" name="140" href="#140">140</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="141" href="#141">141</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getLegacyArtifactPaths().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="142" href="#142">142</a>                 {
<a class="jxr_linenumber" name="143" href="#143">143</a>                     String name = <span class="jxr_string">"legacyArtifactPaths.legacyArtifactPath("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="144" href="#144">144</a>                     <a href="../../../../../../org/apache/archiva/configuration/LegacyArtifactPath.html">LegacyArtifactPath</a> o = ( LegacyArtifactPath ) iter.next();
<a class="jxr_linenumber" name="145" href="#145">145</a>                     writeLegacyArtifactPath( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="146" href="#146">146</a>                 }
<a class="jxr_linenumber" name="147" href="#147">147</a>             }
<a class="jxr_linenumber" name="148" href="#148">148</a>             <strong class="jxr_keyword">if</strong> ( value.getRepositoryScanning() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="149" href="#149">149</a>  )
<a class="jxr_linenumber" name="150" href="#150">150</a>             {
<a class="jxr_linenumber" name="151" href="#151">151</a>                 writeRepositoryScanningConfiguration( prefix + <span class="jxr_string">"repositoryScanning."</span>, value.getRepositoryScanning(), registry );
<a class="jxr_linenumber" name="152" href="#152">152</a>             }
<a class="jxr_linenumber" name="153" href="#153">153</a>             <strong class="jxr_keyword">if</strong> ( value.getWebapp() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="154" href="#154">154</a>  )
<a class="jxr_linenumber" name="155" href="#155">155</a>             {
<a class="jxr_linenumber" name="156" href="#156">156</a>                 writeWebappConfiguration( prefix + <span class="jxr_string">"webapp."</span>, value.getWebapp(), registry );
<a class="jxr_linenumber" name="157" href="#157">157</a>             }
<a class="jxr_linenumber" name="158" href="#158">158</a>             <strong class="jxr_keyword">if</strong> ( value.getOrganisationInfo() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="159" href="#159">159</a>  )
<a class="jxr_linenumber" name="160" href="#160">160</a>             {
<a class="jxr_linenumber" name="161" href="#161">161</a>                 writeOrganisationInformation( prefix + <span class="jxr_string">"organisationInfo."</span>, value.getOrganisationInfo(), registry );
<a class="jxr_linenumber" name="162" href="#162">162</a>             }
<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">if</strong> ( value.getNetworkConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="164" href="#164">164</a>  )
<a class="jxr_linenumber" name="165" href="#165">165</a>             {
<a class="jxr_linenumber" name="166" href="#166">166</a>                 writeNetworkConfiguration( prefix + <span class="jxr_string">"networkConfiguration."</span>, value.getNetworkConfiguration(), registry );
<a class="jxr_linenumber" name="167" href="#167">167</a>             }
<a class="jxr_linenumber" name="168" href="#168">168</a>             <strong class="jxr_keyword">if</strong> ( value.getRedbackRuntimeConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="169" href="#169">169</a>  )
<a class="jxr_linenumber" name="170" href="#170">170</a>             {
<a class="jxr_linenumber" name="171" href="#171">171</a>                 writeRedbackRuntimeConfiguration( prefix + <span class="jxr_string">"redbackRuntimeConfiguration."</span>, value.getRedbackRuntimeConfiguration(), registry );
<a class="jxr_linenumber" name="172" href="#172">172</a>             }
<a class="jxr_linenumber" name="173" href="#173">173</a>             <strong class="jxr_keyword">if</strong> ( value.getArchivaRuntimeConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="174" href="#174">174</a>  )
<a class="jxr_linenumber" name="175" href="#175">175</a>             {
<a class="jxr_linenumber" name="176" href="#176">176</a>                 writeArchivaRuntimeConfiguration( prefix + <span class="jxr_string">"archivaRuntimeConfiguration."</span>, value.getArchivaRuntimeConfiguration(), registry );
<a class="jxr_linenumber" name="177" href="#177">177</a>             }
<a class="jxr_linenumber" name="178" href="#178">178</a>             <strong class="jxr_keyword">if</strong> ( value.getProxyConnectorRuleConfigurations() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProxyConnectorRuleConfigurations().size() &gt; 0
<a class="jxr_linenumber" name="179" href="#179">179</a>  )
<a class="jxr_linenumber" name="180" href="#180">180</a>             {
<a class="jxr_linenumber" name="181" href="#181">181</a>                 registry.removeSubset( prefix + <span class="jxr_string">"proxyConnectorRuleConfigurations"</span> );
<a class="jxr_linenumber" name="182" href="#182">182</a> 
<a class="jxr_linenumber" name="183" href="#183">183</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="184" href="#184">184</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProxyConnectorRuleConfigurations().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="185" href="#185">185</a>                 {
<a class="jxr_linenumber" name="186" href="#186">186</a>                     String name = <span class="jxr_string">"proxyConnectorRuleConfigurations.proxyConnectorRuleConfiguration("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="187" href="#187">187</a>                     <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorRuleConfiguration.html">ProxyConnectorRuleConfiguration</a> o = ( ProxyConnectorRuleConfiguration ) iter.next();
<a class="jxr_linenumber" name="188" href="#188">188</a>                     writeProxyConnectorRuleConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="189" href="#189">189</a>                 }
<a class="jxr_linenumber" name="190" href="#190">190</a>             }
<a class="jxr_linenumber" name="191" href="#191">191</a>         }
<a class="jxr_linenumber" name="192" href="#192">192</a>     }
<a class="jxr_linenumber" name="193" href="#193">193</a>     
<a class="jxr_linenumber" name="194" href="#194">194</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeAbstractRepositoryConfiguration( String prefix, AbstractRepositoryConfiguration value, Registry registry )
<a class="jxr_linenumber" name="195" href="#195">195</a>     {
<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="197" href="#197">197</a>         {
<a class="jxr_linenumber" name="198" href="#198">198</a>                   <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="199" href="#199">199</a>  )
<a class="jxr_linenumber" name="200" href="#200">200</a>             {
<a class="jxr_linenumber" name="201" href="#201">201</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="202" href="#202">202</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="203" href="#203">203</a>                   }
<a class="jxr_linenumber" name="204" href="#204">204</a>                         <strong class="jxr_keyword">if</strong> ( value.getName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="205" href="#205">205</a>  )
<a class="jxr_linenumber" name="206" href="#206">206</a>             {
<a class="jxr_linenumber" name="207" href="#207">207</a>                       String name = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="208" href="#208">208</a>                 registry.setString( prefix + name, value.getName() );
<a class="jxr_linenumber" name="209" href="#209">209</a>                   }
<a class="jxr_linenumber" name="210" href="#210">210</a>                         <strong class="jxr_keyword">if</strong> ( value.getLayout() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getLayout().equals( <span class="jxr_string">"default"</span> )
<a class="jxr_linenumber" name="211" href="#211">211</a>  )
<a class="jxr_linenumber" name="212" href="#212">212</a>             {
<a class="jxr_linenumber" name="213" href="#213">213</a>                       String layout = <span class="jxr_string">"layout"</span>;
<a class="jxr_linenumber" name="214" href="#214">214</a>                 registry.setString( prefix + layout, value.getLayout() );
<a class="jxr_linenumber" name="215" href="#215">215</a>                   }
<a class="jxr_linenumber" name="216" href="#216">216</a>                         <strong class="jxr_keyword">if</strong> ( value.getIndexDir() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="217" href="#217">217</a>  )
<a class="jxr_linenumber" name="218" href="#218">218</a>             {
<a class="jxr_linenumber" name="219" href="#219">219</a>                       String indexDir = <span class="jxr_string">"indexDir"</span>;
<a class="jxr_linenumber" name="220" href="#220">220</a>                 registry.setString( prefix + indexDir, value.getIndexDir() );
<a class="jxr_linenumber" name="221" href="#221">221</a>                   }
<a class="jxr_linenumber" name="222" href="#222">222</a>                         <strong class="jxr_keyword">if</strong> ( value.getDescription() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="223" href="#223">223</a>  )
<a class="jxr_linenumber" name="224" href="#224">224</a>             {
<a class="jxr_linenumber" name="225" href="#225">225</a>                       String description = <span class="jxr_string">"description"</span>;
<a class="jxr_linenumber" name="226" href="#226">226</a>                 registry.setString( prefix + description, value.getDescription() );
<a class="jxr_linenumber" name="227" href="#227">227</a>                   }
<a class="jxr_linenumber" name="228" href="#228">228</a>               }
<a class="jxr_linenumber" name="229" href="#229">229</a>     }
<a class="jxr_linenumber" name="230" href="#230">230</a>     
<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRemoteRepositoryConfiguration( String prefix, RemoteRepositoryConfiguration value, Registry registry )
<a class="jxr_linenumber" name="232" href="#232">232</a>     {
<a class="jxr_linenumber" name="233" href="#233">233</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="234" href="#234">234</a>         {
<a class="jxr_linenumber" name="235" href="#235">235</a>                   <strong class="jxr_keyword">if</strong> ( value.getUrl() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="236" href="#236">236</a>  )
<a class="jxr_linenumber" name="237" href="#237">237</a>             {
<a class="jxr_linenumber" name="238" href="#238">238</a>                       String url = <span class="jxr_string">"url"</span>;
<a class="jxr_linenumber" name="239" href="#239">239</a>                 registry.setString( prefix + url, value.getUrl() );
<a class="jxr_linenumber" name="240" href="#240">240</a>                   }
<a class="jxr_linenumber" name="241" href="#241">241</a>                         <strong class="jxr_keyword">if</strong> ( value.getUsername() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="242" href="#242">242</a>  )
<a class="jxr_linenumber" name="243" href="#243">243</a>             {
<a class="jxr_linenumber" name="244" href="#244">244</a>                       String username = <span class="jxr_string">"username"</span>;
<a class="jxr_linenumber" name="245" href="#245">245</a>                 registry.setString( prefix + username, value.getUsername() );
<a class="jxr_linenumber" name="246" href="#246">246</a>                   }
<a class="jxr_linenumber" name="247" href="#247">247</a>                         <strong class="jxr_keyword">if</strong> ( value.getPassword() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="248" href="#248">248</a>  )
<a class="jxr_linenumber" name="249" href="#249">249</a>             {
<a class="jxr_linenumber" name="250" href="#250">250</a>                       String password = <span class="jxr_string">"password"</span>;
<a class="jxr_linenumber" name="251" href="#251">251</a>                 registry.setString( prefix + password, value.getPassword() );
<a class="jxr_linenumber" name="252" href="#252">252</a>                   }
<a class="jxr_linenumber" name="253" href="#253">253</a>                         <strong class="jxr_keyword">if</strong> ( value.getTimeout() != 60
<a class="jxr_linenumber" name="254" href="#254">254</a>  )
<a class="jxr_linenumber" name="255" href="#255">255</a>             {
<a class="jxr_linenumber" name="256" href="#256">256</a>                       String timeout = <span class="jxr_string">"timeout"</span>;
<a class="jxr_linenumber" name="257" href="#257">257</a>                 registry.setInt( prefix + timeout, value.getTimeout() );
<a class="jxr_linenumber" name="258" href="#258">258</a>                   }
<a class="jxr_linenumber" name="259" href="#259">259</a>                         <strong class="jxr_keyword">if</strong> ( value.getRefreshCronExpression() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getRefreshCronExpression().equals( <span class="jxr_string">"0 0 08 ? * SUN"</span> )
<a class="jxr_linenumber" name="260" href="#260">260</a>  )
<a class="jxr_linenumber" name="261" href="#261">261</a>             {
<a class="jxr_linenumber" name="262" href="#262">262</a>                       String refreshCronExpression = <span class="jxr_string">"refreshCronExpression"</span>;
<a class="jxr_linenumber" name="263" href="#263">263</a>                 registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
<a class="jxr_linenumber" name="264" href="#264">264</a>                   }
<a class="jxr_linenumber" name="265" href="#265">265</a>                             String downloadRemoteIndex = <span class="jxr_string">"downloadRemoteIndex"</span>;
<a class="jxr_linenumber" name="266" href="#266">266</a>                 registry.setBoolean( prefix + downloadRemoteIndex, value.isDownloadRemoteIndex() );
<a class="jxr_linenumber" name="267" href="#267">267</a>                         <strong class="jxr_keyword">if</strong> ( value.getRemoteIndexUrl() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="268" href="#268">268</a>  )
<a class="jxr_linenumber" name="269" href="#269">269</a>             {
<a class="jxr_linenumber" name="270" href="#270">270</a>                       String remoteIndexUrl = <span class="jxr_string">"remoteIndexUrl"</span>;
<a class="jxr_linenumber" name="271" href="#271">271</a>                 registry.setString( prefix + remoteIndexUrl, value.getRemoteIndexUrl() );
<a class="jxr_linenumber" name="272" href="#272">272</a>                   }
<a class="jxr_linenumber" name="273" href="#273">273</a>                         <strong class="jxr_keyword">if</strong> ( value.getRemoteDownloadNetworkProxyId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="274" href="#274">274</a>  )
<a class="jxr_linenumber" name="275" href="#275">275</a>             {
<a class="jxr_linenumber" name="276" href="#276">276</a>                       String remoteDownloadNetworkProxyId = <span class="jxr_string">"remoteDownloadNetworkProxyId"</span>;
<a class="jxr_linenumber" name="277" href="#277">277</a>                 registry.setString( prefix + remoteDownloadNetworkProxyId, value.getRemoteDownloadNetworkProxyId() );
<a class="jxr_linenumber" name="278" href="#278">278</a>                   }
<a class="jxr_linenumber" name="279" href="#279">279</a>                         <strong class="jxr_keyword">if</strong> ( value.getRemoteDownloadTimeout() != 300
<a class="jxr_linenumber" name="280" href="#280">280</a>  )
<a class="jxr_linenumber" name="281" href="#281">281</a>             {
<a class="jxr_linenumber" name="282" href="#282">282</a>                       String remoteDownloadTimeout = <span class="jxr_string">"remoteDownloadTimeout"</span>;
<a class="jxr_linenumber" name="283" href="#283">283</a>                 registry.setInt( prefix + remoteDownloadTimeout, value.getRemoteDownloadTimeout() );
<a class="jxr_linenumber" name="284" href="#284">284</a>                   }
<a class="jxr_linenumber" name="285" href="#285">285</a>                             String downloadRemoteIndexOnStartup = <span class="jxr_string">"downloadRemoteIndexOnStartup"</span>;
<a class="jxr_linenumber" name="286" href="#286">286</a>                 registry.setBoolean( prefix + downloadRemoteIndexOnStartup, value.isDownloadRemoteIndexOnStartup() );
<a class="jxr_linenumber" name="287" href="#287">287</a>                   <strong class="jxr_keyword">if</strong> ( value.getExtraParameters() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getExtraParameters().size() &gt; 0
<a class="jxr_linenumber" name="288" href="#288">288</a>  )
<a class="jxr_linenumber" name="289" href="#289">289</a>             {
<a class="jxr_linenumber" name="290" href="#290">290</a>                 registry.removeSubset( prefix + <span class="jxr_string">"extraParameters"</span> );
<a class="jxr_linenumber" name="291" href="#291">291</a>                 
<a class="jxr_linenumber" name="292" href="#292">292</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getExtraParameters().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="293" href="#293">293</a>                 {
<a class="jxr_linenumber" name="294" href="#294">294</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="295" href="#295">295</a>                     String v = (String) value.getExtraParameters().get( key );
<a class="jxr_linenumber" name="296" href="#296">296</a> 
<a class="jxr_linenumber" name="297" href="#297">297</a>                     registry.setString( prefix + <span class="jxr_string">"extraParameters."</span> + key, v );
<a class="jxr_linenumber" name="298" href="#298">298</a>                 }
<a class="jxr_linenumber" name="299" href="#299">299</a>             }
<a class="jxr_linenumber" name="300" href="#300">300</a>             <strong class="jxr_keyword">if</strong> ( value.getExtraHeaders() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getExtraHeaders().size() &gt; 0
<a class="jxr_linenumber" name="301" href="#301">301</a>  )
<a class="jxr_linenumber" name="302" href="#302">302</a>             {
<a class="jxr_linenumber" name="303" href="#303">303</a>                 registry.removeSubset( prefix + <span class="jxr_string">"extraHeaders"</span> );
<a class="jxr_linenumber" name="304" href="#304">304</a>                 
<a class="jxr_linenumber" name="305" href="#305">305</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getExtraHeaders().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="306" href="#306">306</a>                 {
<a class="jxr_linenumber" name="307" href="#307">307</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="308" href="#308">308</a>                     String v = (String) value.getExtraHeaders().get( key );
<a class="jxr_linenumber" name="309" href="#309">309</a> 
<a class="jxr_linenumber" name="310" href="#310">310</a>                     registry.setString( prefix + <span class="jxr_string">"extraHeaders."</span> + key, v );
<a class="jxr_linenumber" name="311" href="#311">311</a>                 }
<a class="jxr_linenumber" name="312" href="#312">312</a>             }
<a class="jxr_linenumber" name="313" href="#313">313</a>                   <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="314" href="#314">314</a>  )
<a class="jxr_linenumber" name="315" href="#315">315</a>             {
<a class="jxr_linenumber" name="316" href="#316">316</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="317" href="#317">317</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="318" href="#318">318</a>                   }
<a class="jxr_linenumber" name="319" href="#319">319</a>                         <strong class="jxr_keyword">if</strong> ( value.getName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="320" href="#320">320</a>  )
<a class="jxr_linenumber" name="321" href="#321">321</a>             {
<a class="jxr_linenumber" name="322" href="#322">322</a>                       String name = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="323" href="#323">323</a>                 registry.setString( prefix + name, value.getName() );
<a class="jxr_linenumber" name="324" href="#324">324</a>                   }
<a class="jxr_linenumber" name="325" href="#325">325</a>                         <strong class="jxr_keyword">if</strong> ( value.getLayout() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getLayout().equals( <span class="jxr_string">"default"</span> )
<a class="jxr_linenumber" name="326" href="#326">326</a>  )
<a class="jxr_linenumber" name="327" href="#327">327</a>             {
<a class="jxr_linenumber" name="328" href="#328">328</a>                       String layout = <span class="jxr_string">"layout"</span>;
<a class="jxr_linenumber" name="329" href="#329">329</a>                 registry.setString( prefix + layout, value.getLayout() );
<a class="jxr_linenumber" name="330" href="#330">330</a>                   }
<a class="jxr_linenumber" name="331" href="#331">331</a>                         <strong class="jxr_keyword">if</strong> ( value.getIndexDir() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="332" href="#332">332</a>  )
<a class="jxr_linenumber" name="333" href="#333">333</a>             {
<a class="jxr_linenumber" name="334" href="#334">334</a>                       String indexDir = <span class="jxr_string">"indexDir"</span>;
<a class="jxr_linenumber" name="335" href="#335">335</a>                 registry.setString( prefix + indexDir, value.getIndexDir() );
<a class="jxr_linenumber" name="336" href="#336">336</a>                   }
<a class="jxr_linenumber" name="337" href="#337">337</a>                         <strong class="jxr_keyword">if</strong> ( value.getDescription() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="338" href="#338">338</a>  )
<a class="jxr_linenumber" name="339" href="#339">339</a>             {
<a class="jxr_linenumber" name="340" href="#340">340</a>                       String description = <span class="jxr_string">"description"</span>;
<a class="jxr_linenumber" name="341" href="#341">341</a>                 registry.setString( prefix + description, value.getDescription() );
<a class="jxr_linenumber" name="342" href="#342">342</a>                   }
<a class="jxr_linenumber" name="343" href="#343">343</a>               }
<a class="jxr_linenumber" name="344" href="#344">344</a>     }
<a class="jxr_linenumber" name="345" href="#345">345</a>     
<a class="jxr_linenumber" name="346" href="#346">346</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeManagedRepositoryConfiguration( String prefix, ManagedRepositoryConfiguration value, Registry registry )
<a class="jxr_linenumber" name="347" href="#347">347</a>     {
<a class="jxr_linenumber" name="348" href="#348">348</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="349" href="#349">349</a>         {
<a class="jxr_linenumber" name="350" href="#350">350</a>                   <strong class="jxr_keyword">if</strong> ( value.getLocation() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="351" href="#351">351</a>  )
<a class="jxr_linenumber" name="352" href="#352">352</a>             {
<a class="jxr_linenumber" name="353" href="#353">353</a>                       String location = <span class="jxr_string">"location"</span>;
<a class="jxr_linenumber" name="354" href="#354">354</a>                 registry.setString( prefix + location, value.getLocation() );
<a class="jxr_linenumber" name="355" href="#355">355</a>                   }
<a class="jxr_linenumber" name="356" href="#356">356</a>                             String releases = <span class="jxr_string">"releases"</span>;
<a class="jxr_linenumber" name="357" href="#357">357</a>                 registry.setBoolean( prefix + releases, value.isReleases() );
<a class="jxr_linenumber" name="358" href="#358">358</a>                             String blockRedeployments = <span class="jxr_string">"blockRedeployments"</span>;
<a class="jxr_linenumber" name="359" href="#359">359</a>                 registry.setBoolean( prefix + blockRedeployments, value.isBlockRedeployments() );
<a class="jxr_linenumber" name="360" href="#360">360</a>                             String snapshots = <span class="jxr_string">"snapshots"</span>;
<a class="jxr_linenumber" name="361" href="#361">361</a>                 registry.setBoolean( prefix + snapshots, value.isSnapshots() );
<a class="jxr_linenumber" name="362" href="#362">362</a>                             String scanned = <span class="jxr_string">"scanned"</span>;
<a class="jxr_linenumber" name="363" href="#363">363</a>                 registry.setBoolean( prefix + scanned, value.isScanned() );
<a class="jxr_linenumber" name="364" href="#364">364</a>                         <strong class="jxr_keyword">if</strong> ( value.getRefreshCronExpression() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getRefreshCronExpression().equals( <span class="jxr_string">"0 0 * * * ?"</span> )
<a class="jxr_linenumber" name="365" href="#365">365</a>  )
<a class="jxr_linenumber" name="366" href="#366">366</a>             {
<a class="jxr_linenumber" name="367" href="#367">367</a>                       String refreshCronExpression = <span class="jxr_string">"refreshCronExpression"</span>;
<a class="jxr_linenumber" name="368" href="#368">368</a>                 registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
<a class="jxr_linenumber" name="369" href="#369">369</a>                   }
<a class="jxr_linenumber" name="370" href="#370">370</a>                         <strong class="jxr_keyword">if</strong> ( value.getRetentionCount() != 2
<a class="jxr_linenumber" name="371" href="#371">371</a>  )
<a class="jxr_linenumber" name="372" href="#372">372</a>             {
<a class="jxr_linenumber" name="373" href="#373">373</a>                       String retentionCount = <span class="jxr_string">"retentionCount"</span>;
<a class="jxr_linenumber" name="374" href="#374">374</a>                 registry.setInt( prefix + retentionCount, value.getRetentionCount() );
<a class="jxr_linenumber" name="375" href="#375">375</a>                   }
<a class="jxr_linenumber" name="376" href="#376">376</a>                         <strong class="jxr_keyword">if</strong> ( value.getDaysOlder() != 100
<a class="jxr_linenumber" name="377" href="#377">377</a>  )
<a class="jxr_linenumber" name="378" href="#378">378</a>             {
<a class="jxr_linenumber" name="379" href="#379">379</a>                       String daysOlder = <span class="jxr_string">"daysOlder"</span>;
<a class="jxr_linenumber" name="380" href="#380">380</a>                 registry.setInt( prefix + daysOlder, value.getDaysOlder() );
<a class="jxr_linenumber" name="381" href="#381">381</a>                   }
<a class="jxr_linenumber" name="382" href="#382">382</a>                             String deleteReleasedSnapshots = <span class="jxr_string">"deleteReleasedSnapshots"</span>;
<a class="jxr_linenumber" name="383" href="#383">383</a>                 registry.setBoolean( prefix + deleteReleasedSnapshots, value.isDeleteReleasedSnapshots() );
<a class="jxr_linenumber" name="384" href="#384">384</a>                             String skipPackedIndexCreation = <span class="jxr_string">"skipPackedIndexCreation"</span>;
<a class="jxr_linenumber" name="385" href="#385">385</a>                 registry.setBoolean( prefix + skipPackedIndexCreation, value.isSkipPackedIndexCreation() );
<a class="jxr_linenumber" name="386" href="#386">386</a>                             String stageRepoNeeded = <span class="jxr_string">"stageRepoNeeded"</span>;
<a class="jxr_linenumber" name="387" href="#387">387</a>                 registry.setBoolean( prefix + stageRepoNeeded, value.isStageRepoNeeded() );
<a class="jxr_linenumber" name="388" href="#388">388</a>                         <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="389" href="#389">389</a>  )
<a class="jxr_linenumber" name="390" href="#390">390</a>             {
<a class="jxr_linenumber" name="391" href="#391">391</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="392" href="#392">392</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="393" href="#393">393</a>                   }
<a class="jxr_linenumber" name="394" href="#394">394</a>                         <strong class="jxr_keyword">if</strong> ( value.getName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="395" href="#395">395</a>  )
<a class="jxr_linenumber" name="396" href="#396">396</a>             {
<a class="jxr_linenumber" name="397" href="#397">397</a>                       String name = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="398" href="#398">398</a>                 registry.setString( prefix + name, value.getName() );
<a class="jxr_linenumber" name="399" href="#399">399</a>                   }
<a class="jxr_linenumber" name="400" href="#400">400</a>                         <strong class="jxr_keyword">if</strong> ( value.getLayout() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getLayout().equals( <span class="jxr_string">"default"</span> )
<a class="jxr_linenumber" name="401" href="#401">401</a>  )
<a class="jxr_linenumber" name="402" href="#402">402</a>             {
<a class="jxr_linenumber" name="403" href="#403">403</a>                       String layout = <span class="jxr_string">"layout"</span>;
<a class="jxr_linenumber" name="404" href="#404">404</a>                 registry.setString( prefix + layout, value.getLayout() );
<a class="jxr_linenumber" name="405" href="#405">405</a>                   }
<a class="jxr_linenumber" name="406" href="#406">406</a>                         <strong class="jxr_keyword">if</strong> ( value.getIndexDir() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="407" href="#407">407</a>  )
<a class="jxr_linenumber" name="408" href="#408">408</a>             {
<a class="jxr_linenumber" name="409" href="#409">409</a>                       String indexDir = <span class="jxr_string">"indexDir"</span>;
<a class="jxr_linenumber" name="410" href="#410">410</a>                 registry.setString( prefix + indexDir, value.getIndexDir() );
<a class="jxr_linenumber" name="411" href="#411">411</a>                   }
<a class="jxr_linenumber" name="412" href="#412">412</a>                         <strong class="jxr_keyword">if</strong> ( value.getDescription() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="413" href="#413">413</a>  )
<a class="jxr_linenumber" name="414" href="#414">414</a>             {
<a class="jxr_linenumber" name="415" href="#415">415</a>                       String description = <span class="jxr_string">"description"</span>;
<a class="jxr_linenumber" name="416" href="#416">416</a>                 registry.setString( prefix + description, value.getDescription() );
<a class="jxr_linenumber" name="417" href="#417">417</a>                   }
<a class="jxr_linenumber" name="418" href="#418">418</a>               }
<a class="jxr_linenumber" name="419" href="#419">419</a>     }
<a class="jxr_linenumber" name="420" href="#420">420</a>     
<a class="jxr_linenumber" name="421" href="#421">421</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeV1RepositoryConfiguration( String prefix, V1RepositoryConfiguration value, Registry registry )
<a class="jxr_linenumber" name="422" href="#422">422</a>     {
<a class="jxr_linenumber" name="423" href="#423">423</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="424" href="#424">424</a>         {
<a class="jxr_linenumber" name="425" href="#425">425</a>                   <strong class="jxr_keyword">if</strong> ( value.getUrl() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="426" href="#426">426</a>  )
<a class="jxr_linenumber" name="427" href="#427">427</a>             {
<a class="jxr_linenumber" name="428" href="#428">428</a>                       String url = <span class="jxr_string">"url"</span>;
<a class="jxr_linenumber" name="429" href="#429">429</a>                 registry.setString( prefix + url, value.getUrl() );
<a class="jxr_linenumber" name="430" href="#430">430</a>                   }
<a class="jxr_linenumber" name="431" href="#431">431</a>                             String indexed = <span class="jxr_string">"indexed"</span>;
<a class="jxr_linenumber" name="432" href="#432">432</a>                 registry.setBoolean( prefix + indexed, value.isIndexed() );
<a class="jxr_linenumber" name="433" href="#433">433</a>                         <strong class="jxr_keyword">if</strong> ( value.getLocation() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="434" href="#434">434</a>  )
<a class="jxr_linenumber" name="435" href="#435">435</a>             {
<a class="jxr_linenumber" name="436" href="#436">436</a>                       String location = <span class="jxr_string">"location"</span>;
<a class="jxr_linenumber" name="437" href="#437">437</a>                 registry.setString( prefix + location, value.getLocation() );
<a class="jxr_linenumber" name="438" href="#438">438</a>                   }
<a class="jxr_linenumber" name="439" href="#439">439</a>                             String releases = <span class="jxr_string">"releases"</span>;
<a class="jxr_linenumber" name="440" href="#440">440</a>                 registry.setBoolean( prefix + releases, value.isReleases() );
<a class="jxr_linenumber" name="441" href="#441">441</a>                             String blockRedeployments = <span class="jxr_string">"blockRedeployments"</span>;
<a class="jxr_linenumber" name="442" href="#442">442</a>                 registry.setBoolean( prefix + blockRedeployments, value.isBlockRedeployments() );
<a class="jxr_linenumber" name="443" href="#443">443</a>                             String snapshots = <span class="jxr_string">"snapshots"</span>;
<a class="jxr_linenumber" name="444" href="#444">444</a>                 registry.setBoolean( prefix + snapshots, value.isSnapshots() );
<a class="jxr_linenumber" name="445" href="#445">445</a>                             String scanned = <span class="jxr_string">"scanned"</span>;
<a class="jxr_linenumber" name="446" href="#446">446</a>                 registry.setBoolean( prefix + scanned, value.isScanned() );
<a class="jxr_linenumber" name="447" href="#447">447</a>                         <strong class="jxr_keyword">if</strong> ( value.getRefreshCronExpression() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getRefreshCronExpression().equals( <span class="jxr_string">"0 0 * * * ?"</span> )
<a class="jxr_linenumber" name="448" href="#448">448</a>  )
<a class="jxr_linenumber" name="449" href="#449">449</a>             {
<a class="jxr_linenumber" name="450" href="#450">450</a>                       String refreshCronExpression = <span class="jxr_string">"refreshCronExpression"</span>;
<a class="jxr_linenumber" name="451" href="#451">451</a>                 registry.setString( prefix + refreshCronExpression, value.getRefreshCronExpression() );
<a class="jxr_linenumber" name="452" href="#452">452</a>                   }
<a class="jxr_linenumber" name="453" href="#453">453</a>                         <strong class="jxr_keyword">if</strong> ( value.getRetentionCount() != 2
<a class="jxr_linenumber" name="454" href="#454">454</a>  )
<a class="jxr_linenumber" name="455" href="#455">455</a>             {
<a class="jxr_linenumber" name="456" href="#456">456</a>                       String retentionCount = <span class="jxr_string">"retentionCount"</span>;
<a class="jxr_linenumber" name="457" href="#457">457</a>                 registry.setInt( prefix + retentionCount, value.getRetentionCount() );
<a class="jxr_linenumber" name="458" href="#458">458</a>                   }
<a class="jxr_linenumber" name="459" href="#459">459</a>                         <strong class="jxr_keyword">if</strong> ( value.getDaysOlder() != 100
<a class="jxr_linenumber" name="460" href="#460">460</a>  )
<a class="jxr_linenumber" name="461" href="#461">461</a>             {
<a class="jxr_linenumber" name="462" href="#462">462</a>                       String daysOlder = <span class="jxr_string">"daysOlder"</span>;
<a class="jxr_linenumber" name="463" href="#463">463</a>                 registry.setInt( prefix + daysOlder, value.getDaysOlder() );
<a class="jxr_linenumber" name="464" href="#464">464</a>                   }
<a class="jxr_linenumber" name="465" href="#465">465</a>                             String deleteReleasedSnapshots = <span class="jxr_string">"deleteReleasedSnapshots"</span>;
<a class="jxr_linenumber" name="466" href="#466">466</a>                 registry.setBoolean( prefix + deleteReleasedSnapshots, value.isDeleteReleasedSnapshots() );
<a class="jxr_linenumber" name="467" href="#467">467</a>                             String skipPackedIndexCreation = <span class="jxr_string">"skipPackedIndexCreation"</span>;
<a class="jxr_linenumber" name="468" href="#468">468</a>                 registry.setBoolean( prefix + skipPackedIndexCreation, value.isSkipPackedIndexCreation() );
<a class="jxr_linenumber" name="469" href="#469">469</a>                             String stageRepoNeeded = <span class="jxr_string">"stageRepoNeeded"</span>;
<a class="jxr_linenumber" name="470" href="#470">470</a>                 registry.setBoolean( prefix + stageRepoNeeded, value.isStageRepoNeeded() );
<a class="jxr_linenumber" name="471" href="#471">471</a>                         <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="472" href="#472">472</a>  )
<a class="jxr_linenumber" name="473" href="#473">473</a>             {
<a class="jxr_linenumber" name="474" href="#474">474</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="475" href="#475">475</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="476" href="#476">476</a>                   }
<a class="jxr_linenumber" name="477" href="#477">477</a>                         <strong class="jxr_keyword">if</strong> ( value.getName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="478" href="#478">478</a>  )
<a class="jxr_linenumber" name="479" href="#479">479</a>             {
<a class="jxr_linenumber" name="480" href="#480">480</a>                       String name = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="481" href="#481">481</a>                 registry.setString( prefix + name, value.getName() );
<a class="jxr_linenumber" name="482" href="#482">482</a>                   }
<a class="jxr_linenumber" name="483" href="#483">483</a>                         <strong class="jxr_keyword">if</strong> ( value.getLayout() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getLayout().equals( <span class="jxr_string">"default"</span> )
<a class="jxr_linenumber" name="484" href="#484">484</a>  )
<a class="jxr_linenumber" name="485" href="#485">485</a>             {
<a class="jxr_linenumber" name="486" href="#486">486</a>                       String layout = <span class="jxr_string">"layout"</span>;
<a class="jxr_linenumber" name="487" href="#487">487</a>                 registry.setString( prefix + layout, value.getLayout() );
<a class="jxr_linenumber" name="488" href="#488">488</a>                   }
<a class="jxr_linenumber" name="489" href="#489">489</a>                         <strong class="jxr_keyword">if</strong> ( value.getIndexDir() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="490" href="#490">490</a>  )
<a class="jxr_linenumber" name="491" href="#491">491</a>             {
<a class="jxr_linenumber" name="492" href="#492">492</a>                       String indexDir = <span class="jxr_string">"indexDir"</span>;
<a class="jxr_linenumber" name="493" href="#493">493</a>                 registry.setString( prefix + indexDir, value.getIndexDir() );
<a class="jxr_linenumber" name="494" href="#494">494</a>                   }
<a class="jxr_linenumber" name="495" href="#495">495</a>                         <strong class="jxr_keyword">if</strong> ( value.getDescription() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="496" href="#496">496</a>  )
<a class="jxr_linenumber" name="497" href="#497">497</a>             {
<a class="jxr_linenumber" name="498" href="#498">498</a>                       String description = <span class="jxr_string">"description"</span>;
<a class="jxr_linenumber" name="499" href="#499">499</a>                 registry.setString( prefix + description, value.getDescription() );
<a class="jxr_linenumber" name="500" href="#500">500</a>                   }
<a class="jxr_linenumber" name="501" href="#501">501</a>               }
<a class="jxr_linenumber" name="502" href="#502">502</a>     }
<a class="jxr_linenumber" name="503" href="#503">503</a>     
<a class="jxr_linenumber" name="504" href="#504">504</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeLegacyArtifactPath( String prefix, LegacyArtifactPath value, Registry registry )
<a class="jxr_linenumber" name="505" href="#505">505</a>     {
<a class="jxr_linenumber" name="506" href="#506">506</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="507" href="#507">507</a>         {
<a class="jxr_linenumber" name="508" href="#508">508</a>                   <strong class="jxr_keyword">if</strong> ( value.getPath() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="509" href="#509">509</a>  )
<a class="jxr_linenumber" name="510" href="#510">510</a>             {
<a class="jxr_linenumber" name="511" href="#511">511</a>                       String path = <span class="jxr_string">"path"</span>;
<a class="jxr_linenumber" name="512" href="#512">512</a>                 registry.setString( prefix + path, value.getPath() );
<a class="jxr_linenumber" name="513" href="#513">513</a>                   }
<a class="jxr_linenumber" name="514" href="#514">514</a>                         <strong class="jxr_keyword">if</strong> ( value.getArtifact() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="515" href="#515">515</a>  )
<a class="jxr_linenumber" name="516" href="#516">516</a>             {
<a class="jxr_linenumber" name="517" href="#517">517</a>                       String artifact = <span class="jxr_string">"artifact"</span>;
<a class="jxr_linenumber" name="518" href="#518">518</a>                 registry.setString( prefix + artifact, value.getArtifact() );
<a class="jxr_linenumber" name="519" href="#519">519</a>                   }
<a class="jxr_linenumber" name="520" href="#520">520</a>               }
<a class="jxr_linenumber" name="521" href="#521">521</a>     }
<a class="jxr_linenumber" name="522" href="#522">522</a>     
<a class="jxr_linenumber" name="523" href="#523">523</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRepositoryGroupConfiguration( String prefix, RepositoryGroupConfiguration value, Registry registry )
<a class="jxr_linenumber" name="524" href="#524">524</a>     {
<a class="jxr_linenumber" name="525" href="#525">525</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="526" href="#526">526</a>         {
<a class="jxr_linenumber" name="527" href="#527">527</a>                   <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="528" href="#528">528</a>  )
<a class="jxr_linenumber" name="529" href="#529">529</a>             {
<a class="jxr_linenumber" name="530" href="#530">530</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="531" href="#531">531</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="532" href="#532">532</a>                   }
<a class="jxr_linenumber" name="533" href="#533">533</a>                         <strong class="jxr_keyword">if</strong> ( value.getMergedIndexPath() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getMergedIndexPath().equals( <span class="jxr_string">"/.indexer"</span> )
<a class="jxr_linenumber" name="534" href="#534">534</a>  )
<a class="jxr_linenumber" name="535" href="#535">535</a>             {
<a class="jxr_linenumber" name="536" href="#536">536</a>                       String mergedIndexPath = <span class="jxr_string">"mergedIndexPath"</span>;
<a class="jxr_linenumber" name="537" href="#537">537</a>                 registry.setString( prefix + mergedIndexPath, value.getMergedIndexPath() );
<a class="jxr_linenumber" name="538" href="#538">538</a>                   }
<a class="jxr_linenumber" name="539" href="#539">539</a>                         <strong class="jxr_keyword">if</strong> ( value.getMergedIndexTtl() != 30
<a class="jxr_linenumber" name="540" href="#540">540</a>  )
<a class="jxr_linenumber" name="541" href="#541">541</a>             {
<a class="jxr_linenumber" name="542" href="#542">542</a>                       String mergedIndexTtl = <span class="jxr_string">"mergedIndexTtl"</span>;
<a class="jxr_linenumber" name="543" href="#543">543</a>                 registry.setInt( prefix + mergedIndexTtl, value.getMergedIndexTtl() );
<a class="jxr_linenumber" name="544" href="#544">544</a>                   }
<a class="jxr_linenumber" name="545" href="#545">545</a>                   <strong class="jxr_keyword">if</strong> ( value.getRepositories() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRepositories().size() &gt; 0
<a class="jxr_linenumber" name="546" href="#546">546</a>  )
<a class="jxr_linenumber" name="547" href="#547">547</a>             {
<a class="jxr_linenumber" name="548" href="#548">548</a>                 registry.removeSubset( prefix + <span class="jxr_string">"repositories"</span> );
<a class="jxr_linenumber" name="549" href="#549">549</a> 
<a class="jxr_linenumber" name="550" href="#550">550</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="551" href="#551">551</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRepositories().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="552" href="#552">552</a>                 {
<a class="jxr_linenumber" name="553" href="#553">553</a>                     String name = <span class="jxr_string">"repositories.repository("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="554" href="#554">554</a>                     String repository = ( String ) iter.next();
<a class="jxr_linenumber" name="555" href="#555">555</a>                     registry.setString( prefix + name, repository );
<a class="jxr_linenumber" name="556" href="#556">556</a>                 }
<a class="jxr_linenumber" name="557" href="#557">557</a>             }
<a class="jxr_linenumber" name="558" href="#558">558</a>         }
<a class="jxr_linenumber" name="559" href="#559">559</a>     }
<a class="jxr_linenumber" name="560" href="#560">560</a>     
<a class="jxr_linenumber" name="561" href="#561">561</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeAbstractRepositoryConnectorConfiguration( String prefix, AbstractRepositoryConnectorConfiguration value, Registry registry )
<a class="jxr_linenumber" name="562" href="#562">562</a>     {
<a class="jxr_linenumber" name="563" href="#563">563</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="564" href="#564">564</a>         {
<a class="jxr_linenumber" name="565" href="#565">565</a>                   <strong class="jxr_keyword">if</strong> ( value.getSourceRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="566" href="#566">566</a>  )
<a class="jxr_linenumber" name="567" href="#567">567</a>             {
<a class="jxr_linenumber" name="568" href="#568">568</a>                       String sourceRepoId = <span class="jxr_string">"sourceRepoId"</span>;
<a class="jxr_linenumber" name="569" href="#569">569</a>                 registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
<a class="jxr_linenumber" name="570" href="#570">570</a>                   }
<a class="jxr_linenumber" name="571" href="#571">571</a>                         <strong class="jxr_keyword">if</strong> ( value.getTargetRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="572" href="#572">572</a>  )
<a class="jxr_linenumber" name="573" href="#573">573</a>             {
<a class="jxr_linenumber" name="574" href="#574">574</a>                       String targetRepoId = <span class="jxr_string">"targetRepoId"</span>;
<a class="jxr_linenumber" name="575" href="#575">575</a>                 registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
<a class="jxr_linenumber" name="576" href="#576">576</a>                   }
<a class="jxr_linenumber" name="577" href="#577">577</a>                         <strong class="jxr_keyword">if</strong> ( value.getProxyId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="578" href="#578">578</a>  )
<a class="jxr_linenumber" name="579" href="#579">579</a>             {
<a class="jxr_linenumber" name="580" href="#580">580</a>                       String proxyId = <span class="jxr_string">"proxyId"</span>;
<a class="jxr_linenumber" name="581" href="#581">581</a>                 registry.setString( prefix + proxyId, value.getProxyId() );
<a class="jxr_linenumber" name="582" href="#582">582</a>                   }
<a class="jxr_linenumber" name="583" href="#583">583</a>                   <strong class="jxr_keyword">if</strong> ( value.getBlackListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getBlackListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="584" href="#584">584</a>  )
<a class="jxr_linenumber" name="585" href="#585">585</a>             {
<a class="jxr_linenumber" name="586" href="#586">586</a>                 registry.removeSubset( prefix + <span class="jxr_string">"blackListPatterns"</span> );
<a class="jxr_linenumber" name="587" href="#587">587</a> 
<a class="jxr_linenumber" name="588" href="#588">588</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="589" href="#589">589</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="590" href="#590">590</a>                 {
<a class="jxr_linenumber" name="591" href="#591">591</a>                     String name = <span class="jxr_string">"blackListPatterns.blackListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="592" href="#592">592</a>                     String blackListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="593" href="#593">593</a>                     registry.setString( prefix + name, blackListPattern );
<a class="jxr_linenumber" name="594" href="#594">594</a>                 }
<a class="jxr_linenumber" name="595" href="#595">595</a>             }
<a class="jxr_linenumber" name="596" href="#596">596</a>             <strong class="jxr_keyword">if</strong> ( value.getWhiteListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getWhiteListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="597" href="#597">597</a>  )
<a class="jxr_linenumber" name="598" href="#598">598</a>             {
<a class="jxr_linenumber" name="599" href="#599">599</a>                 registry.removeSubset( prefix + <span class="jxr_string">"whiteListPatterns"</span> );
<a class="jxr_linenumber" name="600" href="#600">600</a> 
<a class="jxr_linenumber" name="601" href="#601">601</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="602" href="#602">602</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="603" href="#603">603</a>                 {
<a class="jxr_linenumber" name="604" href="#604">604</a>                     String name = <span class="jxr_string">"whiteListPatterns.whiteListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="605" href="#605">605</a>                     String whiteListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="606" href="#606">606</a>                     registry.setString( prefix + name, whiteListPattern );
<a class="jxr_linenumber" name="607" href="#607">607</a>                 }
<a class="jxr_linenumber" name="608" href="#608">608</a>             }
<a class="jxr_linenumber" name="609" href="#609">609</a>             <strong class="jxr_keyword">if</strong> ( value.getPolicies() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getPolicies().size() &gt; 0
<a class="jxr_linenumber" name="610" href="#610">610</a>  )
<a class="jxr_linenumber" name="611" href="#611">611</a>             {
<a class="jxr_linenumber" name="612" href="#612">612</a>                 registry.removeSubset( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="613" href="#613">613</a>                 
<a class="jxr_linenumber" name="614" href="#614">614</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="615" href="#615">615</a>                 {
<a class="jxr_linenumber" name="616" href="#616">616</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="617" href="#617">617</a>                     String v = (String) value.getPolicies().get( key );
<a class="jxr_linenumber" name="618" href="#618">618</a> 
<a class="jxr_linenumber" name="619" href="#619">619</a>                     registry.setString( prefix + <span class="jxr_string">"policies."</span> + key, v );
<a class="jxr_linenumber" name="620" href="#620">620</a>                 }
<a class="jxr_linenumber" name="621" href="#621">621</a>             }
<a class="jxr_linenumber" name="622" href="#622">622</a>             <strong class="jxr_keyword">if</strong> ( value.getProperties() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProperties().size() &gt; 0
<a class="jxr_linenumber" name="623" href="#623">623</a>  )
<a class="jxr_linenumber" name="624" href="#624">624</a>             {
<a class="jxr_linenumber" name="625" href="#625">625</a>                 registry.removeSubset( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="626" href="#626">626</a>                 
<a class="jxr_linenumber" name="627" href="#627">627</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="628" href="#628">628</a>                 {
<a class="jxr_linenumber" name="629" href="#629">629</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="630" href="#630">630</a>                     String v = (String) value.getProperties().get( key );
<a class="jxr_linenumber" name="631" href="#631">631</a> 
<a class="jxr_linenumber" name="632" href="#632">632</a>                     registry.setString( prefix + <span class="jxr_string">"properties."</span> + key, v );
<a class="jxr_linenumber" name="633" href="#633">633</a>                 }
<a class="jxr_linenumber" name="634" href="#634">634</a>             }
<a class="jxr_linenumber" name="635" href="#635">635</a>                       String disabled = <span class="jxr_string">"disabled"</span>;
<a class="jxr_linenumber" name="636" href="#636">636</a>                 registry.setBoolean( prefix + disabled, value.isDisabled() );
<a class="jxr_linenumber" name="637" href="#637">637</a>               }
<a class="jxr_linenumber" name="638" href="#638">638</a>     }
<a class="jxr_linenumber" name="639" href="#639">639</a>     
<a class="jxr_linenumber" name="640" href="#640">640</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeProxyConnectorRuleConfiguration( String prefix, ProxyConnectorRuleConfiguration value, Registry registry )
<a class="jxr_linenumber" name="641" href="#641">641</a>     {
<a class="jxr_linenumber" name="642" href="#642">642</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="643" href="#643">643</a>         {
<a class="jxr_linenumber" name="644" href="#644">644</a>                   <strong class="jxr_keyword">if</strong> ( value.getRuleType() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="645" href="#645">645</a>  )
<a class="jxr_linenumber" name="646" href="#646">646</a>             {
<a class="jxr_linenumber" name="647" href="#647">647</a>                       String ruleType = <span class="jxr_string">"ruleType"</span>;
<a class="jxr_linenumber" name="648" href="#648">648</a>                 registry.setString( prefix + ruleType, value.getRuleType() );
<a class="jxr_linenumber" name="649" href="#649">649</a>                   }
<a class="jxr_linenumber" name="650" href="#650">650</a>                         <strong class="jxr_keyword">if</strong> ( value.getPattern() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="651" href="#651">651</a>  )
<a class="jxr_linenumber" name="652" href="#652">652</a>             {
<a class="jxr_linenumber" name="653" href="#653">653</a>                       String pattern = <span class="jxr_string">"pattern"</span>;
<a class="jxr_linenumber" name="654" href="#654">654</a>                 registry.setString( prefix + pattern, value.getPattern() );
<a class="jxr_linenumber" name="655" href="#655">655</a>                   }
<a class="jxr_linenumber" name="656" href="#656">656</a>                   <strong class="jxr_keyword">if</strong> ( value.getProxyConnectors() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProxyConnectors().size() &gt; 0
<a class="jxr_linenumber" name="657" href="#657">657</a>  )
<a class="jxr_linenumber" name="658" href="#658">658</a>             {
<a class="jxr_linenumber" name="659" href="#659">659</a>                 registry.removeSubset( prefix + <span class="jxr_string">"proxyConnectors"</span> );
<a class="jxr_linenumber" name="660" href="#660">660</a> 
<a class="jxr_linenumber" name="661" href="#661">661</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="662" href="#662">662</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProxyConnectors().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="663" href="#663">663</a>                 {
<a class="jxr_linenumber" name="664" href="#664">664</a>                     String name = <span class="jxr_string">"proxyConnectors.proxyConnector("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="665" href="#665">665</a>                     <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> o = ( ProxyConnectorConfiguration ) iter.next();
<a class="jxr_linenumber" name="666" href="#666">666</a>                     writeProxyConnectorConfiguration( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="667" href="#667">667</a>                 }
<a class="jxr_linenumber" name="668" href="#668">668</a>             }
<a class="jxr_linenumber" name="669" href="#669">669</a>         }
<a class="jxr_linenumber" name="670" href="#670">670</a>     }
<a class="jxr_linenumber" name="671" href="#671">671</a>     
<a class="jxr_linenumber" name="672" href="#672">672</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeProxyConnectorConfiguration( String prefix, ProxyConnectorConfiguration value, Registry registry )
<a class="jxr_linenumber" name="673" href="#673">673</a>     {
<a class="jxr_linenumber" name="674" href="#674">674</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="675" href="#675">675</a>         {
<a class="jxr_linenumber" name="676" href="#676">676</a>                   <strong class="jxr_keyword">if</strong> ( value.getOrder() != 0
<a class="jxr_linenumber" name="677" href="#677">677</a>  )
<a class="jxr_linenumber" name="678" href="#678">678</a>             {
<a class="jxr_linenumber" name="679" href="#679">679</a>                       String order = <span class="jxr_string">"order"</span>;
<a class="jxr_linenumber" name="680" href="#680">680</a>                 registry.setInt( prefix + order, value.getOrder() );
<a class="jxr_linenumber" name="681" href="#681">681</a>                   }
<a class="jxr_linenumber" name="682" href="#682">682</a>                         <strong class="jxr_keyword">if</strong> ( value.getSourceRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="683" href="#683">683</a>  )
<a class="jxr_linenumber" name="684" href="#684">684</a>             {
<a class="jxr_linenumber" name="685" href="#685">685</a>                       String sourceRepoId = <span class="jxr_string">"sourceRepoId"</span>;
<a class="jxr_linenumber" name="686" href="#686">686</a>                 registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
<a class="jxr_linenumber" name="687" href="#687">687</a>                   }
<a class="jxr_linenumber" name="688" href="#688">688</a>                         <strong class="jxr_keyword">if</strong> ( value.getTargetRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="689" href="#689">689</a>  )
<a class="jxr_linenumber" name="690" href="#690">690</a>             {
<a class="jxr_linenumber" name="691" href="#691">691</a>                       String targetRepoId = <span class="jxr_string">"targetRepoId"</span>;
<a class="jxr_linenumber" name="692" href="#692">692</a>                 registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
<a class="jxr_linenumber" name="693" href="#693">693</a>                   }
<a class="jxr_linenumber" name="694" href="#694">694</a>                         <strong class="jxr_keyword">if</strong> ( value.getProxyId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="695" href="#695">695</a>  )
<a class="jxr_linenumber" name="696" href="#696">696</a>             {
<a class="jxr_linenumber" name="697" href="#697">697</a>                       String proxyId = <span class="jxr_string">"proxyId"</span>;
<a class="jxr_linenumber" name="698" href="#698">698</a>                 registry.setString( prefix + proxyId, value.getProxyId() );
<a class="jxr_linenumber" name="699" href="#699">699</a>                   }
<a class="jxr_linenumber" name="700" href="#700">700</a>                   <strong class="jxr_keyword">if</strong> ( value.getBlackListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getBlackListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="701" href="#701">701</a>  )
<a class="jxr_linenumber" name="702" href="#702">702</a>             {
<a class="jxr_linenumber" name="703" href="#703">703</a>                 registry.removeSubset( prefix + <span class="jxr_string">"blackListPatterns"</span> );
<a class="jxr_linenumber" name="704" href="#704">704</a> 
<a class="jxr_linenumber" name="705" href="#705">705</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="706" href="#706">706</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="707" href="#707">707</a>                 {
<a class="jxr_linenumber" name="708" href="#708">708</a>                     String name = <span class="jxr_string">"blackListPatterns.blackListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="709" href="#709">709</a>                     String blackListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="710" href="#710">710</a>                     registry.setString( prefix + name, blackListPattern );
<a class="jxr_linenumber" name="711" href="#711">711</a>                 }
<a class="jxr_linenumber" name="712" href="#712">712</a>             }
<a class="jxr_linenumber" name="713" href="#713">713</a>             <strong class="jxr_keyword">if</strong> ( value.getWhiteListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getWhiteListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="714" href="#714">714</a>  )
<a class="jxr_linenumber" name="715" href="#715">715</a>             {
<a class="jxr_linenumber" name="716" href="#716">716</a>                 registry.removeSubset( prefix + <span class="jxr_string">"whiteListPatterns"</span> );
<a class="jxr_linenumber" name="717" href="#717">717</a> 
<a class="jxr_linenumber" name="718" href="#718">718</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="719" href="#719">719</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="720" href="#720">720</a>                 {
<a class="jxr_linenumber" name="721" href="#721">721</a>                     String name = <span class="jxr_string">"whiteListPatterns.whiteListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="722" href="#722">722</a>                     String whiteListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="723" href="#723">723</a>                     registry.setString( prefix + name, whiteListPattern );
<a class="jxr_linenumber" name="724" href="#724">724</a>                 }
<a class="jxr_linenumber" name="725" href="#725">725</a>             }
<a class="jxr_linenumber" name="726" href="#726">726</a>             <strong class="jxr_keyword">if</strong> ( value.getPolicies() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getPolicies().size() &gt; 0
<a class="jxr_linenumber" name="727" href="#727">727</a>  )
<a class="jxr_linenumber" name="728" href="#728">728</a>             {
<a class="jxr_linenumber" name="729" href="#729">729</a>                 registry.removeSubset( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="730" href="#730">730</a>                 
<a class="jxr_linenumber" name="731" href="#731">731</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="732" href="#732">732</a>                 {
<a class="jxr_linenumber" name="733" href="#733">733</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="734" href="#734">734</a>                     String v = (String) value.getPolicies().get( key );
<a class="jxr_linenumber" name="735" href="#735">735</a> 
<a class="jxr_linenumber" name="736" href="#736">736</a>                     registry.setString( prefix + <span class="jxr_string">"policies."</span> + key, v );
<a class="jxr_linenumber" name="737" href="#737">737</a>                 }
<a class="jxr_linenumber" name="738" href="#738">738</a>             }
<a class="jxr_linenumber" name="739" href="#739">739</a>             <strong class="jxr_keyword">if</strong> ( value.getProperties() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProperties().size() &gt; 0
<a class="jxr_linenumber" name="740" href="#740">740</a>  )
<a class="jxr_linenumber" name="741" href="#741">741</a>             {
<a class="jxr_linenumber" name="742" href="#742">742</a>                 registry.removeSubset( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="743" href="#743">743</a>                 
<a class="jxr_linenumber" name="744" href="#744">744</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="745" href="#745">745</a>                 {
<a class="jxr_linenumber" name="746" href="#746">746</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="747" href="#747">747</a>                     String v = (String) value.getProperties().get( key );
<a class="jxr_linenumber" name="748" href="#748">748</a> 
<a class="jxr_linenumber" name="749" href="#749">749</a>                     registry.setString( prefix + <span class="jxr_string">"properties."</span> + key, v );
<a class="jxr_linenumber" name="750" href="#750">750</a>                 }
<a class="jxr_linenumber" name="751" href="#751">751</a>             }
<a class="jxr_linenumber" name="752" href="#752">752</a>                       String disabled = <span class="jxr_string">"disabled"</span>;
<a class="jxr_linenumber" name="753" href="#753">753</a>                 registry.setBoolean( prefix + disabled, value.isDisabled() );
<a class="jxr_linenumber" name="754" href="#754">754</a>               }
<a class="jxr_linenumber" name="755" href="#755">755</a>     }
<a class="jxr_linenumber" name="756" href="#756">756</a>     
<a class="jxr_linenumber" name="757" href="#757">757</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeSyncConnectorConfiguration( String prefix, SyncConnectorConfiguration value, Registry registry )
<a class="jxr_linenumber" name="758" href="#758">758</a>     {
<a class="jxr_linenumber" name="759" href="#759">759</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="760" href="#760">760</a>         {
<a class="jxr_linenumber" name="761" href="#761">761</a>                   <strong class="jxr_keyword">if</strong> ( value.getCronExpression() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getCronExpression().equals( <span class="jxr_string">"0 0 * * * ?"</span> )
<a class="jxr_linenumber" name="762" href="#762">762</a>  )
<a class="jxr_linenumber" name="763" href="#763">763</a>             {
<a class="jxr_linenumber" name="764" href="#764">764</a>                       String cronExpression = <span class="jxr_string">"cronExpression"</span>;
<a class="jxr_linenumber" name="765" href="#765">765</a>                 registry.setString( prefix + cronExpression, value.getCronExpression() );
<a class="jxr_linenumber" name="766" href="#766">766</a>                   }
<a class="jxr_linenumber" name="767" href="#767">767</a>                         <strong class="jxr_keyword">if</strong> ( value.getMethod() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getMethod().equals( <span class="jxr_string">"rsync"</span> )
<a class="jxr_linenumber" name="768" href="#768">768</a>  )
<a class="jxr_linenumber" name="769" href="#769">769</a>             {
<a class="jxr_linenumber" name="770" href="#770">770</a>                       String method = <span class="jxr_string">"method"</span>;
<a class="jxr_linenumber" name="771" href="#771">771</a>                 registry.setString( prefix + method, value.getMethod() );
<a class="jxr_linenumber" name="772" href="#772">772</a>                   }
<a class="jxr_linenumber" name="773" href="#773">773</a>                         <strong class="jxr_keyword">if</strong> ( value.getSourceRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="774" href="#774">774</a>  )
<a class="jxr_linenumber" name="775" href="#775">775</a>             {
<a class="jxr_linenumber" name="776" href="#776">776</a>                       String sourceRepoId = <span class="jxr_string">"sourceRepoId"</span>;
<a class="jxr_linenumber" name="777" href="#777">777</a>                 registry.setString( prefix + sourceRepoId, value.getSourceRepoId() );
<a class="jxr_linenumber" name="778" href="#778">778</a>                   }
<a class="jxr_linenumber" name="779" href="#779">779</a>                         <strong class="jxr_keyword">if</strong> ( value.getTargetRepoId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="780" href="#780">780</a>  )
<a class="jxr_linenumber" name="781" href="#781">781</a>             {
<a class="jxr_linenumber" name="782" href="#782">782</a>                       String targetRepoId = <span class="jxr_string">"targetRepoId"</span>;
<a class="jxr_linenumber" name="783" href="#783">783</a>                 registry.setString( prefix + targetRepoId, value.getTargetRepoId() );
<a class="jxr_linenumber" name="784" href="#784">784</a>                   }
<a class="jxr_linenumber" name="785" href="#785">785</a>                         <strong class="jxr_keyword">if</strong> ( value.getProxyId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="786" href="#786">786</a>  )
<a class="jxr_linenumber" name="787" href="#787">787</a>             {
<a class="jxr_linenumber" name="788" href="#788">788</a>                       String proxyId = <span class="jxr_string">"proxyId"</span>;
<a class="jxr_linenumber" name="789" href="#789">789</a>                 registry.setString( prefix + proxyId, value.getProxyId() );
<a class="jxr_linenumber" name="790" href="#790">790</a>                   }
<a class="jxr_linenumber" name="791" href="#791">791</a>                   <strong class="jxr_keyword">if</strong> ( value.getBlackListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getBlackListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="792" href="#792">792</a>  )
<a class="jxr_linenumber" name="793" href="#793">793</a>             {
<a class="jxr_linenumber" name="794" href="#794">794</a>                 registry.removeSubset( prefix + <span class="jxr_string">"blackListPatterns"</span> );
<a class="jxr_linenumber" name="795" href="#795">795</a> 
<a class="jxr_linenumber" name="796" href="#796">796</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="797" href="#797">797</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getBlackListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="798" href="#798">798</a>                 {
<a class="jxr_linenumber" name="799" href="#799">799</a>                     String name = <span class="jxr_string">"blackListPatterns.blackListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="800" href="#800">800</a>                     String blackListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="801" href="#801">801</a>                     registry.setString( prefix + name, blackListPattern );
<a class="jxr_linenumber" name="802" href="#802">802</a>                 }
<a class="jxr_linenumber" name="803" href="#803">803</a>             }
<a class="jxr_linenumber" name="804" href="#804">804</a>             <strong class="jxr_keyword">if</strong> ( value.getWhiteListPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getWhiteListPatterns().size() &gt; 0
<a class="jxr_linenumber" name="805" href="#805">805</a>  )
<a class="jxr_linenumber" name="806" href="#806">806</a>             {
<a class="jxr_linenumber" name="807" href="#807">807</a>                 registry.removeSubset( prefix + <span class="jxr_string">"whiteListPatterns"</span> );
<a class="jxr_linenumber" name="808" href="#808">808</a> 
<a class="jxr_linenumber" name="809" href="#809">809</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="810" href="#810">810</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getWhiteListPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="811" href="#811">811</a>                 {
<a class="jxr_linenumber" name="812" href="#812">812</a>                     String name = <span class="jxr_string">"whiteListPatterns.whiteListPattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="813" href="#813">813</a>                     String whiteListPattern = ( String ) iter.next();
<a class="jxr_linenumber" name="814" href="#814">814</a>                     registry.setString( prefix + name, whiteListPattern );
<a class="jxr_linenumber" name="815" href="#815">815</a>                 }
<a class="jxr_linenumber" name="816" href="#816">816</a>             }
<a class="jxr_linenumber" name="817" href="#817">817</a>             <strong class="jxr_keyword">if</strong> ( value.getPolicies() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getPolicies().size() &gt; 0
<a class="jxr_linenumber" name="818" href="#818">818</a>  )
<a class="jxr_linenumber" name="819" href="#819">819</a>             {
<a class="jxr_linenumber" name="820" href="#820">820</a>                 registry.removeSubset( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="821" href="#821">821</a>                 
<a class="jxr_linenumber" name="822" href="#822">822</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getPolicies().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="823" href="#823">823</a>                 {
<a class="jxr_linenumber" name="824" href="#824">824</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="825" href="#825">825</a>                     String v = (String) value.getPolicies().get( key );
<a class="jxr_linenumber" name="826" href="#826">826</a> 
<a class="jxr_linenumber" name="827" href="#827">827</a>                     registry.setString( prefix + <span class="jxr_string">"policies."</span> + key, v );
<a class="jxr_linenumber" name="828" href="#828">828</a>                 }
<a class="jxr_linenumber" name="829" href="#829">829</a>             }
<a class="jxr_linenumber" name="830" href="#830">830</a>             <strong class="jxr_keyword">if</strong> ( value.getProperties() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getProperties().size() &gt; 0
<a class="jxr_linenumber" name="831" href="#831">831</a>  )
<a class="jxr_linenumber" name="832" href="#832">832</a>             {
<a class="jxr_linenumber" name="833" href="#833">833</a>                 registry.removeSubset( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="834" href="#834">834</a>                 
<a class="jxr_linenumber" name="835" href="#835">835</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getProperties().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="836" href="#836">836</a>                 {
<a class="jxr_linenumber" name="837" href="#837">837</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="838" href="#838">838</a>                     String v = (String) value.getProperties().get( key );
<a class="jxr_linenumber" name="839" href="#839">839</a> 
<a class="jxr_linenumber" name="840" href="#840">840</a>                     registry.setString( prefix + <span class="jxr_string">"properties."</span> + key, v );
<a class="jxr_linenumber" name="841" href="#841">841</a>                 }
<a class="jxr_linenumber" name="842" href="#842">842</a>             }
<a class="jxr_linenumber" name="843" href="#843">843</a>                       String disabled = <span class="jxr_string">"disabled"</span>;
<a class="jxr_linenumber" name="844" href="#844">844</a>                 registry.setBoolean( prefix + disabled, value.isDisabled() );
<a class="jxr_linenumber" name="845" href="#845">845</a>               }
<a class="jxr_linenumber" name="846" href="#846">846</a>     }
<a class="jxr_linenumber" name="847" href="#847">847</a>     
<a class="jxr_linenumber" name="848" href="#848">848</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeNetworkProxyConfiguration( String prefix, NetworkProxyConfiguration value, Registry registry )
<a class="jxr_linenumber" name="849" href="#849">849</a>     {
<a class="jxr_linenumber" name="850" href="#850">850</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="851" href="#851">851</a>         {
<a class="jxr_linenumber" name="852" href="#852">852</a>                   <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="853" href="#853">853</a>  )
<a class="jxr_linenumber" name="854" href="#854">854</a>             {
<a class="jxr_linenumber" name="855" href="#855">855</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="856" href="#856">856</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="857" href="#857">857</a>                   }
<a class="jxr_linenumber" name="858" href="#858">858</a>                         <strong class="jxr_keyword">if</strong> ( value.getProtocol() != <strong class="jxr_keyword">null</strong> &amp;&amp; !value.getProtocol().equals( <span class="jxr_string">"http"</span> )
<a class="jxr_linenumber" name="859" href="#859">859</a>  )
<a class="jxr_linenumber" name="860" href="#860">860</a>             {
<a class="jxr_linenumber" name="861" href="#861">861</a>                       String protocol = <span class="jxr_string">"protocol"</span>;
<a class="jxr_linenumber" name="862" href="#862">862</a>                 registry.setString( prefix + protocol, value.getProtocol() );
<a class="jxr_linenumber" name="863" href="#863">863</a>                   }
<a class="jxr_linenumber" name="864" href="#864">864</a>                         <strong class="jxr_keyword">if</strong> ( value.getHost() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="865" href="#865">865</a>  )
<a class="jxr_linenumber" name="866" href="#866">866</a>             {
<a class="jxr_linenumber" name="867" href="#867">867</a>                       String host = <span class="jxr_string">"host"</span>;
<a class="jxr_linenumber" name="868" href="#868">868</a>                 registry.setString( prefix + host, value.getHost() );
<a class="jxr_linenumber" name="869" href="#869">869</a>                   }
<a class="jxr_linenumber" name="870" href="#870">870</a>                         <strong class="jxr_keyword">if</strong> ( value.getPort() != 8080
<a class="jxr_linenumber" name="871" href="#871">871</a>  )
<a class="jxr_linenumber" name="872" href="#872">872</a>             {
<a class="jxr_linenumber" name="873" href="#873">873</a>                       String port = <span class="jxr_string">"port"</span>;
<a class="jxr_linenumber" name="874" href="#874">874</a>                 registry.setInt( prefix + port, value.getPort() );
<a class="jxr_linenumber" name="875" href="#875">875</a>                   }
<a class="jxr_linenumber" name="876" href="#876">876</a>                         <strong class="jxr_keyword">if</strong> ( value.getUsername() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="877" href="#877">877</a>  )
<a class="jxr_linenumber" name="878" href="#878">878</a>             {
<a class="jxr_linenumber" name="879" href="#879">879</a>                       String username = <span class="jxr_string">"username"</span>;
<a class="jxr_linenumber" name="880" href="#880">880</a>                 registry.setString( prefix + username, value.getUsername() );
<a class="jxr_linenumber" name="881" href="#881">881</a>                   }
<a class="jxr_linenumber" name="882" href="#882">882</a>                         <strong class="jxr_keyword">if</strong> ( value.getPassword() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="883" href="#883">883</a>  )
<a class="jxr_linenumber" name="884" href="#884">884</a>             {
<a class="jxr_linenumber" name="885" href="#885">885</a>                       String password = <span class="jxr_string">"password"</span>;
<a class="jxr_linenumber" name="886" href="#886">886</a>                 registry.setString( prefix + password, value.getPassword() );
<a class="jxr_linenumber" name="887" href="#887">887</a>                   }
<a class="jxr_linenumber" name="888" href="#888">888</a>                             String useNtlm = <span class="jxr_string">"useNtlm"</span>;
<a class="jxr_linenumber" name="889" href="#889">889</a>                 registry.setBoolean( prefix + useNtlm, value.isUseNtlm() );
<a class="jxr_linenumber" name="890" href="#890">890</a>               }
<a class="jxr_linenumber" name="891" href="#891">891</a>     }
<a class="jxr_linenumber" name="892" href="#892">892</a>     
<a class="jxr_linenumber" name="893" href="#893">893</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRepositoryScanningConfiguration( String prefix, RepositoryScanningConfiguration value, Registry registry )
<a class="jxr_linenumber" name="894" href="#894">894</a>     {
<a class="jxr_linenumber" name="895" href="#895">895</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="896" href="#896">896</a>         {
<a class="jxr_linenumber" name="897" href="#897">897</a>             <strong class="jxr_keyword">if</strong> ( value.getFileTypes() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getFileTypes().size() &gt; 0
<a class="jxr_linenumber" name="898" href="#898">898</a>  )
<a class="jxr_linenumber" name="899" href="#899">899</a>             {
<a class="jxr_linenumber" name="900" href="#900">900</a>                 registry.removeSubset( prefix + <span class="jxr_string">"fileTypes"</span> );
<a class="jxr_linenumber" name="901" href="#901">901</a> 
<a class="jxr_linenumber" name="902" href="#902">902</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="903" href="#903">903</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getFileTypes().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="904" href="#904">904</a>                 {
<a class="jxr_linenumber" name="905" href="#905">905</a>                     String name = <span class="jxr_string">"fileTypes.fileType("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="906" href="#906">906</a>                     <a href="../../../../../../org/apache/archiva/configuration/FileType.html">FileType</a> o = ( FileType ) iter.next();
<a class="jxr_linenumber" name="907" href="#907">907</a>                     writeFileType( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="908" href="#908">908</a>                 }
<a class="jxr_linenumber" name="909" href="#909">909</a>             }
<a class="jxr_linenumber" name="910" href="#910">910</a>             <strong class="jxr_keyword">if</strong> ( value.getKnownContentConsumers() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getKnownContentConsumers().size() &gt; 0
<a class="jxr_linenumber" name="911" href="#911">911</a>  )
<a class="jxr_linenumber" name="912" href="#912">912</a>             {
<a class="jxr_linenumber" name="913" href="#913">913</a>                 registry.removeSubset( prefix + <span class="jxr_string">"knownContentConsumers"</span> );
<a class="jxr_linenumber" name="914" href="#914">914</a> 
<a class="jxr_linenumber" name="915" href="#915">915</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="916" href="#916">916</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getKnownContentConsumers().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="917" href="#917">917</a>                 {
<a class="jxr_linenumber" name="918" href="#918">918</a>                     String name = <span class="jxr_string">"knownContentConsumers.knownContentConsumer("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="919" href="#919">919</a>                     String knownContentConsumer = ( String ) iter.next();
<a class="jxr_linenumber" name="920" href="#920">920</a>                     registry.setString( prefix + name, knownContentConsumer );
<a class="jxr_linenumber" name="921" href="#921">921</a>                 }
<a class="jxr_linenumber" name="922" href="#922">922</a>             }
<a class="jxr_linenumber" name="923" href="#923">923</a>             <strong class="jxr_keyword">if</strong> ( value.getInvalidContentConsumers() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getInvalidContentConsumers().size() &gt; 0
<a class="jxr_linenumber" name="924" href="#924">924</a>  )
<a class="jxr_linenumber" name="925" href="#925">925</a>             {
<a class="jxr_linenumber" name="926" href="#926">926</a>                 registry.removeSubset( prefix + <span class="jxr_string">"invalidContentConsumers"</span> );
<a class="jxr_linenumber" name="927" href="#927">927</a> 
<a class="jxr_linenumber" name="928" href="#928">928</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="929" href="#929">929</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getInvalidContentConsumers().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="930" href="#930">930</a>                 {
<a class="jxr_linenumber" name="931" href="#931">931</a>                     String name = <span class="jxr_string">"invalidContentConsumers.invalidContentConsumer("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="932" href="#932">932</a>                     String invalidContentConsumer = ( String ) iter.next();
<a class="jxr_linenumber" name="933" href="#933">933</a>                     registry.setString( prefix + name, invalidContentConsumer );
<a class="jxr_linenumber" name="934" href="#934">934</a>                 }
<a class="jxr_linenumber" name="935" href="#935">935</a>             }
<a class="jxr_linenumber" name="936" href="#936">936</a>         }
<a class="jxr_linenumber" name="937" href="#937">937</a>     }
<a class="jxr_linenumber" name="938" href="#938">938</a>     
<a class="jxr_linenumber" name="939" href="#939">939</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeFileType( String prefix, FileType value, Registry registry )
<a class="jxr_linenumber" name="940" href="#940">940</a>     {
<a class="jxr_linenumber" name="941" href="#941">941</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="942" href="#942">942</a>         {
<a class="jxr_linenumber" name="943" href="#943">943</a>                   <strong class="jxr_keyword">if</strong> ( value.getId() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="944" href="#944">944</a>  )
<a class="jxr_linenumber" name="945" href="#945">945</a>             {
<a class="jxr_linenumber" name="946" href="#946">946</a>                       String id = <span class="jxr_string">"id"</span>;
<a class="jxr_linenumber" name="947" href="#947">947</a>                 registry.setString( prefix + id, value.getId() );
<a class="jxr_linenumber" name="948" href="#948">948</a>                   }
<a class="jxr_linenumber" name="949" href="#949">949</a>                   <strong class="jxr_keyword">if</strong> ( value.getPatterns() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getPatterns().size() &gt; 0
<a class="jxr_linenumber" name="950" href="#950">950</a>  )
<a class="jxr_linenumber" name="951" href="#951">951</a>             {
<a class="jxr_linenumber" name="952" href="#952">952</a>                 registry.removeSubset( prefix + <span class="jxr_string">"patterns"</span> );
<a class="jxr_linenumber" name="953" href="#953">953</a> 
<a class="jxr_linenumber" name="954" href="#954">954</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="955" href="#955">955</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getPatterns().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="956" href="#956">956</a>                 {
<a class="jxr_linenumber" name="957" href="#957">957</a>                     String name = <span class="jxr_string">"patterns.pattern("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="958" href="#958">958</a>                     String pattern = ( String ) iter.next();
<a class="jxr_linenumber" name="959" href="#959">959</a>                     registry.setString( prefix + name, pattern );
<a class="jxr_linenumber" name="960" href="#960">960</a>                 }
<a class="jxr_linenumber" name="961" href="#961">961</a>             }
<a class="jxr_linenumber" name="962" href="#962">962</a>         }
<a class="jxr_linenumber" name="963" href="#963">963</a>     }
<a class="jxr_linenumber" name="964" href="#964">964</a>     
<a class="jxr_linenumber" name="965" href="#965">965</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeOrganisationInformation( String prefix, OrganisationInformation value, Registry registry )
<a class="jxr_linenumber" name="966" href="#966">966</a>     {
<a class="jxr_linenumber" name="967" href="#967">967</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="968" href="#968">968</a>         {
<a class="jxr_linenumber" name="969" href="#969">969</a>                   <strong class="jxr_keyword">if</strong> ( value.getName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="970" href="#970">970</a>  )
<a class="jxr_linenumber" name="971" href="#971">971</a>             {
<a class="jxr_linenumber" name="972" href="#972">972</a>                       String name = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="973" href="#973">973</a>                 registry.setString( prefix + name, value.getName() );
<a class="jxr_linenumber" name="974" href="#974">974</a>                   }
<a class="jxr_linenumber" name="975" href="#975">975</a>                         <strong class="jxr_keyword">if</strong> ( value.getUrl() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="976" href="#976">976</a>  )
<a class="jxr_linenumber" name="977" href="#977">977</a>             {
<a class="jxr_linenumber" name="978" href="#978">978</a>                       String url = <span class="jxr_string">"url"</span>;
<a class="jxr_linenumber" name="979" href="#979">979</a>                 registry.setString( prefix + url, value.getUrl() );
<a class="jxr_linenumber" name="980" href="#980">980</a>                   }
<a class="jxr_linenumber" name="981" href="#981">981</a>                         <strong class="jxr_keyword">if</strong> ( value.getLogoLocation() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="982" href="#982">982</a>  )
<a class="jxr_linenumber" name="983" href="#983">983</a>             {
<a class="jxr_linenumber" name="984" href="#984">984</a>                       String logoLocation = <span class="jxr_string">"logoLocation"</span>;
<a class="jxr_linenumber" name="985" href="#985">985</a>                 registry.setString( prefix + logoLocation, value.getLogoLocation() );
<a class="jxr_linenumber" name="986" href="#986">986</a>                   }
<a class="jxr_linenumber" name="987" href="#987">987</a>               }
<a class="jxr_linenumber" name="988" href="#988">988</a>     }
<a class="jxr_linenumber" name="989" href="#989">989</a>     
<a class="jxr_linenumber" name="990" href="#990">990</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeWebappConfiguration( String prefix, WebappConfiguration value, Registry registry )
<a class="jxr_linenumber" name="991" href="#991">991</a>     {
<a class="jxr_linenumber" name="992" href="#992">992</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="993" href="#993">993</a>         {
<a class="jxr_linenumber" name="994" href="#994">994</a>             <strong class="jxr_keyword">if</strong> ( value.getUi() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="995" href="#995">995</a>  )
<a class="jxr_linenumber" name="996" href="#996">996</a>             {
<a class="jxr_linenumber" name="997" href="#997">997</a>                 writeUserInterfaceOptions( prefix + <span class="jxr_string">"ui."</span>, value.getUi(), registry );
<a class="jxr_linenumber" name="998" href="#998">998</a>             }
<a class="jxr_linenumber" name="999" href="#999">999</a>         }
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>     }
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>     
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeUserInterfaceOptions( String prefix, UserInterfaceOptions value, Registry registry )
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>     {
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>         {
<a class="jxr_linenumber" name="1006" href="#1006">1006</a>                       String showFindArtifacts = <span class="jxr_string">"showFindArtifacts"</span>;
<a class="jxr_linenumber" name="1007" href="#1007">1007</a>                 registry.setBoolean( prefix + showFindArtifacts, value.isShowFindArtifacts() );
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>                             String appletFindEnabled = <span class="jxr_string">"appletFindEnabled"</span>;
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>                 registry.setBoolean( prefix + appletFindEnabled, value.isAppletFindEnabled() );
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>                             String disableEasterEggs = <span class="jxr_string">"disableEasterEggs"</span>;
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>                 registry.setBoolean( prefix + disableEasterEggs, value.isDisableEasterEggs() );
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>                         <strong class="jxr_keyword">if</strong> ( value.getApplicationUrl() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>  )
<a class="jxr_linenumber" name="1014" href="#1014">1014</a>             {
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>                       String applicationUrl = <span class="jxr_string">"applicationUrl"</span>;
<a class="jxr_linenumber" name="1016" href="#1016">1016</a>                 registry.setString( prefix + applicationUrl, value.getApplicationUrl() );
<a class="jxr_linenumber" name="1017" href="#1017">1017</a>                   }
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>                             String disableRegistration = <span class="jxr_string">"disableRegistration"</span>;
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>                 registry.setBoolean( prefix + disableRegistration, value.isDisableRegistration() );
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>               }
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>     }
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>     
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeNetworkConfiguration( String prefix, NetworkConfiguration value, Registry registry )
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>     {
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>         {
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>                   <strong class="jxr_keyword">if</strong> ( value.getMaxTotal() != 30
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>  )
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>             {
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>                       String maxTotal = <span class="jxr_string">"maxTotal"</span>;
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>                 registry.setInt( prefix + maxTotal, value.getMaxTotal() );
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>                   }
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>                         <strong class="jxr_keyword">if</strong> ( value.getMaxTotalPerHost() != 30
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>  )
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>             {
<a class="jxr_linenumber" name="1036" href="#1036">1036</a>                       String maxTotalPerHost = <span class="jxr_string">"maxTotalPerHost"</span>;
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>                 registry.setInt( prefix + maxTotalPerHost, value.getMaxTotalPerHost() );
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>                   }
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>                             String usePooling = <span class="jxr_string">"usePooling"</span>;
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>                 registry.setBoolean( prefix + usePooling, value.isUsePooling() );
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>               }
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>     }
<a class="jxr_linenumber" name="1043" href="#1043">1043</a>     
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeArchivaRuntimeConfiguration( String prefix, ArchivaRuntimeConfiguration value, Registry registry )
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>     {
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>         {
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">if</strong> ( value.getUrlFailureCacheConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>  )
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>             {
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>                 writeCacheConfiguration( prefix + <span class="jxr_string">"urlFailureCacheConfiguration."</span>, value.getUrlFailureCacheConfiguration(), registry );
<a class="jxr_linenumber" name="1052" href="#1052">1052</a>             }
<a class="jxr_linenumber" name="1053" href="#1053">1053</a>         }
<a class="jxr_linenumber" name="1054" href="#1054">1054</a>     }
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>     
<a class="jxr_linenumber" name="1056" href="#1056">1056</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeRedbackRuntimeConfiguration( String prefix, RedbackRuntimeConfiguration value, Registry registry )
<a class="jxr_linenumber" name="1057" href="#1057">1057</a>     {
<a class="jxr_linenumber" name="1058" href="#1058">1058</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>         {
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>                       String migratedFromRedbackConfiguration = <span class="jxr_string">"migratedFromRedbackConfiguration"</span>;
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>                 registry.setBoolean( prefix + migratedFromRedbackConfiguration, value.isMigratedFromRedbackConfiguration() );
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>                   <strong class="jxr_keyword">if</strong> ( value.getUserManagerImpls() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getUserManagerImpls().size() &gt; 0
<a class="jxr_linenumber" name="1063" href="#1063">1063</a>  )
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>             {
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>                 registry.removeSubset( prefix + <span class="jxr_string">"userManagerImpls"</span> );
<a class="jxr_linenumber" name="1066" href="#1066">1066</a> 
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getUserManagerImpls().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>                 {
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>                     String name = <span class="jxr_string">"userManagerImpls.userManagerImpl("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>                     String userManagerImpl = ( String ) iter.next();
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>                     registry.setString( prefix + name, userManagerImpl );
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>                 }
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>             }
<a class="jxr_linenumber" name="1075" href="#1075">1075</a>             <strong class="jxr_keyword">if</strong> ( value.getRbacManagerImpls() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRbacManagerImpls().size() &gt; 0
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>  )
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>             {
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>                 registry.removeSubset( prefix + <span class="jxr_string">"rbacManagerImpls"</span> );
<a class="jxr_linenumber" name="1079" href="#1079">1079</a> 
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRbacManagerImpls().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>                 {
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>                     String name = <span class="jxr_string">"rbacManagerImpls.rbacManagerImpl("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="1084" href="#1084">1084</a>                     String rbacManagerImpl = ( String ) iter.next();
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>                     registry.setString( prefix + name, rbacManagerImpl );
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>                 }
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>             }
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>             <strong class="jxr_keyword">if</strong> ( value.getLdapConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>  )
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>             {
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>                 writeLdapConfiguration( prefix + <span class="jxr_string">"ldapConfiguration."</span>, value.getLdapConfiguration(), registry );
<a class="jxr_linenumber" name="1092" href="#1092">1092</a>             }
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>             <strong class="jxr_keyword">if</strong> ( value.getLdapGroupMappings() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getLdapGroupMappings().size() &gt; 0
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>  )
<a class="jxr_linenumber" name="1095" href="#1095">1095</a>             {
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>                 registry.removeSubset( prefix + <span class="jxr_string">"ldapGroupMappings"</span> );
<a class="jxr_linenumber" name="1097" href="#1097">1097</a> 
<a class="jxr_linenumber" name="1098" href="#1098">1098</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getLdapGroupMappings().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="1100" href="#1100">1100</a>                 {
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>                     String name = <span class="jxr_string">"ldapGroupMappings.ldapGroupMapping("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>                     <a href="../../../../../../org/apache/archiva/configuration/LdapGroupMapping.html">LdapGroupMapping</a> o = ( LdapGroupMapping ) iter.next();
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>                     writeLdapGroupMapping( prefix + name + <span class="jxr_string">"."</span>, o, registry );
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>                 }
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>             }
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>             <strong class="jxr_keyword">if</strong> ( value.getConfigurationProperties() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getConfigurationProperties().size() &gt; 0
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>  )
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>             {
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>                 registry.removeSubset( prefix + <span class="jxr_string">"configurationProperties"</span> );
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>                 
<a class="jxr_linenumber" name="1111" href="#1111">1111</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getConfigurationProperties().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="1112" href="#1112">1112</a>                 {
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>                     String v = (String) value.getConfigurationProperties().get( key );
<a class="jxr_linenumber" name="1115" href="#1115">1115</a> 
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>                     registry.setString( prefix + <span class="jxr_string">"configurationProperties."</span> + key, v );
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>                 }
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>             }
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>                       String useUsersCache = <span class="jxr_string">"useUsersCache"</span>;
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>                 registry.setBoolean( prefix + useUsersCache, value.isUseUsersCache() );
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>                   <strong class="jxr_keyword">if</strong> ( value.getUsersCacheConfiguration() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>  )
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>             {
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>                 writeCacheConfiguration( prefix + <span class="jxr_string">"usersCacheConfiguration."</span>, value.getUsersCacheConfiguration(), registry );
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>             }
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>         }
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>     }
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>     
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeLdapConfiguration( String prefix, LdapConfiguration value, Registry registry )
<a class="jxr_linenumber" name="1130" href="#1130">1130</a>     {
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>         {
<a class="jxr_linenumber" name="1133" href="#1133">1133</a>                   <strong class="jxr_keyword">if</strong> ( value.getHostName() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>  )
<a class="jxr_linenumber" name="1135" href="#1135">1135</a>             {
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>                       String hostName = <span class="jxr_string">"hostName"</span>;
<a class="jxr_linenumber" name="1137" href="#1137">1137</a>                 registry.setString( prefix + hostName, value.getHostName() );
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>                   }
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>                         <strong class="jxr_keyword">if</strong> ( value.getPort() != 0
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>  )
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>             {
<a class="jxr_linenumber" name="1142" href="#1142">1142</a>                       String port = <span class="jxr_string">"port"</span>;
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>                 registry.setInt( prefix + port, value.getPort() );
<a class="jxr_linenumber" name="1144" href="#1144">1144</a>                   }
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>                             String ssl = <span class="jxr_string">"ssl"</span>;
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>                 registry.setBoolean( prefix + ssl, value.isSsl() );
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>                         <strong class="jxr_keyword">if</strong> ( value.getBaseDn() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>  )
<a class="jxr_linenumber" name="1149" href="#1149">1149</a>             {
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>                       String baseDn = <span class="jxr_string">"baseDn"</span>;
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>                 registry.setString( prefix + baseDn, value.getBaseDn() );
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>                   }
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                         <strong class="jxr_keyword">if</strong> ( value.getBaseGroupsDn() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>  )
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>             {
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>                       String baseGroupsDn = <span class="jxr_string">"baseGroupsDn"</span>;
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>                 registry.setString( prefix + baseGroupsDn, value.getBaseGroupsDn() );
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>                   }
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>                         <strong class="jxr_keyword">if</strong> ( value.getContextFactory() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>  )
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>             {
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>                       String contextFactory = <span class="jxr_string">"contextFactory"</span>;
<a class="jxr_linenumber" name="1163" href="#1163">1163</a>                 registry.setString( prefix + contextFactory, value.getContextFactory() );
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>                   }
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>                         <strong class="jxr_keyword">if</strong> ( value.getBindDn() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>  )
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>             {
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>                       String bindDn = <span class="jxr_string">"bindDn"</span>;
<a class="jxr_linenumber" name="1169" href="#1169">1169</a>                 registry.setString( prefix + bindDn, value.getBindDn() );
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>                   }
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>                         <strong class="jxr_keyword">if</strong> ( value.getPassword() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>  )
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>             {
<a class="jxr_linenumber" name="1174" href="#1174">1174</a>                       String password = <span class="jxr_string">"password"</span>;
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>                 registry.setString( prefix + password, value.getPassword() );
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>                   }
<a class="jxr_linenumber" name="1177" href="#1177">1177</a>                         <strong class="jxr_keyword">if</strong> ( value.getAuthenticationMethod() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1178" href="#1178">1178</a>  )
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>             {
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>                       String authenticationMethod = <span class="jxr_string">"authenticationMethod"</span>;
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>                 registry.setString( prefix + authenticationMethod, value.getAuthenticationMethod() );
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>                   }
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>                             String bindAuthenticatorEnabled = <span class="jxr_string">"bindAuthenticatorEnabled"</span>;
<a class="jxr_linenumber" name="1184" href="#1184">1184</a>                 registry.setBoolean( prefix + bindAuthenticatorEnabled, value.isBindAuthenticatorEnabled() );
<a class="jxr_linenumber" name="1185" href="#1185">1185</a>                             String writable = <span class="jxr_string">"writable"</span>;
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>                 registry.setBoolean( prefix + writable, value.isWritable() );
<a class="jxr_linenumber" name="1187" href="#1187">1187</a>                             String useRoleNameAsGroup = <span class="jxr_string">"useRoleNameAsGroup"</span>;
<a class="jxr_linenumber" name="1188" href="#1188">1188</a>                 registry.setBoolean( prefix + useRoleNameAsGroup, value.isUseRoleNameAsGroup() );
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>                   <strong class="jxr_keyword">if</strong> ( value.getExtraProperties() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getExtraProperties().size() &gt; 0
<a class="jxr_linenumber" name="1190" href="#1190">1190</a>  )
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>             {
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>                 registry.removeSubset( prefix + <span class="jxr_string">"extraProperties"</span> );
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>                 
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getExtraProperties().keySet().iterator(); iter.hasNext(); )
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>                 {
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>                     String key = (String) iter.next();
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>                     String v = (String) value.getExtraProperties().get( key );
<a class="jxr_linenumber" name="1198" href="#1198">1198</a> 
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>                     registry.setString( prefix + <span class="jxr_string">"extraProperties."</span> + key, v );
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>                 }
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>             }
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>         }
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>     }
<a class="jxr_linenumber" name="1204" href="#1204">1204</a>     
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeCacheConfiguration( String prefix, CacheConfiguration value, Registry registry )
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>     {
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1208" href="#1208">1208</a>         {
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>                   <strong class="jxr_keyword">if</strong> ( value.getTimeToIdleSeconds() != -1
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>  )
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>             {
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>                       String timeToIdleSeconds = <span class="jxr_string">"timeToIdleSeconds"</span>;
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>                 registry.setInt( prefix + timeToIdleSeconds, value.getTimeToIdleSeconds() );
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>                   }
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                         <strong class="jxr_keyword">if</strong> ( value.getTimeToLiveSeconds() != -1
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>  )
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>             {
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>                       String timeToLiveSeconds = <span class="jxr_string">"timeToLiveSeconds"</span>;
<a class="jxr_linenumber" name="1219" href="#1219">1219</a>                 registry.setInt( prefix + timeToLiveSeconds, value.getTimeToLiveSeconds() );
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>                   }
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>                         <strong class="jxr_keyword">if</strong> ( value.getMaxElementsInMemory() != -1
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>  )
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>             {
<a class="jxr_linenumber" name="1224" href="#1224">1224</a>                       String maxElementsInMemory = <span class="jxr_string">"maxElementsInMemory"</span>;
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>                 registry.setInt( prefix + maxElementsInMemory, value.getMaxElementsInMemory() );
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>                   }
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>                         <strong class="jxr_keyword">if</strong> ( value.getMaxElementsOnDisk() != -1
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>  )
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>             {
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>                       String maxElementsOnDisk = <span class="jxr_string">"maxElementsOnDisk"</span>;
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>                 registry.setInt( prefix + maxElementsOnDisk, value.getMaxElementsOnDisk() );
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>                   }
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>               }
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>     }
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>     
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeLdapGroupMapping( String prefix, LdapGroupMapping value, Registry registry )
<a class="jxr_linenumber" name="1237" href="#1237">1237</a>     {
<a class="jxr_linenumber" name="1238" href="#1238">1238</a>         <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="1239" href="#1239">1239</a>         {
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>                   <strong class="jxr_keyword">if</strong> ( value.getGroup() != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="1241" href="#1241">1241</a>  )
<a class="jxr_linenumber" name="1242" href="#1242">1242</a>             {
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>                       String group = <span class="jxr_string">"group"</span>;
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>                 registry.setString( prefix + group, value.getGroup() );
<a class="jxr_linenumber" name="1245" href="#1245">1245</a>                   }
<a class="jxr_linenumber" name="1246" href="#1246">1246</a>                   <strong class="jxr_keyword">if</strong> ( value.getRoleNames() != <strong class="jxr_keyword">null</strong> &amp;&amp; value.getRoleNames().size() &gt; 0
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>  )
<a class="jxr_linenumber" name="1248" href="#1248">1248</a>             {
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>                 registry.removeSubset( prefix + <span class="jxr_string">"roleNames"</span> );
<a class="jxr_linenumber" name="1250" href="#1250">1250</a> 
<a class="jxr_linenumber" name="1251" href="#1251">1251</a>                 <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>                 <strong class="jxr_keyword">for</strong> ( Iterator iter = value.getRoleNames().iterator(); iter.hasNext(); count++ )
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>                 {
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>                     String name = <span class="jxr_string">"roleNames.roleName("</span> + count + <span class="jxr_string">")"</span>;
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>                     String roleName = ( String ) iter.next();
<a class="jxr_linenumber" name="1256" href="#1256">1256</a>                     registry.setString( prefix + name, roleName );
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>                 }
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>             }
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>         }
<a class="jxr_linenumber" name="1260" href="#1260">1260</a>     }
<a class="jxr_linenumber" name="1261" href="#1261">1261</a>     
<a class="jxr_linenumber" name="1262" href="#1262">1262</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
