View Javadoc
1   /*
2    Licensed to the Apache Software Foundation (ASF) under one
3    or more contributor license agreements.  See the NOTICE file
4    distributed with this work for additional information
5    regarding copyright ownership.  The ASF licenses this file
6    to you under the Apache License, Version 2.0 (the
7    "License"); you may not use this file except in compliance
8    with the License.  You may obtain a copy of the License at
9    
10       http://www.apache.org/licenses/LICENSE-2.0
11   
12   Unless required by applicable law or agreed to in writing,
13   software distributed under the License is distributed on an
14   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   KIND, either express or implied.  See the License for the
16   specific language governing permissions and limitations
17   under the License.
18   =================== DO NOT EDIT THIS FILE ====================
19   Generated by Modello 2.4.0,
20   any modifications will be overwritten.
21   ==============================================================
22   */
23  
24  package org.apache.maven.archetype.model.io.xpp3;
25  
26    //---------------------------------/
27   //- Imported classes and packages -/
28  //---------------------------------/
29  
30  import java.io.OutputStream;
31  import java.io.Writer;
32  import java.util.Iterator;
33  import org.apache.maven.archetype.model.ArchetypeModel;
34  import org.apache.maven.archetype.model.Resource;
35  import org.apache.maven.archetype.model.Source;
36  import org.codehaus.plexus.util.xml.pull.MXSerializer;
37  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
38  
39  /**
40   * Class ArchetypeXpp3Writer.
41   * 
42   * @version $Revision$ $Date$
43   */
44  @SuppressWarnings( "all" )
45  public class ArchetypeXpp3Writer
46  {
47  
48        //--------------------------/
49       //- Class/Member Variables -/
50      //--------------------------/
51  
52      /**
53       * Field NAMESPACE.
54       */
55      private static final String NAMESPACE = null;
56  
57      /**
58       * Field fileComment.
59       */
60      private String fileComment = null;
61  
62  
63        //-----------/
64       //- Methods -/
65      //-----------/
66  
67      /**
68       * Method setFileComment.
69       * 
70       * @param fileComment a fileComment object.
71       */
72      public void setFileComment( String fileComment )
73      {
74          this.fileComment = fileComment;
75      } //-- void setFileComment( String )
76  
77      /**
78       * Method write.
79       * 
80       * @param writer a writer object.
81       * @param archetypeModel a archetypeModel object.
82       * @throws java.io.IOException java.io.IOException if any.
83       */
84      public void write( Writer writer, ArchetypeModel archetypeModel )
85          throws java.io.IOException
86      {
87          XmlSerializer serializer = new MXSerializer();
88          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
89          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
90          serializer.setOutput( writer );
91          serializer.startDocument( archetypeModel.getModelEncoding(), null );
92          writeArchetypeModel( archetypeModel, "archetype", serializer );
93          serializer.endDocument();
94      } //-- void write( Writer, ArchetypeModel )
95  
96      /**
97       * Method write.
98       * 
99       * @param stream a stream object.
100      * @param archetypeModel a archetypeModel object.
101      * @throws java.io.IOException java.io.IOException if any.
102      */
103     public void write( OutputStream stream, ArchetypeModel archetypeModel )
104         throws java.io.IOException
105     {
106         XmlSerializer serializer = new MXSerializer();
107         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
108         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
109         serializer.setOutput( stream, archetypeModel.getModelEncoding() );
110         serializer.startDocument( archetypeModel.getModelEncoding(), null );
111         writeArchetypeModel( archetypeModel, "archetype", serializer );
112         serializer.endDocument();
113     } //-- void write( OutputStream, ArchetypeModel )
114 
115     /**
116      * Method writeArchetypeModel.
117      * 
118      * @param archetypeModel a archetypeModel object.
119      * @param serializer a serializer object.
120      * @param tagName a tagName object.
121      * @throws java.io.IOException java.io.IOException if any.
122      */
123     private void writeArchetypeModel( ArchetypeModel archetypeModel, String tagName, XmlSerializer serializer )
124         throws java.io.IOException
125     {
126         if ( this.fileComment != null )
127         {
128         serializer.comment(this.fileComment);
129         }
130         serializer.setPrefix( "", "https://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" );
131         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
132         serializer.startTag( NAMESPACE, tagName );
133         serializer.attribute( "", "xsi:schemaLocation", "https://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 https://maven.apache.org/xsd/archetype-1.0.0.xsd" );
134         if ( archetypeModel.getId() != null )
135         {
136             serializer.startTag( NAMESPACE, "id" ).text( archetypeModel.getId() ).endTag( NAMESPACE, "id" );
137         }
138         if ( archetypeModel.isAllowPartial() != false )
139         {
140             serializer.startTag( NAMESPACE, "allowPartial" ).text( String.valueOf( archetypeModel.isAllowPartial() ) ).endTag( NAMESPACE, "allowPartial" );
141         }
142         if ( ( archetypeModel.getSources() != null ) && ( archetypeModel.getSources().size() > 0 ) )
143         {
144             serializer.startTag( NAMESPACE, "sources" );
145             for ( Iterator iter = archetypeModel.getSources().iterator(); iter.hasNext(); )
146             {
147                 Source o = (Source) iter.next();
148                 writeSource( o, "source", serializer );
149             }
150             serializer.endTag( NAMESPACE, "sources" );
151         }
152         if ( ( archetypeModel.getResources() != null ) && ( archetypeModel.getResources().size() > 0 ) )
153         {
154             serializer.startTag( NAMESPACE, "resources" );
155             for ( Iterator iter = archetypeModel.getResources().iterator(); iter.hasNext(); )
156             {
157                 Resource o = (Resource) iter.next();
158                 writeResource( o, "resource", serializer );
159             }
160             serializer.endTag( NAMESPACE, "resources" );
161         }
162         if ( ( archetypeModel.getTestSources() != null ) && ( archetypeModel.getTestSources().size() > 0 ) )
163         {
164             serializer.startTag( NAMESPACE, "testSources" );
165             for ( Iterator iter = archetypeModel.getTestSources().iterator(); iter.hasNext(); )
166             {
167                 Source o = (Source) iter.next();
168                 writeSource( o, "source", serializer );
169             }
170             serializer.endTag( NAMESPACE, "testSources" );
171         }
172         if ( ( archetypeModel.getTestResources() != null ) && ( archetypeModel.getTestResources().size() > 0 ) )
173         {
174             serializer.startTag( NAMESPACE, "testResources" );
175             for ( Iterator iter = archetypeModel.getTestResources().iterator(); iter.hasNext(); )
176             {
177                 Resource o = (Resource) iter.next();
178                 writeResource( o, "resource", serializer );
179             }
180             serializer.endTag( NAMESPACE, "testResources" );
181         }
182         if ( ( archetypeModel.getSiteResources() != null ) && ( archetypeModel.getSiteResources().size() > 0 ) )
183         {
184             serializer.startTag( NAMESPACE, "siteResources" );
185             for ( Iterator iter = archetypeModel.getSiteResources().iterator(); iter.hasNext(); )
186             {
187                 Resource o = (Resource) iter.next();
188                 writeResource( o, "resource", serializer );
189             }
190             serializer.endTag( NAMESPACE, "siteResources" );
191         }
192         serializer.endTag( NAMESPACE, tagName );
193     } //-- void writeArchetypeModel( ArchetypeModel, String, XmlSerializer )
194 
195     /**
196      * Method writeResource.
197      * 
198      * @param resource a resource object.
199      * @param serializer a serializer object.
200      * @param tagName a tagName object.
201      * @throws java.io.IOException java.io.IOException if any.
202      */
203     private void writeResource( Resource resource, String tagName, XmlSerializer serializer )
204         throws java.io.IOException
205     {
206         serializer.startTag( NAMESPACE, tagName );
207         if ( resource.getEncoding() != null )
208         {
209             serializer.attribute( NAMESPACE, "encoding", resource.getEncoding() );
210         }
211         if ( resource.isFiltered() != true )
212         {
213             serializer.attribute( NAMESPACE, "filtered", String.valueOf( resource.isFiltered() ) );
214         }
215         serializer.text( resource.getFile() );
216         serializer.endTag( NAMESPACE, tagName );
217     } //-- void writeResource( Resource, String, XmlSerializer )
218 
219     /**
220      * Method writeSource.
221      * 
222      * @param source a source object.
223      * @param serializer a serializer object.
224      * @param tagName a tagName object.
225      * @throws java.io.IOException java.io.IOException if any.
226      */
227     private void writeSource( Source source, String tagName, XmlSerializer serializer )
228         throws java.io.IOException
229     {
230         serializer.startTag( NAMESPACE, tagName );
231         if ( source.getEncoding() != null )
232         {
233             serializer.attribute( NAMESPACE, "encoding", source.getEncoding() );
234         }
235         serializer.text( source.getFile() );
236         serializer.endTag( NAMESPACE, tagName );
237     } //-- void writeSource( Source, String, XmlSerializer )
238 
239 }