<!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>MavenJDOMWriter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/felix/bundleplugin/pom/MavenJDOMWriter.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin.pom;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ActivationFile;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ActivationOS;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ActivationProperty;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Build;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.BuildBase;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.CiManagement;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ConfigurationContainer;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Contributor;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Dependency;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.DependencyManagement;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.DeploymentRepository;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Developer;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.DistributionManagement;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Exclusion;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Extension;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.FileSet;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.IssueManagement;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.MailingList;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ModelBase;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Notifier;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Organization;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Parent;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.PatternSet;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Plugin;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.PluginConfiguration;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.PluginContainer;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.PluginExecution;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.PluginManagement;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Prerequisites;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Profile;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Relocation;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ReportPlugin;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.ReportSet;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Reporting;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Repository;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.RepositoryBase;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.RepositoryPolicy;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Scm;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Site;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.xml.Xpp3Dom;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.jdom.Content;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.jdom.DefaultJDOMFactory;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.jdom.Document;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.jdom.Element;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.jdom.Text;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> org.jdom.output.Format;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> org.jdom.output.XMLOutputter;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStreamWriter;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <em class="jxr_javadoccomment"> * Class MavenJDOMWriter.</em>
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <em class="jxr_javadoccomment"> * @version $Revision$ $Date$</em>
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/MavenJDOMWriter.html">MavenJDOMWriter</a>
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  {
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment">     * Field factory</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>      <strong class="jxr_keyword">private</strong> DefaultJDOMFactory factory;
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">     * Field lineSeparator</em>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L98" href="#L98">98</a>      <strong class="jxr_keyword">private</strong> String lineSeparator;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/MavenJDOMWriter.html">MavenJDOMWriter</a>()
<a class="jxr_linenumber" name="L101" href="#L101">101</a>     {
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         factory = <strong class="jxr_keyword">new</strong> DefaultJDOMFactory();
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         lineSeparator = <span class="jxr_string">"\n"</span>;
<a class="jxr_linenumber" name="L104" href="#L104">104</a>     } <em class="jxr_comment">// -- org.apache.maven.model.io.jdom.MavenJDOMWriter()</em>
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment">     * Method findAndReplaceProperties</em>
<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment">     * @param props</em>
<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment">     * @param name</em>
<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L114" href="#L114">114</a>     <strong class="jxr_keyword">protected</strong> Element findAndReplaceProperties( Counter counter, Element parent, String name, Map props )
<a class="jxr_linenumber" name="L115" href="#L115">115</a>     {
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = props != <strong class="jxr_keyword">null</strong> &amp;&amp; !props.isEmpty();
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         Element element = updateElement( counter, parent, name, shouldExist );
<a class="jxr_linenumber" name="L118" href="#L118">118</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L119" href="#L119">119</a>         {
<a class="jxr_linenumber" name="L120" href="#L120">120</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCounter = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L121" href="#L121">121</a>             <em class="jxr_comment">// while ( it.hasNext() )</em>
<a class="jxr_linenumber" name="L122" href="#L122">122</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; entry : ( (Map&lt;String, String&gt;) props ).entrySet() )
<a class="jxr_linenumber" name="L123" href="#L123">123</a>             {
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                 String key = entry.getKey();
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                 findAndReplaceSimpleElement( innerCounter, element, key, entry.getValue(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             }
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             List lst = <strong class="jxr_keyword">new</strong> ArrayList( props.keySet() );
<a class="jxr_linenumber" name="L128" href="#L128">128</a>             Iterator it = element.getChildren().iterator();
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L130" href="#L130">130</a>             {
<a class="jxr_linenumber" name="L131" href="#L131">131</a>                 Element elem = (Element) it.next();
<a class="jxr_linenumber" name="L132" href="#L132">132</a>                 String key = elem.getName();
<a class="jxr_linenumber" name="L133" href="#L133">133</a>                 <strong class="jxr_keyword">if</strong> ( !lst.contains( key ) )
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 {
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                     it.remove();
<a class="jxr_linenumber" name="L136" href="#L136">136</a>                 }
<a class="jxr_linenumber" name="L137" href="#L137">137</a>             }
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         }
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L140" href="#L140">140</a>     } <em class="jxr_comment">// -- Element findAndReplaceProperties(Counter, Element, String, Map)</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">     * Method findAndReplaceSimpleElement</em>
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment">     * @param defaultValue</em>
<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment">     * @param text</em>
<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment">     * @param name</em>
<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L151" href="#L151">151</a>     <strong class="jxr_keyword">protected</strong> Element findAndReplaceSimpleElement( Counter counter, Element parent, String name, String text,
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                                                    String defaultValue )
<a class="jxr_linenumber" name="L153" href="#L153">153</a>     {
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         <strong class="jxr_keyword">if</strong> ( defaultValue != <strong class="jxr_keyword">null</strong> &amp;&amp; text != <strong class="jxr_keyword">null</strong> &amp;&amp; defaultValue.equals( text ) )
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         {
<a class="jxr_linenumber" name="L156" href="#L156">156</a>             Element element = parent.getChild( name, parent.getNamespace() );
<a class="jxr_linenumber" name="L157" href="#L157">157</a>             <em class="jxr_comment">// if exist and is default value or if doesn't exist.. just keep the way it is..</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>             <strong class="jxr_keyword">if</strong> ( ( element != <strong class="jxr_keyword">null</strong> &amp;&amp; defaultValue.equals( element.getText() ) ) || element == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L159" href="#L159">159</a>             {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>                 <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L161" href="#L161">161</a>             }
<a class="jxr_linenumber" name="L162" href="#L162">162</a>         }
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = text != <strong class="jxr_keyword">null</strong> &amp;&amp; text.trim().length() &gt; 0;
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         Element element = updateElement( counter, parent, name, shouldExist );
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         {
<a class="jxr_linenumber" name="L167" href="#L167">167</a>             element.setText( text );
<a class="jxr_linenumber" name="L168" href="#L168">168</a>         }
<a class="jxr_linenumber" name="L169" href="#L169">169</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     } <em class="jxr_comment">// -- Element findAndReplaceSimpleElement(Counter, Element, String, String, String)</em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">     * Method findAndReplaceSimpleLists</em>
<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">     * @param childName</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">     * @param parentName</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a>     <strong class="jxr_keyword">protected</strong> Element findAndReplaceSimpleLists( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L182" href="#L182">182</a>                                                  String parentName, String childName )
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         Element element = updateElement( counter, parent, parentName, shouldExist );
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L187" href="#L187">187</a>         {
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             Iterator elIt = element.getChildren( childName, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L190" href="#L190">190</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             {
<a class="jxr_linenumber" name="L192" href="#L192">192</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L193" href="#L193">193</a>             }
<a class="jxr_linenumber" name="L194" href="#L194">194</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L195" href="#L195">195</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L196" href="#L196">196</a>             {
<a class="jxr_linenumber" name="L197" href="#L197">197</a>                 String value = (String) it.next();
<a class="jxr_linenumber" name="L198" href="#L198">198</a>                 Element el;
<a class="jxr_linenumber" name="L199" href="#L199">199</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L200" href="#L200">200</a>                 {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L202" href="#L202">202</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L203" href="#L203">203</a>                     {
<a class="jxr_linenumber" name="L204" href="#L204">204</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L205" href="#L205">205</a>                     }
<a class="jxr_linenumber" name="L206" href="#L206">206</a>                 }
<a class="jxr_linenumber" name="L207" href="#L207">207</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L208" href="#L208">208</a>                 {
<a class="jxr_linenumber" name="L209" href="#L209">209</a>                     el = factory.element( childName, element.getNamespace() );
<a class="jxr_linenumber" name="L210" href="#L210">210</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L211" href="#L211">211</a>                 }
<a class="jxr_linenumber" name="L212" href="#L212">212</a>                 el.setText( value );
<a class="jxr_linenumber" name="L213" href="#L213">213</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L214" href="#L214">214</a>             }
<a class="jxr_linenumber" name="L215" href="#L215">215</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L216" href="#L216">216</a>             {
<a class="jxr_linenumber" name="L217" href="#L217">217</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L218" href="#L218">218</a>                 {
<a class="jxr_linenumber" name="L219" href="#L219">219</a>                     elIt.next();
<a class="jxr_linenumber" name="L220" href="#L220">220</a>                     elIt.remove();
<a class="jxr_linenumber" name="L221" href="#L221">221</a>                 }
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             }
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         }
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     } <em class="jxr_comment">// -- Element findAndReplaceSimpleLists(Counter, Element, java.util.Collection, String, String)</em>
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 
<a class="jxr_linenumber" name="L227" href="#L227">227</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L228" href="#L228">228</a> <em class="jxr_javadoccomment">     * Method findAndReplaceXpp3DOM</em>
<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">     * @param dom</em>
<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">     * @param name</em>
<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     <strong class="jxr_keyword">protected</strong> Element findAndReplaceXpp3DOM( Counter counter, Element parent, String name, Xpp3Dom dom )
<a class="jxr_linenumber" name="L236" href="#L236">236</a>     {
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = dom != <strong class="jxr_keyword">null</strong> &amp;&amp; ( dom.getChildCount() &gt; 0 || dom.getValue() != <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         Element element = updateElement( counter, parent, name, shouldExist );
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         {
<a class="jxr_linenumber" name="L241" href="#L241">241</a>             replaceXpp3DOM( element, dom, <strong class="jxr_keyword">new</strong> Counter( counter.getDepth() + 1 ) );
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         }
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     } <em class="jxr_comment">// -- Element findAndReplaceXpp3DOM(Counter, Element, String, Xpp3Dom)</em>
<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">     * Method insertAtPreferredLocation</em>
<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L250" href="#L250">250</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L251" href="#L251">251</a> <em class="jxr_javadoccomment">     * @param child</em>
<a class="jxr_linenumber" name="L252" href="#L252">252</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L253" href="#L253">253</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> insertAtPreferredLocation( Element parent, Element child, Counter counter )
<a class="jxr_linenumber" name="L254" href="#L254">254</a>     {
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         <strong class="jxr_keyword">int</strong> contentIndex = 0;
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         <strong class="jxr_keyword">int</strong> elementCounter = 0;
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         Iterator it = parent.getContent().iterator();
<a class="jxr_linenumber" name="L258" href="#L258">258</a>         Text lastText = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         <strong class="jxr_keyword">int</strong> offset = 0;
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         <strong class="jxr_keyword">while</strong> ( it.hasNext() &amp;&amp; elementCounter &lt;= counter.getCurrentIndex() )
<a class="jxr_linenumber" name="L261" href="#L261">261</a>         {
<a class="jxr_linenumber" name="L262" href="#L262">262</a>             Object next = it.next();
<a class="jxr_linenumber" name="L263" href="#L263">263</a>             offset = offset + 1;
<a class="jxr_linenumber" name="L264" href="#L264">264</a>             <strong class="jxr_keyword">if</strong> ( next instanceof Element )
<a class="jxr_linenumber" name="L265" href="#L265">265</a>             {
<a class="jxr_linenumber" name="L266" href="#L266">266</a>                 elementCounter = elementCounter + 1;
<a class="jxr_linenumber" name="L267" href="#L267">267</a>                 contentIndex = contentIndex + offset;
<a class="jxr_linenumber" name="L268" href="#L268">268</a>                 offset = 0;
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             }
<a class="jxr_linenumber" name="L270" href="#L270">270</a>             <strong class="jxr_keyword">if</strong> ( next instanceof Text &amp;&amp; it.hasNext() )
<a class="jxr_linenumber" name="L271" href="#L271">271</a>             {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>                 lastText = (Text) next;
<a class="jxr_linenumber" name="L273" href="#L273">273</a>             }
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         }
<a class="jxr_linenumber" name="L275" href="#L275">275</a>         <strong class="jxr_keyword">if</strong> ( lastText != <strong class="jxr_keyword">null</strong> &amp;&amp; lastText.getTextTrim().length() == 0 )
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         {
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             lastText = (Text) lastText.clone();
<a class="jxr_linenumber" name="L278" href="#L278">278</a>         }
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L280" href="#L280">280</a>         {
<a class="jxr_linenumber" name="L281" href="#L281">281</a>             String starter = lineSeparator;
<a class="jxr_linenumber" name="L282" href="#L282">282</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; counter.getDepth(); i++ )
<a class="jxr_linenumber" name="L283" href="#L283">283</a>             {
<a class="jxr_linenumber" name="L284" href="#L284">284</a>                 starter = starter + <span class="jxr_string">"    "</span>; <em class="jxr_comment">// TODO make settable?</em>
<a class="jxr_linenumber" name="L285" href="#L285">285</a>             }
<a class="jxr_linenumber" name="L286" href="#L286">286</a>             lastText = factory.text( starter );
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         }
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         <strong class="jxr_keyword">if</strong> ( parent.getContentSize() == 0 )
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         {
<a class="jxr_linenumber" name="L290" href="#L290">290</a>             Text finalText = (Text) lastText.clone();
<a class="jxr_linenumber" name="L291" href="#L291">291</a>             finalText.setText( finalText.getText().substring( 0, finalText.getText().length() - <span class="jxr_string">"    "</span>.length() ) );
<a class="jxr_linenumber" name="L292" href="#L292">292</a>             parent.addContent( contentIndex, finalText );
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         }
<a class="jxr_linenumber" name="L294" href="#L294">294</a>         parent.addContent( contentIndex, child );
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         parent.addContent( contentIndex, lastText );
<a class="jxr_linenumber" name="L296" href="#L296">296</a>     } <em class="jxr_comment">// -- void insertAtPreferredLocation(Element, Element, Counter)</em>
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 
<a class="jxr_linenumber" name="L298" href="#L298">298</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_javadoccomment">     * Method iterateContributor</em>
<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateContributor( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L308" href="#L308">308</a>                                        String parentTag, String childTag )
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     {
<a class="jxr_linenumber" name="L310" href="#L310">310</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L311" href="#L311">311</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L313" href="#L313">313</a>         {
<a class="jxr_linenumber" name="L314" href="#L314">314</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L315" href="#L315">315</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L316" href="#L316">316</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L317" href="#L317">317</a>             {
<a class="jxr_linenumber" name="L318" href="#L318">318</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L319" href="#L319">319</a>             }
<a class="jxr_linenumber" name="L320" href="#L320">320</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L322" href="#L322">322</a>             {
<a class="jxr_linenumber" name="L323" href="#L323">323</a>                 Contributor value = (Contributor) it.next();
<a class="jxr_linenumber" name="L324" href="#L324">324</a>                 Element el;
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L326" href="#L326">326</a>                 {
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L328" href="#L328">328</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L329" href="#L329">329</a>                     {
<a class="jxr_linenumber" name="L330" href="#L330">330</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L331" href="#L331">331</a>                     }
<a class="jxr_linenumber" name="L332" href="#L332">332</a>                 }
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L334" href="#L334">334</a>                 {
<a class="jxr_linenumber" name="L335" href="#L335">335</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L336" href="#L336">336</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L337" href="#L337">337</a>                 }
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                 updateContributor( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L339" href="#L339">339</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L340" href="#L340">340</a>             }
<a class="jxr_linenumber" name="L341" href="#L341">341</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L342" href="#L342">342</a>             {
<a class="jxr_linenumber" name="L343" href="#L343">343</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L344" href="#L344">344</a>                 {
<a class="jxr_linenumber" name="L345" href="#L345">345</a>                     elIt.next();
<a class="jxr_linenumber" name="L346" href="#L346">346</a>                     elIt.remove();
<a class="jxr_linenumber" name="L347" href="#L347">347</a>                 }
<a class="jxr_linenumber" name="L348" href="#L348">348</a>             }
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         }
<a class="jxr_linenumber" name="L350" href="#L350">350</a>     } <em class="jxr_comment">// -- void iterateContributor(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L351" href="#L351">351</a> 
<a class="jxr_linenumber" name="L352" href="#L352">352</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">     * Method iterateDependency</em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L357" href="#L357">357</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L358" href="#L358">358</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L359" href="#L359">359</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L361" href="#L361">361</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateDependency( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L362" href="#L362">362</a>                                       String parentTag, String childTag )
<a class="jxr_linenumber" name="L363" href="#L363">363</a>     {
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L366" href="#L366">366</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         {
<a class="jxr_linenumber" name="L368" href="#L368">368</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L369" href="#L369">369</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L371" href="#L371">371</a>             {
<a class="jxr_linenumber" name="L372" href="#L372">372</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L373" href="#L373">373</a>             }
<a class="jxr_linenumber" name="L374" href="#L374">374</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L375" href="#L375">375</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L376" href="#L376">376</a>             {
<a class="jxr_linenumber" name="L377" href="#L377">377</a>                 Dependency value = (Dependency) it.next();
<a class="jxr_linenumber" name="L378" href="#L378">378</a>                 Element el;
<a class="jxr_linenumber" name="L379" href="#L379">379</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L380" href="#L380">380</a>                 {
<a class="jxr_linenumber" name="L381" href="#L381">381</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L382" href="#L382">382</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L383" href="#L383">383</a>                     {
<a class="jxr_linenumber" name="L384" href="#L384">384</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L385" href="#L385">385</a>                     }
<a class="jxr_linenumber" name="L386" href="#L386">386</a>                 }
<a class="jxr_linenumber" name="L387" href="#L387">387</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L388" href="#L388">388</a>                 {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L390" href="#L390">390</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L391" href="#L391">391</a>                 }
<a class="jxr_linenumber" name="L392" href="#L392">392</a>                 updateDependency( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L393" href="#L393">393</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             }
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L396" href="#L396">396</a>             {
<a class="jxr_linenumber" name="L397" href="#L397">397</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L398" href="#L398">398</a>                 {
<a class="jxr_linenumber" name="L399" href="#L399">399</a>                     elIt.next();
<a class="jxr_linenumber" name="L400" href="#L400">400</a>                     elIt.remove();
<a class="jxr_linenumber" name="L401" href="#L401">401</a>                 }
<a class="jxr_linenumber" name="L402" href="#L402">402</a>             }
<a class="jxr_linenumber" name="L403" href="#L403">403</a>         }
<a class="jxr_linenumber" name="L404" href="#L404">404</a>     } <em class="jxr_comment">// -- void iterateDependency(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 
<a class="jxr_linenumber" name="L406" href="#L406">406</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">     * Method iterateDeveloper</em>
<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L409" href="#L409">409</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L411" href="#L411">411</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L412" href="#L412">412</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L413" href="#L413">413</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L414" href="#L414">414</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateDeveloper( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L416" href="#L416">416</a>                                      String parentTag, String childTag )
<a class="jxr_linenumber" name="L417" href="#L417">417</a>     {
<a class="jxr_linenumber" name="L418" href="#L418">418</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L419" href="#L419">419</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L420" href="#L420">420</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         {
<a class="jxr_linenumber" name="L422" href="#L422">422</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L424" href="#L424">424</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L425" href="#L425">425</a>             {
<a class="jxr_linenumber" name="L426" href="#L426">426</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L427" href="#L427">427</a>             }
<a class="jxr_linenumber" name="L428" href="#L428">428</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L429" href="#L429">429</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             {
<a class="jxr_linenumber" name="L431" href="#L431">431</a>                 Developer value = (Developer) it.next();
<a class="jxr_linenumber" name="L432" href="#L432">432</a>                 Element el;
<a class="jxr_linenumber" name="L433" href="#L433">433</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L434" href="#L434">434</a>                 {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L436" href="#L436">436</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L437" href="#L437">437</a>                     {
<a class="jxr_linenumber" name="L438" href="#L438">438</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L439" href="#L439">439</a>                     }
<a class="jxr_linenumber" name="L440" href="#L440">440</a>                 }
<a class="jxr_linenumber" name="L441" href="#L441">441</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L442" href="#L442">442</a>                 {
<a class="jxr_linenumber" name="L443" href="#L443">443</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L444" href="#L444">444</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L445" href="#L445">445</a>                 }
<a class="jxr_linenumber" name="L446" href="#L446">446</a>                 updateDeveloper( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L447" href="#L447">447</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L448" href="#L448">448</a>             }
<a class="jxr_linenumber" name="L449" href="#L449">449</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L450" href="#L450">450</a>             {
<a class="jxr_linenumber" name="L451" href="#L451">451</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L452" href="#L452">452</a>                 {
<a class="jxr_linenumber" name="L453" href="#L453">453</a>                     elIt.next();
<a class="jxr_linenumber" name="L454" href="#L454">454</a>                     elIt.remove();
<a class="jxr_linenumber" name="L455" href="#L455">455</a>                 }
<a class="jxr_linenumber" name="L456" href="#L456">456</a>             }
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         }
<a class="jxr_linenumber" name="L458" href="#L458">458</a>     } <em class="jxr_comment">// -- void iterateDeveloper(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L461" href="#L461">461</a> <em class="jxr_javadoccomment">     * Method iterateExclusion</em>
<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L463" href="#L463">463</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L464" href="#L464">464</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L465" href="#L465">465</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L466" href="#L466">466</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L469" href="#L469">469</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateExclusion( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L470" href="#L470">470</a>                                      String parentTag, String childTag )
<a class="jxr_linenumber" name="L471" href="#L471">471</a>     {
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L474" href="#L474">474</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         {
<a class="jxr_linenumber" name="L476" href="#L476">476</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L477" href="#L477">477</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L478" href="#L478">478</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L479" href="#L479">479</a>             {
<a class="jxr_linenumber" name="L480" href="#L480">480</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L481" href="#L481">481</a>             }
<a class="jxr_linenumber" name="L482" href="#L482">482</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L483" href="#L483">483</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L484" href="#L484">484</a>             {
<a class="jxr_linenumber" name="L485" href="#L485">485</a>                 Exclusion value = (Exclusion) it.next();
<a class="jxr_linenumber" name="L486" href="#L486">486</a>                 Element el;
<a class="jxr_linenumber" name="L487" href="#L487">487</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L488" href="#L488">488</a>                 {
<a class="jxr_linenumber" name="L489" href="#L489">489</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L490" href="#L490">490</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L491" href="#L491">491</a>                     {
<a class="jxr_linenumber" name="L492" href="#L492">492</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L493" href="#L493">493</a>                     }
<a class="jxr_linenumber" name="L494" href="#L494">494</a>                 }
<a class="jxr_linenumber" name="L495" href="#L495">495</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L496" href="#L496">496</a>                 {
<a class="jxr_linenumber" name="L497" href="#L497">497</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L498" href="#L498">498</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L499" href="#L499">499</a>                 }
<a class="jxr_linenumber" name="L500" href="#L500">500</a>                 updateExclusion( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L501" href="#L501">501</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L502" href="#L502">502</a>             }
<a class="jxr_linenumber" name="L503" href="#L503">503</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L504" href="#L504">504</a>             {
<a class="jxr_linenumber" name="L505" href="#L505">505</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L506" href="#L506">506</a>                 {
<a class="jxr_linenumber" name="L507" href="#L507">507</a>                     elIt.next();
<a class="jxr_linenumber" name="L508" href="#L508">508</a>                     elIt.remove();
<a class="jxr_linenumber" name="L509" href="#L509">509</a>                 }
<a class="jxr_linenumber" name="L510" href="#L510">510</a>             }
<a class="jxr_linenumber" name="L511" href="#L511">511</a>         }
<a class="jxr_linenumber" name="L512" href="#L512">512</a>     } <em class="jxr_comment">// -- void iterateExclusion(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L513" href="#L513">513</a> 
<a class="jxr_linenumber" name="L514" href="#L514">514</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L515" href="#L515">515</a> <em class="jxr_javadoccomment">     * Method iterateExtension</em>
<a class="jxr_linenumber" name="L516" href="#L516">516</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L517" href="#L517">517</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L518" href="#L518">518</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L519" href="#L519">519</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L520" href="#L520">520</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L521" href="#L521">521</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L522" href="#L522">522</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L523" href="#L523">523</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateExtension( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L524" href="#L524">524</a>                                      String parentTag, String childTag )
<a class="jxr_linenumber" name="L525" href="#L525">525</a>     {
<a class="jxr_linenumber" name="L526" href="#L526">526</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L527" href="#L527">527</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L528" href="#L528">528</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L529" href="#L529">529</a>         {
<a class="jxr_linenumber" name="L530" href="#L530">530</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L531" href="#L531">531</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L532" href="#L532">532</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L533" href="#L533">533</a>             {
<a class="jxr_linenumber" name="L534" href="#L534">534</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L535" href="#L535">535</a>             }
<a class="jxr_linenumber" name="L536" href="#L536">536</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L537" href="#L537">537</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L538" href="#L538">538</a>             {
<a class="jxr_linenumber" name="L539" href="#L539">539</a>                 Extension value = (Extension) it.next();
<a class="jxr_linenumber" name="L540" href="#L540">540</a>                 Element el;
<a class="jxr_linenumber" name="L541" href="#L541">541</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L542" href="#L542">542</a>                 {
<a class="jxr_linenumber" name="L543" href="#L543">543</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L544" href="#L544">544</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L545" href="#L545">545</a>                     {
<a class="jxr_linenumber" name="L546" href="#L546">546</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L547" href="#L547">547</a>                     }
<a class="jxr_linenumber" name="L548" href="#L548">548</a>                 }
<a class="jxr_linenumber" name="L549" href="#L549">549</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L550" href="#L550">550</a>                 {
<a class="jxr_linenumber" name="L551" href="#L551">551</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L552" href="#L552">552</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L553" href="#L553">553</a>                 }
<a class="jxr_linenumber" name="L554" href="#L554">554</a>                 updateExtension( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L555" href="#L555">555</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L556" href="#L556">556</a>             }
<a class="jxr_linenumber" name="L557" href="#L557">557</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L558" href="#L558">558</a>             {
<a class="jxr_linenumber" name="L559" href="#L559">559</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L560" href="#L560">560</a>                 {
<a class="jxr_linenumber" name="L561" href="#L561">561</a>                     elIt.next();
<a class="jxr_linenumber" name="L562" href="#L562">562</a>                     elIt.remove();
<a class="jxr_linenumber" name="L563" href="#L563">563</a>                 }
<a class="jxr_linenumber" name="L564" href="#L564">564</a>             }
<a class="jxr_linenumber" name="L565" href="#L565">565</a>         }
<a class="jxr_linenumber" name="L566" href="#L566">566</a>     } <em class="jxr_comment">// -- void iterateExtension(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L569" href="#L569">569</a> <em class="jxr_javadoccomment">     * Method iterateLicense</em>
<a class="jxr_linenumber" name="L570" href="#L570">570</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L571" href="#L571">571</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L572" href="#L572">572</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L573" href="#L573">573</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L574" href="#L574">574</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L575" href="#L575">575</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L576" href="#L576">576</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L577" href="#L577">577</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateLicense( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L578" href="#L578">578</a>                                    String parentTag, String childTag )
<a class="jxr_linenumber" name="L579" href="#L579">579</a>     {
<a class="jxr_linenumber" name="L580" href="#L580">580</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L583" href="#L583">583</a>         {
<a class="jxr_linenumber" name="L584" href="#L584">584</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L585" href="#L585">585</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L586" href="#L586">586</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L587" href="#L587">587</a>             {
<a class="jxr_linenumber" name="L588" href="#L588">588</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L589" href="#L589">589</a>             }
<a class="jxr_linenumber" name="L590" href="#L590">590</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L591" href="#L591">591</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L592" href="#L592">592</a>             {
<a class="jxr_linenumber" name="L593" href="#L593">593</a>                 License value = (License) it.next();
<a class="jxr_linenumber" name="L594" href="#L594">594</a>                 Element el;
<a class="jxr_linenumber" name="L595" href="#L595">595</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L596" href="#L596">596</a>                 {
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L598" href="#L598">598</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L599" href="#L599">599</a>                     {
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L601" href="#L601">601</a>                     }
<a class="jxr_linenumber" name="L602" href="#L602">602</a>                 }
<a class="jxr_linenumber" name="L603" href="#L603">603</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L604" href="#L604">604</a>                 {
<a class="jxr_linenumber" name="L605" href="#L605">605</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L606" href="#L606">606</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L607" href="#L607">607</a>                 }
<a class="jxr_linenumber" name="L608" href="#L608">608</a>                 updateLicense( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L609" href="#L609">609</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L610" href="#L610">610</a>             }
<a class="jxr_linenumber" name="L611" href="#L611">611</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L612" href="#L612">612</a>             {
<a class="jxr_linenumber" name="L613" href="#L613">613</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L614" href="#L614">614</a>                 {
<a class="jxr_linenumber" name="L615" href="#L615">615</a>                     elIt.next();
<a class="jxr_linenumber" name="L616" href="#L616">616</a>                     elIt.remove();
<a class="jxr_linenumber" name="L617" href="#L617">617</a>                 }
<a class="jxr_linenumber" name="L618" href="#L618">618</a>             }
<a class="jxr_linenumber" name="L619" href="#L619">619</a>         }
<a class="jxr_linenumber" name="L620" href="#L620">620</a>     } <em class="jxr_comment">// -- void iterateLicense(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L623" href="#L623">623</a> <em class="jxr_javadoccomment">     * Method iterateMailingList</em>
<a class="jxr_linenumber" name="L624" href="#L624">624</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L625" href="#L625">625</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L626" href="#L626">626</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L627" href="#L627">627</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L628" href="#L628">628</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L629" href="#L629">629</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L630" href="#L630">630</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L631" href="#L631">631</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateMailingList( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L632" href="#L632">632</a>                                        String parentTag, String childTag )
<a class="jxr_linenumber" name="L633" href="#L633">633</a>     {
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L635" href="#L635">635</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L636" href="#L636">636</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         {
<a class="jxr_linenumber" name="L638" href="#L638">638</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L639" href="#L639">639</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L640" href="#L640">640</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L641" href="#L641">641</a>             {
<a class="jxr_linenumber" name="L642" href="#L642">642</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L643" href="#L643">643</a>             }
<a class="jxr_linenumber" name="L644" href="#L644">644</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L645" href="#L645">645</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L646" href="#L646">646</a>             {
<a class="jxr_linenumber" name="L647" href="#L647">647</a>                 MailingList value = (MailingList) it.next();
<a class="jxr_linenumber" name="L648" href="#L648">648</a>                 Element el;
<a class="jxr_linenumber" name="L649" href="#L649">649</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L650" href="#L650">650</a>                 {
<a class="jxr_linenumber" name="L651" href="#L651">651</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L652" href="#L652">652</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L653" href="#L653">653</a>                     {
<a class="jxr_linenumber" name="L654" href="#L654">654</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L655" href="#L655">655</a>                     }
<a class="jxr_linenumber" name="L656" href="#L656">656</a>                 }
<a class="jxr_linenumber" name="L657" href="#L657">657</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L658" href="#L658">658</a>                 {
<a class="jxr_linenumber" name="L659" href="#L659">659</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L660" href="#L660">660</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L661" href="#L661">661</a>                 }
<a class="jxr_linenumber" name="L662" href="#L662">662</a>                 updateMailingList( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L663" href="#L663">663</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L664" href="#L664">664</a>             }
<a class="jxr_linenumber" name="L665" href="#L665">665</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L666" href="#L666">666</a>             {
<a class="jxr_linenumber" name="L667" href="#L667">667</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L668" href="#L668">668</a>                 {
<a class="jxr_linenumber" name="L669" href="#L669">669</a>                     elIt.next();
<a class="jxr_linenumber" name="L670" href="#L670">670</a>                     elIt.remove();
<a class="jxr_linenumber" name="L671" href="#L671">671</a>                 }
<a class="jxr_linenumber" name="L672" href="#L672">672</a>             }
<a class="jxr_linenumber" name="L673" href="#L673">673</a>         }
<a class="jxr_linenumber" name="L674" href="#L674">674</a>     } <em class="jxr_comment">// -- void iterateMailingList(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L675" href="#L675">675</a> 
<a class="jxr_linenumber" name="L676" href="#L676">676</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L677" href="#L677">677</a> <em class="jxr_javadoccomment">     * Method iterateNotifier</em>
<a class="jxr_linenumber" name="L678" href="#L678">678</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L679" href="#L679">679</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L680" href="#L680">680</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L681" href="#L681">681</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L682" href="#L682">682</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L683" href="#L683">683</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L684" href="#L684">684</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L685" href="#L685">685</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateNotifier( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L686" href="#L686">686</a>                                     String parentTag, String childTag )
<a class="jxr_linenumber" name="L687" href="#L687">687</a>     {
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L689" href="#L689">689</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L690" href="#L690">690</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L691" href="#L691">691</a>         {
<a class="jxr_linenumber" name="L692" href="#L692">692</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L693" href="#L693">693</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L694" href="#L694">694</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L695" href="#L695">695</a>             {
<a class="jxr_linenumber" name="L696" href="#L696">696</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L697" href="#L697">697</a>             }
<a class="jxr_linenumber" name="L698" href="#L698">698</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L699" href="#L699">699</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L700" href="#L700">700</a>             {
<a class="jxr_linenumber" name="L701" href="#L701">701</a>                 Notifier value = (Notifier) it.next();
<a class="jxr_linenumber" name="L702" href="#L702">702</a>                 Element el;
<a class="jxr_linenumber" name="L703" href="#L703">703</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L704" href="#L704">704</a>                 {
<a class="jxr_linenumber" name="L705" href="#L705">705</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L706" href="#L706">706</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L707" href="#L707">707</a>                     {
<a class="jxr_linenumber" name="L708" href="#L708">708</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L709" href="#L709">709</a>                     }
<a class="jxr_linenumber" name="L710" href="#L710">710</a>                 }
<a class="jxr_linenumber" name="L711" href="#L711">711</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L712" href="#L712">712</a>                 {
<a class="jxr_linenumber" name="L713" href="#L713">713</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L714" href="#L714">714</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L715" href="#L715">715</a>                 }
<a class="jxr_linenumber" name="L716" href="#L716">716</a>                 updateNotifier( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L717" href="#L717">717</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L718" href="#L718">718</a>             }
<a class="jxr_linenumber" name="L719" href="#L719">719</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L720" href="#L720">720</a>             {
<a class="jxr_linenumber" name="L721" href="#L721">721</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L722" href="#L722">722</a>                 {
<a class="jxr_linenumber" name="L723" href="#L723">723</a>                     elIt.next();
<a class="jxr_linenumber" name="L724" href="#L724">724</a>                     elIt.remove();
<a class="jxr_linenumber" name="L725" href="#L725">725</a>                 }
<a class="jxr_linenumber" name="L726" href="#L726">726</a>             }
<a class="jxr_linenumber" name="L727" href="#L727">727</a>         }
<a class="jxr_linenumber" name="L728" href="#L728">728</a>     } <em class="jxr_comment">// -- void iterateNotifier(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L729" href="#L729">729</a> 
<a class="jxr_linenumber" name="L730" href="#L730">730</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L731" href="#L731">731</a> <em class="jxr_javadoccomment">     * Method iteratePlugin</em>
<a class="jxr_linenumber" name="L732" href="#L732">732</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L733" href="#L733">733</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L734" href="#L734">734</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L735" href="#L735">735</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L736" href="#L736">736</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L737" href="#L737">737</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L738" href="#L738">738</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L739" href="#L739">739</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iteratePlugin( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L740" href="#L740">740</a>                                   String parentTag, String childTag )
<a class="jxr_linenumber" name="L741" href="#L741">741</a>     {
<a class="jxr_linenumber" name="L742" href="#L742">742</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         {
<a class="jxr_linenumber" name="L746" href="#L746">746</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L747" href="#L747">747</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L748" href="#L748">748</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L749" href="#L749">749</a>             {
<a class="jxr_linenumber" name="L750" href="#L750">750</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L751" href="#L751">751</a>             }
<a class="jxr_linenumber" name="L752" href="#L752">752</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L753" href="#L753">753</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L754" href="#L754">754</a>             {
<a class="jxr_linenumber" name="L755" href="#L755">755</a>                 Plugin value = (Plugin) it.next();
<a class="jxr_linenumber" name="L756" href="#L756">756</a>                 Element el;
<a class="jxr_linenumber" name="L757" href="#L757">757</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L758" href="#L758">758</a>                 {
<a class="jxr_linenumber" name="L759" href="#L759">759</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L760" href="#L760">760</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L761" href="#L761">761</a>                     {
<a class="jxr_linenumber" name="L762" href="#L762">762</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L763" href="#L763">763</a>                     }
<a class="jxr_linenumber" name="L764" href="#L764">764</a>                 }
<a class="jxr_linenumber" name="L765" href="#L765">765</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L766" href="#L766">766</a>                 {
<a class="jxr_linenumber" name="L767" href="#L767">767</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L768" href="#L768">768</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L769" href="#L769">769</a>                 }
<a class="jxr_linenumber" name="L770" href="#L770">770</a>                 updatePlugin( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L771" href="#L771">771</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L772" href="#L772">772</a>             }
<a class="jxr_linenumber" name="L773" href="#L773">773</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L774" href="#L774">774</a>             {
<a class="jxr_linenumber" name="L775" href="#L775">775</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L776" href="#L776">776</a>                 {
<a class="jxr_linenumber" name="L777" href="#L777">777</a>                     elIt.next();
<a class="jxr_linenumber" name="L778" href="#L778">778</a>                     elIt.remove();
<a class="jxr_linenumber" name="L779" href="#L779">779</a>                 }
<a class="jxr_linenumber" name="L780" href="#L780">780</a>             }
<a class="jxr_linenumber" name="L781" href="#L781">781</a>         }
<a class="jxr_linenumber" name="L782" href="#L782">782</a>     } <em class="jxr_comment">// -- void iteratePlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L783" href="#L783">783</a> 
<a class="jxr_linenumber" name="L784" href="#L784">784</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L785" href="#L785">785</a> <em class="jxr_javadoccomment">     * Method iteratePluginExecution</em>
<a class="jxr_linenumber" name="L786" href="#L786">786</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L787" href="#L787">787</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L788" href="#L788">788</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L789" href="#L789">789</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L790" href="#L790">790</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L791" href="#L791">791</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L792" href="#L792">792</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L793" href="#L793">793</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iteratePluginExecution( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L794" href="#L794">794</a>                                            String parentTag, String childTag )
<a class="jxr_linenumber" name="L795" href="#L795">795</a>     {
<a class="jxr_linenumber" name="L796" href="#L796">796</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L797" href="#L797">797</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L798" href="#L798">798</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L799" href="#L799">799</a>         {
<a class="jxr_linenumber" name="L800" href="#L800">800</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L801" href="#L801">801</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L802" href="#L802">802</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L803" href="#L803">803</a>             {
<a class="jxr_linenumber" name="L804" href="#L804">804</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L805" href="#L805">805</a>             }
<a class="jxr_linenumber" name="L806" href="#L806">806</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L807" href="#L807">807</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L808" href="#L808">808</a>             {
<a class="jxr_linenumber" name="L809" href="#L809">809</a>                 PluginExecution value = (PluginExecution) it.next();
<a class="jxr_linenumber" name="L810" href="#L810">810</a>                 Element el;
<a class="jxr_linenumber" name="L811" href="#L811">811</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L812" href="#L812">812</a>                 {
<a class="jxr_linenumber" name="L813" href="#L813">813</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L814" href="#L814">814</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L815" href="#L815">815</a>                     {
<a class="jxr_linenumber" name="L816" href="#L816">816</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L817" href="#L817">817</a>                     }
<a class="jxr_linenumber" name="L818" href="#L818">818</a>                 }
<a class="jxr_linenumber" name="L819" href="#L819">819</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L820" href="#L820">820</a>                 {
<a class="jxr_linenumber" name="L821" href="#L821">821</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L822" href="#L822">822</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L823" href="#L823">823</a>                 }
<a class="jxr_linenumber" name="L824" href="#L824">824</a>                 updatePluginExecution( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L825" href="#L825">825</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L826" href="#L826">826</a>             }
<a class="jxr_linenumber" name="L827" href="#L827">827</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L828" href="#L828">828</a>             {
<a class="jxr_linenumber" name="L829" href="#L829">829</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                 {
<a class="jxr_linenumber" name="L831" href="#L831">831</a>                     elIt.next();
<a class="jxr_linenumber" name="L832" href="#L832">832</a>                     elIt.remove();
<a class="jxr_linenumber" name="L833" href="#L833">833</a>                 }
<a class="jxr_linenumber" name="L834" href="#L834">834</a>             }
<a class="jxr_linenumber" name="L835" href="#L835">835</a>         }
<a class="jxr_linenumber" name="L836" href="#L836">836</a>     } <em class="jxr_comment">// -- void iteratePluginExecution(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L837" href="#L837">837</a> 
<a class="jxr_linenumber" name="L838" href="#L838">838</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L839" href="#L839">839</a> <em class="jxr_javadoccomment">     * Method iterateProfile</em>
<a class="jxr_linenumber" name="L840" href="#L840">840</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L841" href="#L841">841</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L842" href="#L842">842</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L843" href="#L843">843</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L844" href="#L844">844</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L845" href="#L845">845</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L846" href="#L846">846</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L847" href="#L847">847</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateProfile( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L848" href="#L848">848</a>                                    String parentTag, String childTag )
<a class="jxr_linenumber" name="L849" href="#L849">849</a>     {
<a class="jxr_linenumber" name="L850" href="#L850">850</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L851" href="#L851">851</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L852" href="#L852">852</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L853" href="#L853">853</a>         {
<a class="jxr_linenumber" name="L854" href="#L854">854</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L855" href="#L855">855</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L856" href="#L856">856</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L857" href="#L857">857</a>             {
<a class="jxr_linenumber" name="L858" href="#L858">858</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L859" href="#L859">859</a>             }
<a class="jxr_linenumber" name="L860" href="#L860">860</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L861" href="#L861">861</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L862" href="#L862">862</a>             {
<a class="jxr_linenumber" name="L863" href="#L863">863</a>                 Profile value = (Profile) it.next();
<a class="jxr_linenumber" name="L864" href="#L864">864</a>                 Element el;
<a class="jxr_linenumber" name="L865" href="#L865">865</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L866" href="#L866">866</a>                 {
<a class="jxr_linenumber" name="L867" href="#L867">867</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L868" href="#L868">868</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L869" href="#L869">869</a>                     {
<a class="jxr_linenumber" name="L870" href="#L870">870</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L871" href="#L871">871</a>                     }
<a class="jxr_linenumber" name="L872" href="#L872">872</a>                 }
<a class="jxr_linenumber" name="L873" href="#L873">873</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L874" href="#L874">874</a>                 {
<a class="jxr_linenumber" name="L875" href="#L875">875</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L876" href="#L876">876</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L877" href="#L877">877</a>                 }
<a class="jxr_linenumber" name="L878" href="#L878">878</a>                 updateProfile( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L879" href="#L879">879</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L880" href="#L880">880</a>             }
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L882" href="#L882">882</a>             {
<a class="jxr_linenumber" name="L883" href="#L883">883</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L884" href="#L884">884</a>                 {
<a class="jxr_linenumber" name="L885" href="#L885">885</a>                     elIt.next();
<a class="jxr_linenumber" name="L886" href="#L886">886</a>                     elIt.remove();
<a class="jxr_linenumber" name="L887" href="#L887">887</a>                 }
<a class="jxr_linenumber" name="L888" href="#L888">888</a>             }
<a class="jxr_linenumber" name="L889" href="#L889">889</a>         }
<a class="jxr_linenumber" name="L890" href="#L890">890</a>     } <em class="jxr_comment">// -- void iterateProfile(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L891" href="#L891">891</a> 
<a class="jxr_linenumber" name="L892" href="#L892">892</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L893" href="#L893">893</a> <em class="jxr_javadoccomment">     * Method iterateReportPlugin</em>
<a class="jxr_linenumber" name="L894" href="#L894">894</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L895" href="#L895">895</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L896" href="#L896">896</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L897" href="#L897">897</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L898" href="#L898">898</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L899" href="#L899">899</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L900" href="#L900">900</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L901" href="#L901">901</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateReportPlugin( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L902" href="#L902">902</a>                                         String parentTag, String childTag )
<a class="jxr_linenumber" name="L903" href="#L903">903</a>     {
<a class="jxr_linenumber" name="L904" href="#L904">904</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L905" href="#L905">905</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L906" href="#L906">906</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L907" href="#L907">907</a>         {
<a class="jxr_linenumber" name="L908" href="#L908">908</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L909" href="#L909">909</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L910" href="#L910">910</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L911" href="#L911">911</a>             {
<a class="jxr_linenumber" name="L912" href="#L912">912</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L913" href="#L913">913</a>             }
<a class="jxr_linenumber" name="L914" href="#L914">914</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L915" href="#L915">915</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L916" href="#L916">916</a>             {
<a class="jxr_linenumber" name="L917" href="#L917">917</a>                 ReportPlugin value = (ReportPlugin) it.next();
<a class="jxr_linenumber" name="L918" href="#L918">918</a>                 Element el;
<a class="jxr_linenumber" name="L919" href="#L919">919</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L920" href="#L920">920</a>                 {
<a class="jxr_linenumber" name="L921" href="#L921">921</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L922" href="#L922">922</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L923" href="#L923">923</a>                     {
<a class="jxr_linenumber" name="L924" href="#L924">924</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L925" href="#L925">925</a>                     }
<a class="jxr_linenumber" name="L926" href="#L926">926</a>                 }
<a class="jxr_linenumber" name="L927" href="#L927">927</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L928" href="#L928">928</a>                 {
<a class="jxr_linenumber" name="L929" href="#L929">929</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L930" href="#L930">930</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L931" href="#L931">931</a>                 }
<a class="jxr_linenumber" name="L932" href="#L932">932</a>                 updateReportPlugin( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L933" href="#L933">933</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L934" href="#L934">934</a>             }
<a class="jxr_linenumber" name="L935" href="#L935">935</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L936" href="#L936">936</a>             {
<a class="jxr_linenumber" name="L937" href="#L937">937</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L938" href="#L938">938</a>                 {
<a class="jxr_linenumber" name="L939" href="#L939">939</a>                     elIt.next();
<a class="jxr_linenumber" name="L940" href="#L940">940</a>                     elIt.remove();
<a class="jxr_linenumber" name="L941" href="#L941">941</a>                 }
<a class="jxr_linenumber" name="L942" href="#L942">942</a>             }
<a class="jxr_linenumber" name="L943" href="#L943">943</a>         }
<a class="jxr_linenumber" name="L944" href="#L944">944</a>     } <em class="jxr_comment">// -- void iterateReportPlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L945" href="#L945">945</a> 
<a class="jxr_linenumber" name="L946" href="#L946">946</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L947" href="#L947">947</a> <em class="jxr_javadoccomment">     * Method iterateReportSet</em>
<a class="jxr_linenumber" name="L948" href="#L948">948</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L949" href="#L949">949</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L950" href="#L950">950</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L951" href="#L951">951</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L952" href="#L952">952</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L953" href="#L953">953</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L954" href="#L954">954</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L955" href="#L955">955</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateReportSet( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L956" href="#L956">956</a>                                      String parentTag, String childTag )
<a class="jxr_linenumber" name="L957" href="#L957">957</a>     {
<a class="jxr_linenumber" name="L958" href="#L958">958</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L959" href="#L959">959</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L960" href="#L960">960</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L961" href="#L961">961</a>         {
<a class="jxr_linenumber" name="L962" href="#L962">962</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L963" href="#L963">963</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L964" href="#L964">964</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L965" href="#L965">965</a>             {
<a class="jxr_linenumber" name="L966" href="#L966">966</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L967" href="#L967">967</a>             }
<a class="jxr_linenumber" name="L968" href="#L968">968</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L969" href="#L969">969</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L970" href="#L970">970</a>             {
<a class="jxr_linenumber" name="L971" href="#L971">971</a>                 ReportSet value = (ReportSet) it.next();
<a class="jxr_linenumber" name="L972" href="#L972">972</a>                 Element el;
<a class="jxr_linenumber" name="L973" href="#L973">973</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L974" href="#L974">974</a>                 {
<a class="jxr_linenumber" name="L975" href="#L975">975</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L976" href="#L976">976</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L977" href="#L977">977</a>                     {
<a class="jxr_linenumber" name="L978" href="#L978">978</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L979" href="#L979">979</a>                     }
<a class="jxr_linenumber" name="L980" href="#L980">980</a>                 }
<a class="jxr_linenumber" name="L981" href="#L981">981</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L982" href="#L982">982</a>                 {
<a class="jxr_linenumber" name="L983" href="#L983">983</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L984" href="#L984">984</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L985" href="#L985">985</a>                 }
<a class="jxr_linenumber" name="L986" href="#L986">986</a>                 updateReportSet( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L987" href="#L987">987</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L988" href="#L988">988</a>             }
<a class="jxr_linenumber" name="L989" href="#L989">989</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L990" href="#L990">990</a>             {
<a class="jxr_linenumber" name="L991" href="#L991">991</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L992" href="#L992">992</a>                 {
<a class="jxr_linenumber" name="L993" href="#L993">993</a>                     elIt.next();
<a class="jxr_linenumber" name="L994" href="#L994">994</a>                     elIt.remove();
<a class="jxr_linenumber" name="L995" href="#L995">995</a>                 }
<a class="jxr_linenumber" name="L996" href="#L996">996</a>             }
<a class="jxr_linenumber" name="L997" href="#L997">997</a>         }
<a class="jxr_linenumber" name="L998" href="#L998">998</a>     } <em class="jxr_comment">// -- void iterateReportSet(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L999" href="#L999">999</a> 
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a> <em class="jxr_javadoccomment">     * Method iterateRepository</em>
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateRepository( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>                                       String parentTag, String childTag )
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>     {
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>         {
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>             {
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>             }
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>             {
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>                 Repository value = (Repository) it.next();
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>                 Element el;
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a>                 {
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a>                     {
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>                     }
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a>                 }
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>                 {
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>                 }
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>                 updateRepository( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>             }
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a>             {
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a>                 {
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>                     elIt.next();
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>                     elIt.remove();
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>                 }
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a>             }
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>         }
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>     } <em class="jxr_comment">// -- void iterateRepository(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a> 
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a> <em class="jxr_javadoccomment">     * Method iterateResource</em>
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a> <em class="jxr_javadoccomment">     * @param childTag</em>
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a> <em class="jxr_javadoccomment">     * @param parentTag</em>
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a> <em class="jxr_javadoccomment">     * @param list</em>
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> iterateResource( Counter counter, Element parent, Collection list,
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a>                                     String parentTag, String childTag )
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>     {
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = list != <strong class="jxr_keyword">null</strong> &amp;&amp; list.size() &gt; 0;
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>         Element element = updateElement( counter, parent, parentTag, shouldExist );
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>         {
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a>             Iterator it = list.iterator();
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>             Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator();
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>             <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a>             {
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>                 elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>             }
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>             {
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>                 Resource value = (Resource) it.next();
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a>                 Element el;
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>                 <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> &amp;&amp; elIt.hasNext() )
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>                 {
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>                     el = (Element) elIt.next();
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a>                     <strong class="jxr_keyword">if</strong> ( !elIt.hasNext() )
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>                     {
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>                         elIt = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a>                     }
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>                 }
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>                 {
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>                     el = factory.element( childTag, element.getNamespace() );
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>                     insertAtPreferredLocation( element, el, innerCount );
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>                 }
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>                 updateResource( value, childTag, innerCount, el );
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a>                 innerCount.increaseCount();
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>             }
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>             <strong class="jxr_keyword">if</strong> ( elIt != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>             {
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a>                 <strong class="jxr_keyword">while</strong> ( elIt.hasNext() )
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a>                 {
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>                     elIt.next();
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>                     elIt.remove();
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>                 }
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a>             }
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>         }
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a>     } <em class="jxr_comment">// -- void iterateResource(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a> 
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a> <em class="jxr_javadoccomment">     * Method replaceXpp3DOM</em>
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a> <em class="jxr_javadoccomment">     * @param parentDom</em>
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> replaceXpp3DOM( Element parent, Xpp3Dom parentDom, Counter counter )
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>     {
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>         <strong class="jxr_keyword">if</strong> ( parentDom.getChildCount() &gt; 0 )
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>         {
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>             Xpp3Dom[] childs = parentDom.getChildren();
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>             Collection domChilds = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a>             Collections.addAll( domChilds, childs );
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a>             <em class="jxr_comment">// int domIndex = 0;</em>
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>             <strong class="jxr_keyword">for</strong> ( Object o : parent.getChildren() )
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a>             {
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a>                 Element elem = (Element) o;
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a>                 Iterator it2 = domChilds.iterator();
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>                 Xpp3Dom corrDom = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>                 <strong class="jxr_keyword">while</strong> ( it2.hasNext() )
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a>                 {
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>                     Xpp3Dom dm = (Xpp3Dom) it2.next();
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a>                     <strong class="jxr_keyword">if</strong> ( dm.getName().equals( elem.getName() ) )
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>                     {
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a>                         corrDom = dm;
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>                     }
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>                 }
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a>                 <strong class="jxr_keyword">if</strong> ( corrDom != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>                 {
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>                     domChilds.remove( corrDom );
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>                     replaceXpp3DOM( elem, corrDom, <strong class="jxr_keyword">new</strong> Counter( counter.getDepth() + 1 ) );
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a>                     counter.increaseCount();
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>                 }
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>                 {
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>                     parent.removeContent( elem );
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>                 }
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>             }
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>             <strong class="jxr_keyword">for</strong> ( Object domChild : domChilds )
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a>             {
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a>                 Xpp3Dom dm = (Xpp3Dom) domChild;
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>                 Element elem = factory.element( dm.getName(), parent.getNamespace() );
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>                 insertAtPreferredLocation( parent, elem, counter );
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a>                 counter.increaseCount();
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>                 replaceXpp3DOM( elem, dm, <strong class="jxr_keyword">new</strong> Counter( counter.getDepth() + 1 ) );
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>             }
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a>         }
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( parentDom.getValue() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a>         {
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>             parent.setText( parentDom.getValue() );
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>         }
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>     } <em class="jxr_comment">// -- void replaceXpp3DOM(Element, Xpp3Dom, Counter)</em>
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a> 
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a> <em class="jxr_javadoccomment">     * Method updateActivationFile</em>
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateActivationFile( ActivationFile value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>     {
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>         {
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"missing"</span>, value.getMissing(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"exists"</span>, value.getExists(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>         }
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>     } <em class="jxr_comment">// -- void updateActivationFile(ActivationFile, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a> 
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a> <em class="jxr_javadoccomment">     * Method updateActivationOS</em>
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateActivationOS( ActivationOS value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>     {
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>         {
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"family"</span>, value.getFamily(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"arch"</span>, value.getArch(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>         }
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>     } <em class="jxr_comment">// -- void updateActivationOS(ActivationOS, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a> 
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a> <em class="jxr_javadoccomment">     * Method updateActivationProperty</em>
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateActivationProperty( ActivationProperty value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>     {
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>         {
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"value"</span>, value.getValue(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>         }
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>     } <em class="jxr_comment">// -- void updateActivationProperty(ActivationProperty, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a> 
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a> <em class="jxr_javadoccomment">     * Method updateBuild</em>
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>     <em class="jxr_comment">//CHECKSTYLE_OFF: LineLength</em>
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateBuild( Build value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>     {
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a>         {
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"sourceDirectory"</span>, value.getSourceDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"scriptSourceDirectory"</span>, value.getScriptSourceDirectory(),
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>                                          <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"testSourceDirectory"</span>, value.getTestSourceDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"outputDirectory"</span>, value.getOutputDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"testOutputDirectory"</span>, value.getTestOutputDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>             iterateExtension( innerCount, root, value.getExtensions(), <span class="jxr_string">"extensions"</span>, <span class="jxr_string">"extension"</span> );
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"defaultGoal"</span>, value.getDefaultGoal(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>             iterateResource( innerCount, root, value.getResources(), <span class="jxr_string">"resources"</span>, <span class="jxr_string">"resource"</span> );
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>             iterateResource( innerCount, root, value.getTestResources(), <span class="jxr_string">"testResources"</span>, <span class="jxr_string">"testResource"</span> );
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"directory"</span>, value.getDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"finalName"</span>, value.getFinalName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>             findAndReplaceSimpleLists( innerCount, root, value.getFilters(), <span class="jxr_string">"filters"</span>, <span class="jxr_string">"filter"</span> );
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>             updatePluginManagement( value.getPluginManagement(), <span class="jxr_string">"pluginManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>             iteratePlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>         }
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>     } <em class="jxr_comment">// -- void updateBuild(Build, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>     <em class="jxr_comment">//CHECKSTYLE_ON: LineLength</em>
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a> 
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a> <em class="jxr_javadoccomment">     * Method updateBuildBase</em>
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateBuildBase( BuildBase value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>     {
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>         {
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"defaultGoal"</span>, value.getDefaultGoal(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a>             iterateResource( innerCount, root, value.getResources(), <span class="jxr_string">"resources"</span>, <span class="jxr_string">"resource"</span> );
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>             iterateResource( innerCount, root, value.getTestResources(), <span class="jxr_string">"testResources"</span>, <span class="jxr_string">"testResource"</span> );
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"directory"</span>, value.getDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"finalName"</span>, value.getFinalName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>             findAndReplaceSimpleLists( innerCount, root, value.getFilters(), <span class="jxr_string">"filters"</span>, <span class="jxr_string">"filter"</span> );
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>             updatePluginManagement( value.getPluginManagement(), <span class="jxr_string">"pluginManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>             iteratePlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>         }
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>     } <em class="jxr_comment">// -- void updateBuildBase(BuildBase, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a> 
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a> <em class="jxr_javadoccomment">     * Method updateCiManagement</em>
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateCiManagement( CiManagement value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>     {
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>         {
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"system"</span>, value.getSystem(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>             iterateNotifier( innerCount, root, value.getNotifiers(), <span class="jxr_string">"notifiers"</span>, <span class="jxr_string">"notifier"</span> );
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>         }
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>     } <em class="jxr_comment">// -- void updateCiManagement(CiManagement, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a> 
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a> <em class="jxr_javadoccomment">     * Method updateConfigurationContainer</em>
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateConfigurationContainer( ConfigurationContainer value, String xmlTag, Counter counter,
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>                                                  Element element )
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a>     {
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a>         {
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inherited"</span>, value.getInherited(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>             findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"configuration"</span>, (Xpp3Dom) value.getConfiguration() );
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a>         }
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>     } <em class="jxr_comment">// -- void updateConfigurationContainer(ConfigurationContainer, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> 
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a> <em class="jxr_javadoccomment">     * Method updateContributor</em>
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateContributor( Contributor value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>     {
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>         Element root = element;
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"email"</span>, value.getEmail(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"organization"</span>, value.getOrganization(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"organizationUrl"</span>, value.getOrganizationUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>         findAndReplaceSimpleLists( innerCount, root, value.getRoles(), <span class="jxr_string">"roles"</span>, <span class="jxr_string">"role"</span> );
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"timezone"</span>, value.getTimezone(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>         findAndReplaceProperties( innerCount, root, <span class="jxr_string">"properties"</span>, value.getProperties() );
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>     } <em class="jxr_comment">// -- void updateContributor(Contributor, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a> 
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a> <em class="jxr_javadoccomment">     * Method updateDependency</em>
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateDependency( Dependency value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>     {
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>         Element root = element;
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"type"</span>, value.getType(), <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"classifier"</span>, value.getClassifier(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"scope"</span>, value.getScope(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"systemPath"</span>, value.getSystemPath(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>         iterateExclusion( innerCount, root, value.getExclusions(), <span class="jxr_string">"exclusions"</span>, <span class="jxr_string">"exclusion"</span> );
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"optional"</span>,
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>                                      !value.isOptional() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isOptional() ), <span class="jxr_string">"false"</span> );
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>     } <em class="jxr_comment">// -- void updateDependency(Dependency, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a> 
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a> <em class="jxr_javadoccomment">     * Method updateDependencyManagement</em>
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateDependencyManagement( DependencyManagement value, String xmlTag, Counter counter,
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>                                                Element element )
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>     {
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>         {
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>             iterateDependency( innerCount, root, value.getDependencies(), <span class="jxr_string">"dependencies"</span>, <span class="jxr_string">"dependency"</span> );
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>         }
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>     } <em class="jxr_comment">// -- void updateDependencyManagement(DependencyManagement, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a> 
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a> <em class="jxr_javadoccomment">     * Method updateDeploymentRepository</em>
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateDeploymentRepository( DeploymentRepository value, String xmlTag, Counter counter,
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>                                                Element element )
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>     {
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>         {
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"uniqueVersion"</span>,
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a>                                          value.isUniqueVersion() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isUniqueVersion() ),
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>                                          <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"layout"</span>, value.getLayout(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>         }
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>     } <em class="jxr_comment">// -- void updateDeploymentRepository(DeploymentRepository, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a> 
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a> <em class="jxr_javadoccomment">     * Method updateDeveloper</em>
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateDeveloper( Developer value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a>     {
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>         Element root = element;
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"email"</span>, value.getEmail(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"organization"</span>, value.getOrganization(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"organizationUrl"</span>, value.getOrganizationUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a>         findAndReplaceSimpleLists( innerCount, root, value.getRoles(), <span class="jxr_string">"roles"</span>, <span class="jxr_string">"role"</span> );
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"timezone"</span>, value.getTimezone(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>         findAndReplaceProperties( innerCount, root, <span class="jxr_string">"properties"</span>, value.getProperties() );
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>     } <em class="jxr_comment">// -- void updateDeveloper(Developer, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a> 
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a> <em class="jxr_javadoccomment">     * Method updateDistributionManagement</em>
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateDistributionManagement( DistributionManagement value, String xmlTag, Counter counter,
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>                                                  Element element )
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>     {
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>         {
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>             updateDeploymentRepository( value.getRepository(), <span class="jxr_string">"repository"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>             updateDeploymentRepository( value.getSnapshotRepository(), <span class="jxr_string">"snapshotRepository"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>             updateSite( value.getSite(), <span class="jxr_string">"site"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"downloadUrl"</span>, value.getDownloadUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>             updateRelocation( value.getRelocation(), <span class="jxr_string">"relocation"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"status"</span>, value.getStatus(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>         }
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a>     } <em class="jxr_comment">// -- void updateDistributionManagement(DistributionManagement, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a> 
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a> <em class="jxr_javadoccomment">     * Method updateElement</em>
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> <em class="jxr_javadoccomment">     * @param shouldExist</em>
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a> <em class="jxr_javadoccomment">     * @param name</em>
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a> <em class="jxr_javadoccomment">     * @param parent</em>
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>     <strong class="jxr_keyword">protected</strong> Element updateElement( Counter counter, Element parent, String name, <strong class="jxr_keyword">boolean</strong> shouldExist )
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>     {
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>         Element element = parent.getChild( name, parent.getNamespace() );
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>         <strong class="jxr_keyword">if</strong> ( element != <strong class="jxr_keyword">null</strong> &amp;&amp; shouldExist )
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>         {
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>             counter.increaseCount();
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>         }
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>         <strong class="jxr_keyword">if</strong> ( element == <strong class="jxr_keyword">null</strong> &amp;&amp; shouldExist )
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         {
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>             element = factory.element( name, parent.getNamespace() );
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>             insertAtPreferredLocation( parent, element, counter );
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a>             counter.increaseCount();
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>         }
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>         <strong class="jxr_keyword">if</strong> ( !shouldExist &amp;&amp; element != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>         {
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>             <strong class="jxr_keyword">int</strong> index = parent.indexOf( element );
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>             <strong class="jxr_keyword">if</strong> ( index &gt; 0 )
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>             {
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>                 Content previous = parent.getContent( index - 1 );
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>                 <strong class="jxr_keyword">if</strong> ( previous instanceof Text )
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a>                 {
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>                     Text txt = (Text) previous;
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>                     <strong class="jxr_keyword">if</strong> ( txt.getTextTrim().length() == 0 )
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>                     {
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>                         parent.removeContent( txt );
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>                     }
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>                 }
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             }
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>             parent.removeContent( element );
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>         }
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>     } <em class="jxr_comment">// -- Element updateElement(Counter, Element, String, boolean)</em>
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a> 
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a> <em class="jxr_javadoccomment">     * Method updateExclusion</em>
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateExclusion( Exclusion value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>     {
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>         Element root = element;
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>     } <em class="jxr_comment">// -- void updateExclusion(Exclusion, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a> 
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a> <em class="jxr_javadoccomment">     * Method updateExtension</em>
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateExtension( Extension value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>     {
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>         Element root = element;
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>     } <em class="jxr_comment">// -- void updateExtension(Extension, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a> 
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a> <em class="jxr_javadoccomment">     * Method updateFileSet</em>
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateFileSet( FileSet value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>     {
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>         {
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"directory"</span>, value.getDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>             findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), <span class="jxr_string">"includes"</span>, <span class="jxr_string">"include"</span> );
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>             findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), <span class="jxr_string">"excludes"</span>, <span class="jxr_string">"exclude"</span> );
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>         }
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>     } <em class="jxr_comment">// -- void updateFileSet(FileSet, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a> 
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a> <em class="jxr_javadoccomment">     * Method updateIssueManagement</em>
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateIssueManagement( IssueManagement value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>     {
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>         {
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"system"</span>, value.getSystem(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>         }
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>     } <em class="jxr_comment">// -- void updateIssueManagement(IssueManagement, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a> 
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a> <em class="jxr_javadoccomment">     * Method updateLicense</em>
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateLicense( License value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>     {
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>         Element root = element;
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"distribution"</span>, value.getDistribution(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"comments"</span>, value.getComments(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>     } <em class="jxr_comment">// -- void updateLicense(License, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a> 
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a> <em class="jxr_javadoccomment">     * Method updateMailingList</em>
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateMailingList( MailingList value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>     {
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>         Element root = element;
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"subscribe"</span>, value.getSubscribe(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"unsubscribe"</span>, value.getUnsubscribe(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"post"</span>, value.getPost(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"archive"</span>, value.getArchive(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>         findAndReplaceSimpleLists( innerCount, root, value.getOtherArchives(), <span class="jxr_string">"otherArchives"</span>, <span class="jxr_string">"otherArchive"</span> );
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>     } <em class="jxr_comment">// -- void updateMailingList(MailingList, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a> 
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> <em class="jxr_javadoccomment">     * Method updateModel</em>
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateModel( Model value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>     {
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         Element root = element;
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         updateParent( value.getParent(), <span class="jxr_string">"parent"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"modelVersion"</span>, value.getModelVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"packaging"</span>, value.getPackaging(), <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"description"</span>, value.getDescription(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>         updatePrerequisites( value.getPrerequisites(), <span class="jxr_string">"prerequisites"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>         updateIssueManagement( value.getIssueManagement(), <span class="jxr_string">"issueManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>         updateCiManagement( value.getCiManagement(), <span class="jxr_string">"ciManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inceptionYear"</span>, value.getInceptionYear(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>         iterateMailingList( innerCount, root, value.getMailingLists(), <span class="jxr_string">"mailingLists"</span>, <span class="jxr_string">"mailingList"</span> );
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>         iterateDeveloper( innerCount, root, value.getDevelopers(), <span class="jxr_string">"developers"</span>, <span class="jxr_string">"developer"</span> );
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>         iterateContributor( innerCount, root, value.getContributors(), <span class="jxr_string">"contributors"</span>, <span class="jxr_string">"contributor"</span> );
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>         iterateLicense( innerCount, root, value.getLicenses(), <span class="jxr_string">"licenses"</span>, <span class="jxr_string">"license"</span> );
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>         updateScm( value.getScm(), <span class="jxr_string">"scm"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>         updateOrganization( value.getOrganization(), <span class="jxr_string">"organization"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>         updateBuild( value.getBuild(), <span class="jxr_string">"build"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>         iterateProfile( innerCount, root, value.getProfiles(), <span class="jxr_string">"profiles"</span>, <span class="jxr_string">"profile"</span> );
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>         findAndReplaceSimpleLists( innerCount, root, value.getModules(), <span class="jxr_string">"modules"</span>, <span class="jxr_string">"module"</span> );
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a>         iterateRepository( innerCount, root, value.getRepositories(), <span class="jxr_string">"repositories"</span>, <span class="jxr_string">"repository"</span> );
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>         iterateRepository( innerCount, root, value.getPluginRepositories(), <span class="jxr_string">"pluginRepositories"</span>, <span class="jxr_string">"pluginRepository"</span> );
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>         iterateDependency( innerCount, root, value.getDependencies(), <span class="jxr_string">"dependencies"</span>, <span class="jxr_string">"dependency"</span> );
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"reports"</span>, (Xpp3Dom) value.getReports() );
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>         updateReporting( value.getReporting(), <span class="jxr_string">"reporting"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>         updateDependencyManagement( value.getDependencyManagement(), <span class="jxr_string">"dependencyManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>         updateDistributionManagement( value.getDistributionManagement(), <span class="jxr_string">"distributionManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>         findAndReplaceProperties( innerCount, root, <span class="jxr_string">"properties"</span>, value.getProperties() );
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>     } <em class="jxr_comment">// -- void updateModel(Model, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a> 
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a> <em class="jxr_javadoccomment">     * Method updateModelBase</em>
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>     <em class="jxr_comment">//CHECKSTYLE_OFF: LineLength</em>
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateModelBase( ModelBase value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>     {
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>         {
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>             findAndReplaceSimpleLists( innerCount, root, value.getModules(), <span class="jxr_string">"modules"</span>, <span class="jxr_string">"module"</span> );
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>             iterateRepository( innerCount, root, value.getRepositories(), <span class="jxr_string">"repositories"</span>, <span class="jxr_string">"repository"</span> );
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>             iterateRepository( innerCount, root, value.getPluginRepositories(), <span class="jxr_string">"pluginRepositories"</span>,
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>                                <span class="jxr_string">"pluginRepository"</span> );
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>             iterateDependency( innerCount, root, value.getDependencies(), <span class="jxr_string">"dependencies"</span>, <span class="jxr_string">"dependency"</span> );
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>             findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"reports"</span>, (Xpp3Dom) value.getReports() );
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>             updateReporting( value.getReporting(), <span class="jxr_string">"reporting"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>             updateDependencyManagement( value.getDependencyManagement(), <span class="jxr_string">"dependencyManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>             updateDistributionManagement( value.getDistributionManagement(), <span class="jxr_string">"distributionManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>             findAndReplaceProperties( innerCount, root, <span class="jxr_string">"properties"</span>, value.getProperties() );
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>         }
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>     } <em class="jxr_comment">// -- void updateModelBase(ModelBase, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>     <em class="jxr_comment">//CHECKSTYLE_ON: LineLength</em>
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a> 
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> <em class="jxr_javadoccomment">     * Method updateNotifier</em>
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a>     <em class="jxr_comment">//CHECKSTYLE_OFF: LineLength</em>
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateNotifier( Notifier value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>     {
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>         Element root = element;
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"type"</span>, value.getType(), <span class="jxr_string">"mail"</span> );
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"sendOnError"</span>,
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>                                      value.isSendOnError() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isSendOnError() ), <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"sendOnFailure"</span>,
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>                                      value.isSendOnFailure() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isSendOnFailure() ), <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"sendOnSuccess"</span>,
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a>                                      value.isSendOnSuccess() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isSendOnSuccess() ), <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"sendOnWarning"</span>,
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>                                      value.isSendOnWarning() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isSendOnWarning() ), <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"address"</span>, value.getAddress(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         findAndReplaceProperties( innerCount, root, <span class="jxr_string">"configuration"</span>, value.getConfiguration() );
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>     } <em class="jxr_comment">// -- void updateNotifier(Notifier, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>     <em class="jxr_comment">//CHECKSTYLE_ON: LineLength</em>
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a> 
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a> <em class="jxr_javadoccomment">     * Method updateOrganization</em>
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateOrganization( Organization value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>     {
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>         {
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>         }
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>     } <em class="jxr_comment">// -- void updateOrganization(Organization, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a> <em class="jxr_javadoccomment">     * Method updateParent</em>
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateParent( Parent value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>     {
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         {
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"relativePath"</span>, value.getRelativePath(), <span class="jxr_string">"../pom.xml"</span> );
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>         }
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>     } <em class="jxr_comment">// -- void updateParent(Parent, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> 
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a> <em class="jxr_javadoccomment">     * Method updatePatternSet</em>
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePatternSet( PatternSet value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>     {
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         {
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>             findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), <span class="jxr_string">"includes"</span>, <span class="jxr_string">"include"</span> );
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>             findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), <span class="jxr_string">"excludes"</span>, <span class="jxr_string">"exclude"</span> );
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         }
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>     } <em class="jxr_comment">// -- void updatePatternSet(PatternSet, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a> 
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a> <em class="jxr_javadoccomment">     * Method updatePlugin</em>
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePlugin( Plugin value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>     {
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>         Element root = element;
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <span class="jxr_string">"org.apache.maven.plugins"</span> );
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"extensions"</span>,
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>                                      !value.isExtensions() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isExtensions() ), <span class="jxr_string">"false"</span> );
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>         iteratePluginExecution( innerCount, root, value.getExecutions(), <span class="jxr_string">"executions"</span>, <span class="jxr_string">"execution"</span> );
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>         iterateDependency( innerCount, root, value.getDependencies(), <span class="jxr_string">"dependencies"</span>, <span class="jxr_string">"dependency"</span> );
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"goals"</span>, (Xpp3Dom) value.getGoals() );
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inherited"</span>, value.getInherited(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"configuration"</span>, (Xpp3Dom) value.getConfiguration() );
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a>     } <em class="jxr_comment">// -- void updatePlugin(Plugin, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a> 
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a> <em class="jxr_javadoccomment">     * Method updatePluginConfiguration</em>
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a>     <em class="jxr_comment">//CHECKSTYLE_OFF: LineLength</em>
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePluginConfiguration( PluginConfiguration value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a>     {
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>         {
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a>             updatePluginManagement( value.getPluginManagement(), <span class="jxr_string">"pluginManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>             iteratePlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>         }
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>     } <em class="jxr_comment">// -- void updatePluginConfiguration(PluginConfiguration, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>     <em class="jxr_comment">//CHECKSTYLE_ON: LineLength</em>
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a> 
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> <em class="jxr_javadoccomment">     * Method updatePluginContainer</em>
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePluginContainer( PluginContainer value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>     {
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>         {
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>             iteratePlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>         }
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>     } <em class="jxr_comment">// -- void updatePluginContainer(PluginContainer, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a> 
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> <em class="jxr_javadoccomment">     * Method updatePluginExecution</em>
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePluginExecution( PluginExecution value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>     {
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a>         Element root = element;
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"phase"</span>, value.getPhase(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>         findAndReplaceSimpleLists( innerCount, root, value.getGoals(), <span class="jxr_string">"goals"</span>, <span class="jxr_string">"goal"</span> );
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inherited"</span>, value.getInherited(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"configuration"</span>, (Xpp3Dom) value.getConfiguration() );
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>     } <em class="jxr_comment">// -- void updatePluginExecution(PluginExecution, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> 
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a> <em class="jxr_javadoccomment">     * Method updatePluginManagement</em>
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePluginManagement( PluginManagement value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a>     {
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>         {
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a>             iteratePlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a>         }
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>     } <em class="jxr_comment">// -- void updatePluginManagement(PluginManagement, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a> 
<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a> <em class="jxr_javadoccomment">     * Method updatePrerequisites</em>
<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updatePrerequisites( Prerequisites value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a>     {
<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a>         {
<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"maven"</span>, value.getMaven(), <span class="jxr_string">"2.0"</span> );
<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a>         }
<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a>     } <em class="jxr_comment">// -- void updatePrerequisites(Prerequisites, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a> 
<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a> <em class="jxr_javadoccomment">     * Method updateProfile</em>
<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateProfile( Profile value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>     {
<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a>         Element root = element;
<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a>         <em class="jxr_comment">// updateActivation( value.getActivation(), "activation", innerCount, root);</em>
<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a>         updateBuildBase( value.getBuild(), <span class="jxr_string">"build"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>         findAndReplaceSimpleLists( innerCount, root, value.getModules(), <span class="jxr_string">"modules"</span>, <span class="jxr_string">"module"</span> );
<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a>         iterateRepository( innerCount, root, value.getRepositories(), <span class="jxr_string">"repositories"</span>, <span class="jxr_string">"repository"</span> );
<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a>         iterateRepository( innerCount, root, value.getPluginRepositories(), <span class="jxr_string">"pluginRepositories"</span>, <span class="jxr_string">"pluginRepository"</span> );
<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a>         iterateDependency( innerCount, root, value.getDependencies(), <span class="jxr_string">"dependencies"</span>, <span class="jxr_string">"dependency"</span> );
<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"reports"</span>, (Xpp3Dom) value.getReports() );
<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a>         updateReporting( value.getReporting(), <span class="jxr_string">"reporting"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a>         updateDependencyManagement( value.getDependencyManagement(), <span class="jxr_string">"dependencyManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a>         updateDistributionManagement( value.getDistributionManagement(), <span class="jxr_string">"distributionManagement"</span>, innerCount, root );
<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a>         findAndReplaceProperties( innerCount, root, <span class="jxr_string">"properties"</span>, value.getProperties() );
<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a>     } <em class="jxr_comment">// -- void updateProfile(Profile, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a> 
<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a> <em class="jxr_javadoccomment">     * Method updateRelocation</em>
<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateRelocation( Relocation value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a>     {
<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a>         {
<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"message"</span>, value.getMessage(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a>         }
<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a>     } <em class="jxr_comment">// -- void updateRelocation(Relocation, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a> 
<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a> <em class="jxr_javadoccomment">     * Method updateReportPlugin</em>
<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateReportPlugin( ReportPlugin value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a>     {
<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a>         Element root = element;
<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"groupId"</span>, value.getGroupId(), <span class="jxr_string">"org.apache.maven.plugins"</span> );
<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"artifactId"</span>, value.getArtifactId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"version"</span>, value.getVersion(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inherited"</span>, value.getInherited(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"configuration"</span>, (Xpp3Dom) value.getConfiguration() );
<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>         iterateReportSet( innerCount, root, value.getReportSets(), <span class="jxr_string">"reportSets"</span>, <span class="jxr_string">"reportSet"</span> );
<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a>     } <em class="jxr_comment">// -- void updateReportPlugin(ReportPlugin, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a> 
<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a> <em class="jxr_javadoccomment">     * Method updateReportSet</em>
<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateReportSet( ReportSet value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a>     {
<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a>         Element root = element;
<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a>         findAndReplaceXpp3DOM( innerCount, root, <span class="jxr_string">"configuration"</span>, (Xpp3Dom) value.getConfiguration() );
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"inherited"</span>, value.getInherited(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>         findAndReplaceSimpleLists( innerCount, root, value.getReports(), <span class="jxr_string">"reports"</span>, <span class="jxr_string">"report"</span> );
<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a>     } <em class="jxr_comment">// -- void updateReportSet(ReportSet, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a> 
<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a> <em class="jxr_javadoccomment">     * Method updateReporting</em>
<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateReporting( Reporting value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a>     {
<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a>         {
<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"excludeDefaults"</span>, !value.isExcludeDefaults() ? <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a>                             : String.valueOf( value.isExcludeDefaults() ), <span class="jxr_string">"false"</span> );
<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"outputDirectory"</span>, value.getOutputDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a>             iterateReportPlugin( innerCount, root, value.getPlugins(), <span class="jxr_string">"plugins"</span>, <span class="jxr_string">"plugin"</span> );
<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a>         }
<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a>     } <em class="jxr_comment">// -- void updateReporting(Reporting, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a> 
<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a> <em class="jxr_javadoccomment">     * Method updateRepository</em>
<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateRepository( Repository value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a>     {
<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a>         Element root = element;
<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a>         updateRepositoryPolicy( value.getReleases(), <span class="jxr_string">"releases"</span>, innerCount, root );
<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a>         updateRepositoryPolicy( value.getSnapshots(), <span class="jxr_string">"snapshots"</span>, innerCount, root );
<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"layout"</span>, value.getLayout(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a>     } <em class="jxr_comment">// -- void updateRepository(Repository, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a> 
<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a> <em class="jxr_javadoccomment">     * Method updateRepositoryBase</em>
<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateRepositoryBase( RepositoryBase value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a>     {
<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a>         {
<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"layout"</span>, value.getLayout(), <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a>         }
<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a>     } <em class="jxr_comment">// -- void updateRepositoryBase(RepositoryBase, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a> 
<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a> <em class="jxr_javadoccomment">     * Method updateRepositoryPolicy</em>
<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateRepositoryPolicy( RepositoryPolicy value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a>     {
<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a>         {
<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"enabled"</span>,
<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a>                                          value.isEnabled() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isEnabled() ), <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"updatePolicy"</span>, value.getUpdatePolicy(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"checksumPolicy"</span>, value.getChecksumPolicy(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a>         }
<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a>     } <em class="jxr_comment">// -- void updateRepositoryPolicy(RepositoryPolicy, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a> 
<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a> <em class="jxr_javadoccomment">     * Method updateResource</em>
<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateResource( Resource value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a>     {
<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a>         Element root = element;
<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a>         <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"targetPath"</span>, value.getTargetPath(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"filtering"</span>,
<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a>                                      !value.isFiltering() ? <strong class="jxr_keyword">null</strong> : String.valueOf( value.isFiltering() ), <span class="jxr_string">"false"</span> );
<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a>         findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"directory"</span>, value.getDirectory(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a>         findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), <span class="jxr_string">"includes"</span>, <span class="jxr_string">"include"</span> );
<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a>         findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), <span class="jxr_string">"excludes"</span>, <span class="jxr_string">"exclude"</span> );
<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a>     } <em class="jxr_comment">// -- void updateResource(Resource, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a> 
<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a> <em class="jxr_javadoccomment">     * Method updateScm</em>
<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateScm( Scm value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a>     {
<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a>         {
<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a>             <em class="jxr_comment">//CHECKSTYLE_OFF: LineLength</em>
<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a> 
<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"connection"</span>, value.getConnection(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"developerConnection"</span>, value.getDeveloperConnection(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"tag"</span>, value.getTag(), <span class="jxr_string">"HEAD"</span> );
<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a> 
<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a>             <em class="jxr_comment">//CHECKSTYLE_ON: LineLength</em>
<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a>         }
<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a>     } <em class="jxr_comment">// -- void updateScm(Scm, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a> 
<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a> <em class="jxr_javadoccomment">     * Method updateSite</em>
<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a> <em class="jxr_javadoccomment">     * @param value</em>
<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a> <em class="jxr_javadoccomment">     * @param element</em>
<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a> <em class="jxr_javadoccomment">     * @param counter</em>
<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a> <em class="jxr_javadoccomment">     * @param xmlTag</em>
<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2132" href="#L2132">2132</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> updateSite( Site value, String xmlTag, Counter counter, Element element )
<a class="jxr_linenumber" name="L2133" href="#L2133">2133</a>     {
<a class="jxr_linenumber" name="L2134" href="#L2134">2134</a>         <strong class="jxr_keyword">boolean</strong> shouldExist = value != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L2135" href="#L2135">2135</a>         Element root = updateElement( counter, element, xmlTag, shouldExist );
<a class="jxr_linenumber" name="L2136" href="#L2136">2136</a>         <strong class="jxr_keyword">if</strong> ( shouldExist )
<a class="jxr_linenumber" name="L2137" href="#L2137">2137</a>         {
<a class="jxr_linenumber" name="L2138" href="#L2138">2138</a>             <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a> innerCount = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( counter.getDepth() + 1 );
<a class="jxr_linenumber" name="L2139" href="#L2139">2139</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"id"</span>, value.getId(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2140" href="#L2140">2140</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"name"</span>, value.getName(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2141" href="#L2141">2141</a>             findAndReplaceSimpleElement( innerCount, root, <span class="jxr_string">"url"</span>, value.getUrl(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L2142" href="#L2142">2142</a>         }
<a class="jxr_linenumber" name="L2143" href="#L2143">2143</a>     } <em class="jxr_comment">// -- void updateSite(Site, String, Counter, Element)</em>
<a class="jxr_linenumber" name="L2144" href="#L2144">2144</a> 
<a class="jxr_linenumber" name="L2145" href="#L2145">2145</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2146" href="#L2146">2146</a> <em class="jxr_javadoccomment">     * Method write</em>
<a class="jxr_linenumber" name="L2147" href="#L2147">2147</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2148" href="#L2148">2148</a> <em class="jxr_javadoccomment">     * @param project</em>
<a class="jxr_linenumber" name="L2149" href="#L2149">2149</a> <em class="jxr_javadoccomment">     * @param stream</em>
<a class="jxr_linenumber" name="L2150" href="#L2150">2150</a> <em class="jxr_javadoccomment">     * @param document</em>
<a class="jxr_linenumber" name="L2151" href="#L2151">2151</a> <em class="jxr_javadoccomment">     * @deprecated</em>
<a class="jxr_linenumber" name="L2152" href="#L2152">2152</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2153" href="#L2153">2153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> write( Model project, Document document, OutputStream stream )
<a class="jxr_linenumber" name="L2154" href="#L2154">2154</a>         <strong class="jxr_keyword">throws</strong> java.io.IOException
<a class="jxr_linenumber" name="L2155" href="#L2155">2155</a>     {
<a class="jxr_linenumber" name="L2156" href="#L2156">2156</a>         updateModel( project, <span class="jxr_string">"project"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( 0 ), document.getRootElement() );
<a class="jxr_linenumber" name="L2157" href="#L2157">2157</a>         XMLOutputter outputter = <strong class="jxr_keyword">new</strong> XMLOutputter();
<a class="jxr_linenumber" name="L2158" href="#L2158">2158</a>         Format format = Format.getPrettyFormat();
<a class="jxr_linenumber" name="L2159" href="#L2159">2159</a>         format.setIndent( <span class="jxr_string">"    "</span> ).setLineSeparator( System.getProperty( <span class="jxr_string">"line.separator"</span> ) );
<a class="jxr_linenumber" name="L2160" href="#L2160">2160</a>         outputter.setFormat( format );
<a class="jxr_linenumber" name="L2161" href="#L2161">2161</a>         outputter.output( document, stream );
<a class="jxr_linenumber" name="L2162" href="#L2162">2162</a>     } <em class="jxr_comment">// -- void write(Model, Document, OutputStream)</em>
<a class="jxr_linenumber" name="L2163" href="#L2163">2163</a> 
<a class="jxr_linenumber" name="L2164" href="#L2164">2164</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2165" href="#L2165">2165</a> <em class="jxr_javadoccomment">     * Method write</em>
<a class="jxr_linenumber" name="L2166" href="#L2166">2166</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2167" href="#L2167">2167</a> <em class="jxr_javadoccomment">     * @param project</em>
<a class="jxr_linenumber" name="L2168" href="#L2168">2168</a> <em class="jxr_javadoccomment">     * @param writer</em>
<a class="jxr_linenumber" name="L2169" href="#L2169">2169</a> <em class="jxr_javadoccomment">     * @param document</em>
<a class="jxr_linenumber" name="L2170" href="#L2170">2170</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2171" href="#L2171">2171</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> write( Model project, Document document, OutputStreamWriter writer )
<a class="jxr_linenumber" name="L2172" href="#L2172">2172</a>         <strong class="jxr_keyword">throws</strong> java.io.IOException
<a class="jxr_linenumber" name="L2173" href="#L2173">2173</a>     {
<a class="jxr_linenumber" name="L2174" href="#L2174">2174</a>         Format format = Format.getRawFormat();
<a class="jxr_linenumber" name="L2175" href="#L2175">2175</a>         format.setEncoding( writer.getEncoding() ).setLineSeparator( System.getProperty( <span class="jxr_string">"line.separator"</span> ) );
<a class="jxr_linenumber" name="L2176" href="#L2176">2176</a>         write( project, document, writer, format );
<a class="jxr_linenumber" name="L2177" href="#L2177">2177</a>     } <em class="jxr_comment">// -- void write(Model, Document, OutputStreamWriter)</em>
<a class="jxr_linenumber" name="L2178" href="#L2178">2178</a> 
<a class="jxr_linenumber" name="L2179" href="#L2179">2179</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2180" href="#L2180">2180</a> <em class="jxr_javadoccomment">     * Method write</em>
<a class="jxr_linenumber" name="L2181" href="#L2181">2181</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L2182" href="#L2182">2182</a> <em class="jxr_javadoccomment">     * @param project</em>
<a class="jxr_linenumber" name="L2183" href="#L2183">2183</a> <em class="jxr_javadoccomment">     * @param jdomFormat</em>
<a class="jxr_linenumber" name="L2184" href="#L2184">2184</a> <em class="jxr_javadoccomment">     * @param writer</em>
<a class="jxr_linenumber" name="L2185" href="#L2185">2185</a> <em class="jxr_javadoccomment">     * @param document</em>
<a class="jxr_linenumber" name="L2186" href="#L2186">2186</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2187" href="#L2187">2187</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> write( Model project, Document document, Writer writer, Format jdomFormat )
<a class="jxr_linenumber" name="L2188" href="#L2188">2188</a>         <strong class="jxr_keyword">throws</strong> java.io.IOException
<a class="jxr_linenumber" name="L2189" href="#L2189">2189</a>     {
<a class="jxr_linenumber" name="L2190" href="#L2190">2190</a>         updateModel( project, <span class="jxr_string">"project"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/felix/bundleplugin/pom/Counter.html">Counter</a>( 0 ), document.getRootElement() );
<a class="jxr_linenumber" name="L2191" href="#L2191">2191</a>         XMLOutputter outputter = <strong class="jxr_keyword">new</strong> XMLOutputter();
<a class="jxr_linenumber" name="L2192" href="#L2192">2192</a>         outputter.setFormat( jdomFormat );
<a class="jxr_linenumber" name="L2193" href="#L2193">2193</a>         outputter.output( document, writer );
<a class="jxr_linenumber" name="L2194" href="#L2194">2194</a>     } <em class="jxr_comment">// -- void write(Model, Document, Writer, Format)</em>
<a class="jxr_linenumber" name="L2195" href="#L2195">2195</a> 
<a class="jxr_linenumber" name="L2196" href="#L2196">2196</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2015 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>