| package org.apache.maven.archetype.common; |
| |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| /* |
| * $Id$ |
| */ |
| |
| // ---------------------------------/ |
| // - Imported classes and packages -/ |
| // ---------------------------------/ |
| |
| import org.apache.maven.archetype.common.util.Format; |
| import org.apache.maven.archetype.common.util.XMLOutputter; |
| import org.apache.maven.model.Activation; |
| import org.apache.maven.model.ActivationFile; |
| import org.apache.maven.model.ActivationOS; |
| import org.apache.maven.model.ActivationProperty; |
| import org.apache.maven.model.Build; |
| import org.apache.maven.model.BuildBase; |
| import org.apache.maven.model.CiManagement; |
| import org.apache.maven.model.ConfigurationContainer; |
| import org.apache.maven.model.Contributor; |
| import org.apache.maven.model.Dependency; |
| import org.apache.maven.model.DependencyManagement; |
| import org.apache.maven.model.DeploymentRepository; |
| import org.apache.maven.model.Developer; |
| import org.apache.maven.model.DistributionManagement; |
| import org.apache.maven.model.Exclusion; |
| import org.apache.maven.model.Extension; |
| import org.apache.maven.model.FileSet; |
| import org.apache.maven.model.IssueManagement; |
| import org.apache.maven.model.License; |
| import org.apache.maven.model.MailingList; |
| import org.apache.maven.model.Model; |
| import org.apache.maven.model.ModelBase; |
| import org.apache.maven.model.Notifier; |
| import org.apache.maven.model.Organization; |
| import org.apache.maven.model.Parent; |
| import org.apache.maven.model.PatternSet; |
| import org.apache.maven.model.Plugin; |
| import org.apache.maven.model.PluginConfiguration; |
| import org.apache.maven.model.PluginContainer; |
| import org.apache.maven.model.PluginExecution; |
| import org.apache.maven.model.PluginManagement; |
| import org.apache.maven.model.Prerequisites; |
| import org.apache.maven.model.Profile; |
| import org.apache.maven.model.Relocation; |
| import org.apache.maven.model.ReportPlugin; |
| import org.apache.maven.model.ReportSet; |
| import org.apache.maven.model.Reporting; |
| import org.apache.maven.model.Repository; |
| import org.apache.maven.model.RepositoryBase; |
| import org.apache.maven.model.RepositoryPolicy; |
| import org.apache.maven.model.Resource; |
| import org.apache.maven.model.Scm; |
| import org.apache.maven.model.Site; |
| import org.codehaus.plexus.util.xml.Xpp3Dom; |
| import org.jdom.Content; |
| import org.jdom.DefaultJDOMFactory; |
| import org.jdom.Document; |
| import org.jdom.Element; |
| import org.jdom.Text; |
| |
| import java.io.OutputStream; |
| import java.io.OutputStreamWriter; |
| import java.io.Writer; |
| import java.util.ArrayList; |
| import java.util.Collection; |
| import java.util.Iterator; |
| import java.util.List; |
| import java.util.ListIterator; |
| import java.util.Map; |
| |
| /** |
| * Class MavenJDOMWriter. |
| */ |
| public class MavenJDOMWriter |
| { |
| // --------------------------/ |
| // - Class/Member Variables -/ |
| // --------------------------/ |
| |
| /** |
| * Field factory. |
| */ |
| private DefaultJDOMFactory factory; |
| |
| /** |
| * Field lineSeparator. |
| */ |
| private String lineSeparator; |
| |
| private static final String LS = System.getProperty( "line.separator" ); |
| |
| // ----------------/ |
| // - Constructors -/ |
| // ----------------/ |
| |
| public MavenJDOMWriter() |
| { |
| factory = new DefaultJDOMFactory(); |
| lineSeparator = "\n"; |
| } // -- org.apache.maven.model.io.jdom.MavenJDOMWriter() |
| |
| /** |
| * Method write. |
| * |
| * @param project |
| * @param stream |
| * @param document |
| * @deprecated |
| */ |
| @Deprecated |
| public void write( Model project, Document document, OutputStream stream ) |
| throws java.io.IOException |
| { |
| updateModel( project, "project", new Counter( 0 ), document.getRootElement() ); |
| |
| XMLOutputter outputter = new XMLOutputter(); |
| outputter.setFormat( Format.getPrettyFormat().setIndent( " " ).setLineSeparator( LS ) ); |
| outputter.output( document, stream ); |
| } // -- void write(Model, Document, OutputStream) |
| |
| /** |
| * Method write. |
| * |
| * @param project |
| * @param writer |
| * @param document |
| */ |
| public void write( Model project, Document document, OutputStreamWriter writer ) |
| throws java.io.IOException |
| { |
| Format format = Format.getRawFormat().setEncoding( writer.getEncoding() ).setLineSeparator( LS ); |
| write( project, document, writer, format ); |
| } // -- void write(Model, Document, OutputStreamWriter) |
| |
| /** |
| * Method write. |
| * |
| * @param project |
| * @param jdomFormat |
| * @param writer |
| * @param document |
| */ |
| public void write( Model project, Document document, Writer writer, Format jdomFormat ) |
| throws java.io.IOException |
| { |
| updateModel( project, "project", new Counter( 0 ), document.getRootElement() ); |
| |
| XMLOutputter outputter = new XMLOutputter(); |
| outputter.setFormat( jdomFormat ); |
| outputter.output( document, writer ); |
| } // -- void write(Model, Document, Writer, Format) |
| |
| // -----------/ |
| // - Methods -/ |
| // -----------/ |
| |
| /** |
| * Method findAndReplaceProperties. |
| * |
| * @param counter |
| * @param props |
| * @param name |
| * @param parent |
| */ |
| protected Element findAndReplaceProperties( Counter counter, Element parent, String name, Map props ) |
| { |
| boolean shouldExist = ( props != null ) && !props.isEmpty(); |
| Element element = updateElement( counter, parent, name, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = props.keySet().iterator(); |
| Counter innerCounter = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| String key = (String) it.next(); |
| findAndReplaceSimpleElement( innerCounter, element, key, (String) props.get( key ), null ); |
| } |
| |
| List<String> lst = new ArrayList<>( props.keySet() ); |
| it = element.getChildren().iterator(); |
| while ( it.hasNext() ) |
| { |
| Element elem = (Element) it.next(); |
| String key = elem.getName(); |
| if ( !lst.contains( key ) ) |
| { |
| it.remove(); |
| } |
| } |
| } |
| return element; |
| } // -- Element findAndReplaceProperties(Counter, Element, String, Map) |
| |
| /** |
| * Method findAndReplaceSimpleElement. |
| * |
| * @param counter |
| * @param defaultValue |
| * @param text |
| * @param name |
| * @param parent |
| */ |
| protected Element findAndReplaceSimpleElement( Counter counter, Element parent, String name, String text, |
| String defaultValue ) |
| { |
| if ( ( defaultValue != null ) && ( text != null ) && defaultValue.equals( text ) ) |
| { |
| Element element = parent.getChild( name, parent.getNamespace() ); |
| // if exist and is default value or if doesn't exist.. just keep the way it is.. |
| if ( ( ( element != null ) && defaultValue.equals( element.getText() ) ) || ( element == null ) ) |
| { |
| return element; |
| } |
| } |
| |
| boolean shouldExist = ( text != null ) && ( text.trim().length() > 0 ); |
| Element element = updateElement( counter, parent, name, shouldExist ); |
| if ( shouldExist ) |
| { |
| element.setText( text ); |
| } |
| return element; |
| } // -- Element findAndReplaceSimpleElement(Counter, Element, String, String, String) |
| |
| /** |
| * Method findAndReplaceSimpleLists. |
| * |
| * @param counter |
| * @param childName |
| * @param parentName |
| * @param list |
| * @param parent |
| */ |
| protected Element findAndReplaceSimpleLists( Counter counter, Element parent, java.util.Collection list, |
| String parentName, String childName ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentName, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childName, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| String value = (String) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childName, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| el.setText( value ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| return element; |
| } // -- Element findAndReplaceSimpleLists(Counter, Element, java.util.Collection, String, |
| // String) |
| |
| /** |
| * Method findAndReplaceXpp3DOM. |
| * |
| * @param counter |
| * @param dom |
| * @param name |
| * @param parent |
| */ |
| protected Element findAndReplaceXpp3DOM( Counter counter, Element parent, String name, Xpp3Dom dom ) |
| { |
| boolean shouldExist = ( dom != null ) && ( ( dom.getChildCount() > 0 ) || ( dom.getValue() != null ) ); |
| Element element = updateElement( counter, parent, name, shouldExist ); |
| if ( shouldExist ) |
| { |
| replaceXpp3DOM( element, dom, new Counter( counter.getDepth() + 1 ) ); |
| } |
| return element; |
| } // -- Element findAndReplaceXpp3DOM(Counter, Element, String, Xpp3Dom) |
| |
| /** |
| * Method insertAtPreferredLocation. |
| * |
| * @param parent |
| * @param counter |
| * @param child |
| */ |
| protected void insertAtPreferredLocation( Element parent, Element child, Counter counter ) |
| { |
| int contentIndex = 0; |
| int elementCounter = 0; |
| Iterator it = parent.getContent().iterator(); |
| Text lastText = null; |
| int offset = 0; |
| while ( it.hasNext() && ( elementCounter <= counter.getCurrentIndex() ) ) |
| { |
| Object next = it.next(); |
| offset = offset + 1; |
| if ( next instanceof Element ) |
| { |
| elementCounter = elementCounter + 1; |
| contentIndex = contentIndex + offset; |
| offset = 0; |
| } |
| if ( ( next instanceof Text ) && it.hasNext() ) |
| { |
| lastText = (Text) next; |
| } |
| } |
| if ( ( lastText != null ) && ( lastText.getTextTrim().length() == 0 ) ) |
| { |
| lastText = (Text) lastText.clone(); |
| } |
| else |
| { |
| StringBuilder starter = new StringBuilder( lineSeparator ); |
| for ( int i = 0; i < counter.getDepth(); i++ ) |
| { |
| starter.append( " " ); // TODO make settable? |
| } |
| lastText = factory.text( starter.toString() ); |
| } |
| if ( parent.getContentSize() == 0 ) |
| { |
| Text finalText = (Text) lastText.clone(); |
| finalText.setText( finalText.getText().substring( 0, finalText.getText().length() - " ".length() ) ); |
| parent.addContent( contentIndex, finalText ); |
| } |
| parent.addContent( contentIndex, child ); |
| parent.addContent( contentIndex, lastText ); |
| } // -- void insertAtPreferredLocation(Element, Element, Counter) |
| |
| /** |
| * Method iterateContributor. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateContributor( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Contributor value = (Contributor) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateContributor( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateContributor(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateDependency. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateDependency( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Dependency value = (Dependency) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateDependency( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateDependency(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateDeveloper. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateDeveloper( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Developer value = (Developer) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateDeveloper( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateDeveloper(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateExclusion. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateExclusion( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Exclusion value = (Exclusion) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateExclusion( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateExclusion(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateExtension. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateExtension( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Extension value = (Extension) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateExtension( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateExtension(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateLicense. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateLicense( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| License value = (License) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateLicense( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateLicense(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateMailingList. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateMailingList( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| MailingList value = (MailingList) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateMailingList( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateMailingList(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateNotifier. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateNotifier( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Notifier value = (Notifier) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateNotifier( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateNotifier(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iteratePlugin. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iteratePlugin( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Plugin value = (Plugin) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updatePlugin( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iteratePlugin(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iteratePluginExecution. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iteratePluginExecution( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| PluginExecution value = (PluginExecution) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updatePluginExecution( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iteratePluginExecution(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateProfile. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateProfile( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Profile value = (Profile) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateProfile( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateProfile(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateReportPlugin. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateReportPlugin( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| ReportPlugin value = (ReportPlugin) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateReportPlugin( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateReportPlugin(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateReportSet. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateReportSet( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| ReportSet value = (ReportSet) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateReportSet( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateReportSet(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateRepository. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateRepository( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Repository value = (Repository) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateRepository( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateRepository(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method iterateResource. |
| * |
| * @param counter |
| * @param childTag |
| * @param parentTag |
| * @param list |
| * @param parent |
| */ |
| protected void iterateResource( Counter counter, Element parent, java.util.Collection list, |
| java.lang.String parentTag, java.lang.String childTag ) |
| { |
| boolean shouldExist = ( list != null ) && ( list.size() > 0 ); |
| Element element = updateElement( counter, parent, parentTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Iterator it = list.iterator(); |
| Iterator elIt = element.getChildren( childTag, element.getNamespace() ).iterator(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| while ( it.hasNext() ) |
| { |
| Resource value = (Resource) it.next(); |
| Element el; |
| if ( ( elIt != null ) && elIt.hasNext() ) |
| { |
| el = (Element) elIt.next(); |
| if ( !elIt.hasNext() ) |
| { |
| elIt = null; |
| } |
| } |
| else |
| { |
| el = factory.element( childTag, element.getNamespace() ); |
| insertAtPreferredLocation( element, el, innerCount ); |
| } |
| updateResource( value, childTag, innerCount, el ); |
| innerCount.increaseCount(); |
| } |
| if ( elIt != null ) |
| { |
| while ( elIt.hasNext() ) |
| { |
| elIt.next(); |
| elIt.remove(); |
| } |
| } |
| } |
| } // -- void iterateResource(Counter, Element, java.util.Collection, java.lang.String, |
| // java.lang.String) |
| |
| /** |
| * Method replaceXpp3DOM. |
| * |
| * @param parent |
| * @param counter |
| * @param parentDom |
| */ |
| protected void replaceXpp3DOM( Element parent, Xpp3Dom parentDom, Counter counter ) |
| { |
| if ( parentDom.getChildCount() > 0 ) |
| { |
| Xpp3Dom[] childs = parentDom.getChildren(); |
| Collection domChilds = new ArrayList(); |
| for ( int i = 0; i < childs.length; i++ ) |
| { |
| domChilds.add( childs[i] ); |
| } |
| |
| int domIndex = 0; |
| ListIterator it = parent.getChildren().listIterator(); |
| while ( it.hasNext() ) |
| { |
| Element elem = (Element) it.next(); |
| Iterator it2 = domChilds.iterator(); |
| Xpp3Dom corrDom = null; |
| while ( it2.hasNext() ) |
| { |
| Xpp3Dom dm = (Xpp3Dom) it2.next(); |
| if ( dm.getName().equals( elem.getName() ) ) |
| { |
| corrDom = dm; |
| break; |
| } |
| } |
| if ( corrDom != null ) |
| { |
| domChilds.remove( corrDom ); |
| replaceXpp3DOM( elem, corrDom, new Counter( counter.getDepth() + 1 ) ); |
| counter.increaseCount(); |
| } |
| else |
| { |
| parent.removeContent( elem ); |
| } |
| } |
| |
| Iterator it2 = domChilds.iterator(); |
| while ( it2.hasNext() ) |
| { |
| Xpp3Dom dm = (Xpp3Dom) it2.next(); |
| Element elem = factory.element( dm.getName(), parent.getNamespace() ); |
| insertAtPreferredLocation( parent, elem, counter ); |
| counter.increaseCount(); |
| replaceXpp3DOM( elem, dm, new Counter( counter.getDepth() + 1 ) ); |
| } |
| } |
| else if ( parentDom.getValue() != null ) |
| { |
| parent.setText( parentDom.getValue() ); |
| } |
| } // -- void replaceXpp3DOM(Element, Xpp3Dom, Counter) |
| |
| /** |
| * Method updateActivation. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateActivation( Activation value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "activeByDefault", ( value.isActiveByDefault() == false ) |
| ? null |
| : String.valueOf( value.isActiveByDefault() ), "false" ); |
| findAndReplaceSimpleElement( innerCount, root, "jdk", value.getJdk(), null ); |
| updateActivationOS( value.getOs(), "os", innerCount, root ); |
| updateActivationProperty( value.getProperty(), "property", innerCount, root ); |
| updateActivationFile( value.getFile(), "file", innerCount, root ); |
| } |
| } // -- void updateActivation(Activation, String, Counter, Element) |
| |
| /** |
| * Method updateActivationFile. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateActivationFile( ActivationFile value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "missing", value.getMissing(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "exists", value.getExists(), null ); |
| } |
| } // -- void updateActivationFile(ActivationFile, String, Counter, Element) |
| |
| /** |
| * Method updateActivationOS. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateActivationOS( ActivationOS value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "family", value.getFamily(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "arch", value.getArch(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| } |
| } // -- void updateActivationOS(ActivationOS, String, Counter, Element) |
| |
| /** |
| * Method updateActivationProperty. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateActivationProperty( ActivationProperty value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "value", value.getValue(), null ); |
| } |
| } // -- void updateActivationProperty(ActivationProperty, String, Counter, Element) |
| |
| /** |
| * Method updateBuild. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateBuild( Build value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "sourceDirectory", value.getSourceDirectory(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "scriptSourceDirectory", value.getScriptSourceDirectory(), |
| null ); |
| findAndReplaceSimpleElement( innerCount, root, "testSourceDirectory", value.getTestSourceDirectory(), |
| null ); |
| findAndReplaceSimpleElement( innerCount, root, "outputDirectory", value.getOutputDirectory(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "testOutputDirectory", value.getTestOutputDirectory(), |
| null ); |
| iterateExtension( innerCount, root, value.getExtensions(), "extensions", "extension" ); |
| findAndReplaceSimpleElement( innerCount, root, "defaultGoal", value.getDefaultGoal(), null ); |
| iterateResource( innerCount, root, value.getResources(), "resources", "resource" ); |
| iterateResource( innerCount, root, value.getTestResources(), "testResources", "testResource" ); |
| findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "finalName", value.getFinalName(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getFilters(), "filters", "filter" ); |
| updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); |
| iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } // end if |
| } // -- void updateBuild(Build, String, Counter, Element) |
| |
| /** |
| * Method updateBuildBase. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateBuildBase( BuildBase value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "defaultGoal", value.getDefaultGoal(), null ); |
| iterateResource( innerCount, root, value.getResources(), "resources", "resource" ); |
| iterateResource( innerCount, root, value.getTestResources(), "testResources", "testResource" ); |
| findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "finalName", value.getFinalName(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getFilters(), "filters", "filter" ); |
| updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); |
| iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } |
| } // -- void updateBuildBase(BuildBase, String, Counter, Element) |
| |
| /** |
| * Method updateCiManagement. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateCiManagement( CiManagement value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| iterateNotifier( innerCount, root, value.getNotifiers(), "notifiers", "notifier" ); |
| } |
| } // -- void updateCiManagement(CiManagement, String, Counter, Element) |
| |
| /** |
| * Method updateConfigurationContainer. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateConfigurationContainer( ConfigurationContainer value, String xmlTag, Counter counter, |
| Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); |
| findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); |
| } |
| } // -- void updateConfigurationContainer(ConfigurationContainer, String, Counter, Element) |
| |
| /** |
| * Method updateContributor. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateContributor( Contributor value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "organization", value.getOrganization(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "organizationUrl", value.getOrganizationUrl(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" ); |
| findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null ); |
| findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); |
| } // -- void updateContributor(Contributor, String, Counter, Element) |
| |
| /** |
| * Method updateDependency. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateDependency( Dependency value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "jar" ); |
| findAndReplaceSimpleElement( innerCount, root, "classifier", value.getClassifier(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "scope", value.getScope(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "systemPath", value.getSystemPath(), null ); |
| iterateExclusion( innerCount, root, value.getExclusions(), "exclusions", "exclusion" ); |
| findAndReplaceSimpleElement( innerCount, root, "optional", |
| ( value.isOptional() == false ) ? null : String.valueOf( value.isOptional() ), |
| "false" ); |
| } // -- void updateDependency(Dependency, String, Counter, Element) |
| |
| /** |
| * Method updateDependencyManagement. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateDependencyManagement( DependencyManagement value, String xmlTag, Counter counter, |
| Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); |
| } |
| } // -- void updateDependencyManagement(DependencyManagement, String, Counter, Element) |
| |
| /** |
| * Method updateDeploymentRepository. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateDeploymentRepository( DeploymentRepository value, String xmlTag, Counter counter, |
| Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "uniqueVersion", ( value.isUniqueVersion() == true ) |
| ? null |
| : String.valueOf( value.isUniqueVersion() ), "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); |
| } |
| } // -- void updateDeploymentRepository(DeploymentRepository, String, Counter, Element) |
| |
| /** |
| * Method updateDeveloper. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateDeveloper( Developer value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "email", value.getEmail(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "organization", value.getOrganization(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "organizationUrl", value.getOrganizationUrl(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" ); |
| findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null ); |
| findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); |
| } // -- void updateDeveloper(Developer, String, Counter, Element) |
| |
| /** |
| * Method updateDistributionManagement. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateDistributionManagement( DistributionManagement value, String xmlTag, Counter counter, |
| Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| updateDeploymentRepository( value.getRepository(), "repository", innerCount, root ); |
| updateDeploymentRepository( value.getSnapshotRepository(), "snapshotRepository", innerCount, root ); |
| updateSite( value.getSite(), "site", innerCount, root ); |
| findAndReplaceSimpleElement( innerCount, root, "downloadUrl", value.getDownloadUrl(), null ); |
| updateRelocation( value.getRelocation(), "relocation", innerCount, root ); |
| findAndReplaceSimpleElement( innerCount, root, "status", value.getStatus(), null ); |
| } |
| } // -- void updateDistributionManagement(DistributionManagement, String, Counter, Element) |
| |
| /** |
| * Method updateElement. |
| * |
| * @param counter |
| * @param shouldExist |
| * @param name |
| * @param parent |
| */ |
| protected Element updateElement( Counter counter, Element parent, String name, boolean shouldExist ) |
| { |
| Element element = parent.getChild( name, parent.getNamespace() ); |
| if ( ( element != null ) && shouldExist ) |
| { |
| counter.increaseCount(); |
| } |
| if ( ( element == null ) && shouldExist ) |
| { |
| element = factory.element( name, parent.getNamespace() ); |
| insertAtPreferredLocation( parent, element, counter ); |
| counter.increaseCount(); |
| } |
| if ( !shouldExist && ( element != null ) ) |
| { |
| int index = parent.indexOf( element ); |
| if ( index > 0 ) |
| { |
| Content previous = parent.getContent( index - 1 ); |
| if ( previous instanceof Text ) |
| { |
| Text txt = (Text) previous; |
| if ( txt.getTextTrim().length() == 0 ) |
| { |
| parent.removeContent( txt ); |
| } |
| } |
| } |
| parent.removeContent( element ); |
| } |
| return element; |
| } // -- Element updateElement(Counter, Element, String, boolean) |
| |
| /** |
| * Method updateExclusion. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateExclusion( Exclusion value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| } // -- void updateExclusion(Exclusion, String, Counter, Element) |
| |
| /** |
| * Method updateExtension. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateExtension( Extension value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| } // -- void updateExtension(Extension, String, Counter, Element) |
| |
| /** |
| * Method updateFileSet. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateFileSet( FileSet value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); |
| findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); |
| } |
| } // -- void updateFileSet(FileSet, String, Counter, Element) |
| |
| /** |
| * Method updateIssueManagement. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateIssueManagement( IssueManagement value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| } |
| } // -- void updateIssueManagement(IssueManagement, String, Counter, Element) |
| |
| /** |
| * Method updateLicense. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateLicense( License value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "distribution", value.getDistribution(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "comments", value.getComments(), null ); |
| } // -- void updateLicense(License, String, Counter, Element) |
| |
| /** |
| * Method updateMailingList. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateMailingList( MailingList value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "subscribe", value.getSubscribe(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "unsubscribe", value.getUnsubscribe(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "post", value.getPost(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "archive", value.getArchive(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getOtherArchives(), "otherArchives", "otherArchive" ); |
| } // -- void updateMailingList(MailingList, String, Counter, Element) |
| |
| /** |
| * Method updateModel. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateModel( Model value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| updateParent( value.getParent(), "parent", innerCount, root ); |
| findAndReplaceSimpleElement( innerCount, root, "modelVersion", value.getModelVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "packaging", value.getPackaging(), "jar" ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "description", value.getDescription(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| updatePrerequisites( value.getPrerequisites(), "prerequisites", innerCount, root ); |
| updateIssueManagement( value.getIssueManagement(), "issueManagement", innerCount, root ); |
| updateCiManagement( value.getCiManagement(), "ciManagement", innerCount, root ); |
| findAndReplaceSimpleElement( innerCount, root, "inceptionYear", value.getInceptionYear(), null ); |
| iterateMailingList( innerCount, root, value.getMailingLists(), "mailingLists", "mailingList" ); |
| iterateDeveloper( innerCount, root, value.getDevelopers(), "developers", "developer" ); |
| iterateContributor( innerCount, root, value.getContributors(), "contributors", "contributor" ); |
| iterateLicense( innerCount, root, value.getLicenses(), "licenses", "license" ); |
| updateScm( value.getScm(), "scm", innerCount, root ); |
| updateOrganization( value.getOrganization(), "organization", innerCount, root ); |
| updateBuild( value.getBuild(), "build", innerCount, root ); |
| iterateProfile( innerCount, root, value.getProfiles(), "profiles", "profile" ); |
| findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); |
| iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); |
| iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", "pluginRepository" ); |
| iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); |
| findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); |
| updateReporting( value.getReporting(), "reporting", innerCount, root ); |
| updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); |
| updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root ); |
| findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); |
| } // -- void updateModel(Model, String, Counter, Element) |
| |
| /** |
| * Method updateModelBase. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateModelBase( ModelBase value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); |
| iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); |
| iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", |
| "pluginRepository" ); |
| iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); |
| findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); |
| updateReporting( value.getReporting(), "reporting", innerCount, root ); |
| updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); |
| updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, |
| root ); |
| findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); |
| } |
| } // -- void updateModelBase(ModelBase, String, Counter, Element) |
| |
| /** |
| * Method updateNotifier. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateNotifier( Notifier value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "type", value.getType(), "mail" ); |
| findAndReplaceSimpleElement( innerCount, root, "sendOnError", |
| ( value.isSendOnError() == true ) ? null : String.valueOf( value.isSendOnError() ), |
| "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "sendOnFailure", ( value.isSendOnFailure() == true ) |
| ? null |
| : String.valueOf( value.isSendOnFailure() ), "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "sendOnSuccess", ( value.isSendOnSuccess() == true ) |
| ? null |
| : String.valueOf( value.isSendOnSuccess() ), "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "sendOnWarning", ( value.isSendOnWarning() == true ) |
| ? null |
| : String.valueOf( value.isSendOnWarning() ), "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "address", value.getAddress(), null ); |
| findAndReplaceProperties( innerCount, root, "configuration", value.getConfiguration() ); |
| } // -- void updateNotifier(Notifier, String, Counter, Element) |
| |
| /** |
| * Method updateOrganization. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateOrganization( Organization value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| } |
| } // -- void updateOrganization(Organization, String, Counter, Element) |
| |
| /** |
| * Method updateParent. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateParent( Parent value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "relativePath", value.getRelativePath(), "../pom.xml" ); |
| } |
| } // -- void updateParent(Parent, String, Counter, Element) |
| |
| /** |
| * Method updatePatternSet. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePatternSet( PatternSet value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); |
| findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); |
| } |
| } // -- void updatePatternSet(PatternSet, String, Counter, Element) |
| |
| /** |
| * Method updatePlugin. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePlugin( Plugin value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), "org.apache.maven.plugins" ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "extensions", |
| ( value.isExtensions() == false ) ? null : String.valueOf( value.isExtensions() ), |
| "false" ); |
| iteratePluginExecution( innerCount, root, value.getExecutions(), "executions", "execution" ); |
| iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); |
| findAndReplaceXpp3DOM( innerCount, root, "goals", (Xpp3Dom) value.getGoals() ); |
| findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); |
| findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); |
| } // -- void updatePlugin(Plugin, String, Counter, Element) |
| |
| /** |
| * Method updatePluginConfiguration. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePluginConfiguration( PluginConfiguration value, String xmlTag, Counter counter, |
| Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root ); |
| iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } |
| } // -- void updatePluginConfiguration(PluginConfiguration, String, Counter, Element) |
| |
| /** |
| * Method updatePluginContainer. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePluginContainer( PluginContainer value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } |
| } // -- void updatePluginContainer(PluginContainer, String, Counter, Element) |
| |
| /** |
| * Method updatePluginExecution. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePluginExecution( PluginExecution value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), "default" ); |
| findAndReplaceSimpleElement( innerCount, root, "phase", value.getPhase(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getGoals(), "goals", "goal" ); |
| findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); |
| findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); |
| } // -- void updatePluginExecution(PluginExecution, String, Counter, Element) |
| |
| /** |
| * Method updatePluginManagement. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePluginManagement( PluginManagement value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } |
| } // -- void updatePluginManagement(PluginManagement, String, Counter, Element) |
| |
| /** |
| * Method updatePrerequisites. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updatePrerequisites( Prerequisites value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "maven", value.getMaven(), "2.0" ); |
| } |
| } // -- void updatePrerequisites(Prerequisites, String, Counter, Element) |
| |
| /** |
| * Method updateProfile. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateProfile( Profile value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| updateActivation( value.getActivation(), "activation", innerCount, root ); |
| updateBuildBase( value.getBuild(), "build", innerCount, root ); |
| findAndReplaceSimpleLists( innerCount, root, value.getModules(), "modules", "module" ); |
| iterateRepository( innerCount, root, value.getRepositories(), "repositories", "repository" ); |
| iterateRepository( innerCount, root, value.getPluginRepositories(), "pluginRepositories", "pluginRepository" ); |
| iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" ); |
| findAndReplaceXpp3DOM( innerCount, root, "reports", (Xpp3Dom) value.getReports() ); |
| updateReporting( value.getReporting(), "reporting", innerCount, root ); |
| updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root ); |
| updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root ); |
| findAndReplaceProperties( innerCount, root, "properties", value.getProperties() ); |
| } // -- void updateProfile(Profile, String, Counter, Element) |
| |
| /** |
| * Method updateRelocation. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateRelocation( Relocation value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "message", value.getMessage(), null ); |
| } |
| } // -- void updateRelocation(Relocation, String, Counter, Element) |
| |
| /** |
| * Method updateReporting. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateReporting( Reporting value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "excludeDefaults", ( value.isExcludeDefaults() == false ) |
| ? null |
| : String.valueOf( value.isExcludeDefaults() ), "false" ); |
| findAndReplaceSimpleElement( innerCount, root, "outputDirectory", value.getOutputDirectory(), null ); |
| iterateReportPlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" ); |
| } |
| } // -- void updateReporting(Reporting, String, Counter, Element) |
| |
| /** |
| * Method updateReportPlugin. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateReportPlugin( ReportPlugin value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), "org.apache.maven.plugins" ); |
| findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); |
| findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); |
| iterateReportSet( innerCount, root, value.getReportSets(), "reportSets", "reportSet" ); |
| } // -- void updateReportPlugin(ReportPlugin, String, Counter, Element) |
| |
| /** |
| * Method updateReportSet. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateReportSet( ReportSet value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), "default" ); |
| findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() ); |
| findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getReports(), "reports", "report" ); |
| } // -- void updateReportSet(ReportSet, String, Counter, Element) |
| |
| /** |
| * Method updateRepository. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateRepository( Repository value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| updateRepositoryPolicy( value.getReleases(), "releases", innerCount, root ); |
| updateRepositoryPolicy( value.getSnapshots(), "snapshots", innerCount, root ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); |
| } // -- void updateRepository(Repository, String, Counter, Element) |
| |
| /** |
| * Method updateRepositoryBase. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateRepositoryBase( RepositoryBase value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" ); |
| } |
| } // -- void updateRepositoryBase(RepositoryBase, String, Counter, Element) |
| |
| /** |
| * Method updateRepositoryPolicy. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateRepositoryPolicy( RepositoryPolicy value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "enabled", |
| ( value.isEnabled() == true ) ? null : String.valueOf( value.isEnabled() ), |
| "true" ); |
| findAndReplaceSimpleElement( innerCount, root, "updatePolicy", value.getUpdatePolicy(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "checksumPolicy", value.getChecksumPolicy(), null ); |
| } |
| } // -- void updateRepositoryPolicy(RepositoryPolicy, String, Counter, Element) |
| |
| /** |
| * Method updateResource. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateResource( Resource value, String xmlTag, Counter counter, Element element ) |
| { |
| Element root = element; |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "targetPath", value.getTargetPath(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "filtering", |
| ( value.isFiltering() == false ) ? null : String.valueOf( value.isFiltering() ), |
| "false" ); |
| findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null ); |
| findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" ); |
| findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" ); |
| } // -- void updateResource(Resource, String, Counter, Element) |
| |
| /** |
| * Method updateScm. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateScm( Scm value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "connection", value.getConnection(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "developerConnection", value.getDeveloperConnection(), |
| null ); |
| findAndReplaceSimpleElement( innerCount, root, "tag", value.getTag(), "HEAD" ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| } |
| } // -- void updateScm(Scm, String, Counter, Element) |
| |
| /** |
| * Method updateSite. |
| * |
| * @param value |
| * @param element |
| * @param counter |
| * @param xmlTag |
| */ |
| protected void updateSite( Site value, String xmlTag, Counter counter, Element element ) |
| { |
| boolean shouldExist = value != null; |
| Element root = updateElement( counter, element, xmlTag, shouldExist ); |
| if ( shouldExist ) |
| { |
| Counter innerCount = new Counter( counter.getDepth() + 1 ); |
| findAndReplaceSimpleElement( innerCount, root, "id", value.getId(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null ); |
| findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null ); |
| } |
| } // -- void updateSite(Site, String, Counter, Element) |
| |
| // -----------------/ |
| // - Inner Classes -/ |
| // -----------------/ |
| |
| /** |
| * Class Counter. |
| */ |
| public class Counter |
| { |
| // --------------------------/ |
| // - Class/Member Variables -/ |
| // --------------------------/ |
| |
| /** |
| * Field currentIndex. |
| */ |
| private int currentIndex = 0; |
| |
| /** |
| * Field level. |
| */ |
| private int level; |
| |
| // ----------------/ |
| // - Constructors -/ |
| // ----------------/ |
| |
| public Counter( int depthLevel ) |
| { |
| level = depthLevel; |
| } // -- org.apache.maven.model.io.jdom.Counter(int) |
| |
| // -----------/ |
| // - Methods -/ |
| // -----------/ |
| |
| /** |
| * Method getCurrentIndex. |
| */ |
| public int getCurrentIndex() |
| { |
| return currentIndex; |
| } // -- int getCurrentIndex() |
| |
| /** |
| * Method getDepth. |
| */ |
| public int getDepth() |
| { |
| return level; |
| } // -- int getDepth() |
| |
| /** |
| * Method increaseCount. |
| */ |
| public void increaseCount() |
| { |
| currentIndex = currentIndex + 1; |
| } // -- void increaseCount() |
| } |
| } |