001 /*
002 =================== DO NOT EDIT THIS FILE ====================
003 Generated by Modello 1.4.1 on 2013-02-24 03:32:14,
004 any modifications will be overwritten.
005 ==============================================================
006 */
007
008 package org.apache.maven.model.io.xpp3;
009
010 //---------------------------------/
011 //- Imported classes and packages -/
012 //---------------------------------/
013
014 import java.io.IOException;
015 import java.io.InputStream;
016 import java.io.Reader;
017 import java.text.DateFormat;
018 import java.util.Locale;
019 import org.apache.maven.model.Activation;
020 import org.apache.maven.model.ActivationFile;
021 import org.apache.maven.model.ActivationOS;
022 import org.apache.maven.model.ActivationProperty;
023 import org.apache.maven.model.Build;
024 import org.apache.maven.model.BuildBase;
025 import org.apache.maven.model.CiManagement;
026 import org.apache.maven.model.ConfigurationContainer;
027 import org.apache.maven.model.Contributor;
028 import org.apache.maven.model.Dependency;
029 import org.apache.maven.model.DependencyManagement;
030 import org.apache.maven.model.DeploymentRepository;
031 import org.apache.maven.model.Developer;
032 import org.apache.maven.model.DistributionManagement;
033 import org.apache.maven.model.Exclusion;
034 import org.apache.maven.model.Extension;
035 import org.apache.maven.model.FileSet;
036 import org.apache.maven.model.IssueManagement;
037 import org.apache.maven.model.License;
038 import org.apache.maven.model.MailingList;
039 import org.apache.maven.model.Model;
040 import org.apache.maven.model.ModelBase;
041 import org.apache.maven.model.Notifier;
042 import org.apache.maven.model.Organization;
043 import org.apache.maven.model.Parent;
044 import org.apache.maven.model.PatternSet;
045 import org.apache.maven.model.Plugin;
046 import org.apache.maven.model.PluginConfiguration;
047 import org.apache.maven.model.PluginContainer;
048 import org.apache.maven.model.PluginExecution;
049 import org.apache.maven.model.PluginManagement;
050 import org.apache.maven.model.Prerequisites;
051 import org.apache.maven.model.Profile;
052 import org.apache.maven.model.Relocation;
053 import org.apache.maven.model.ReportPlugin;
054 import org.apache.maven.model.ReportSet;
055 import org.apache.maven.model.Reporting;
056 import org.apache.maven.model.Repository;
057 import org.apache.maven.model.RepositoryBase;
058 import org.apache.maven.model.RepositoryPolicy;
059 import org.apache.maven.model.Resource;
060 import org.apache.maven.model.Scm;
061 import org.apache.maven.model.Site;
062 import org.codehaus.plexus.util.ReaderFactory;
063 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
064 import org.codehaus.plexus.util.xml.pull.MXParser;
065 import org.codehaus.plexus.util.xml.pull.XmlPullParser;
066 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
067
068 /**
069 * Class MavenXpp3Reader.
070 *
071 * @version $Revision$ $Date$
072 */
073 @SuppressWarnings( "all" )
074 public class MavenXpp3Reader
075 {
076
077 //--------------------------/
078 //- Class/Member Variables -/
079 //--------------------------/
080
081 /**
082 * If set the parser will be loaded with all single characters
083 * from the XHTML specification.
084 * The entities used:
085 * <ul>
086 * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent</li>
087 * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent</li>
088 * <li>http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent</li>
089 * </ul>
090 */
091 private boolean addDefaultEntities = true;
092
093
094 //-----------/
095 //- Methods -/
096 //-----------/
097
098 /**
099 * Method checkFieldWithDuplicate.
100 *
101 * @param parser
102 * @param parsed
103 * @param alias
104 * @param tagName
105 * @throws XmlPullParserException
106 * @return boolean
107 */
108 private boolean checkFieldWithDuplicate( XmlPullParser parser, String tagName, String alias, java.util.Set parsed )
109 throws XmlPullParserException
110 {
111 if ( !( parser.getName().equals( tagName ) || parser.getName().equals( alias ) ) )
112 {
113 return false;
114 }
115 if ( !parsed.add( tagName ) )
116 {
117 throw new XmlPullParserException( "Duplicated tag: '" + tagName + "'", parser, null );
118 }
119 return true;
120 } //-- boolean checkFieldWithDuplicate( XmlPullParser, String, String, java.util.Set )
121
122 /**
123 * Method checkUnknownAttribute.
124 *
125 * @param parser
126 * @param strict
127 * @param tagName
128 * @param attribute
129 * @throws XmlPullParserException
130 * @throws IOException
131 */
132 private void checkUnknownAttribute( XmlPullParser parser, String attribute, String tagName, boolean strict )
133 throws XmlPullParserException, IOException
134 {
135 // strictXmlAttributes = true for model: if strict == true, not only elements are checked but attributes too
136 if ( strict )
137 {
138 throw new XmlPullParserException( "Unknown attribute '" + attribute + "' for tag '" + tagName + "'", parser, null );
139 }
140 } //-- void checkUnknownAttribute( XmlPullParser, String, String, boolean )
141
142 /**
143 * Method checkUnknownElement.
144 *
145 * @param parser
146 * @param strict
147 * @throws XmlPullParserException
148 * @throws IOException
149 */
150 private void checkUnknownElement( XmlPullParser parser, boolean strict )
151 throws XmlPullParserException, IOException
152 {
153 if ( strict )
154 {
155 throw new XmlPullParserException( "Unrecognised tag: '" + parser.getName() + "'", parser, null );
156 }
157
158 for ( int unrecognizedTagCount = 1; unrecognizedTagCount > 0; )
159 {
160 int eventType = parser.next();
161 if ( eventType == XmlPullParser.START_TAG )
162 {
163 unrecognizedTagCount++;
164 }
165 else if ( eventType == XmlPullParser.END_TAG )
166 {
167 unrecognizedTagCount--;
168 }
169 }
170 } //-- void checkUnknownElement( XmlPullParser, boolean )
171
172 /**
173 * Returns the state of the "add default entities" flag.
174 *
175 * @return boolean
176 */
177 public boolean getAddDefaultEntities()
178 {
179 return addDefaultEntities;
180 } //-- boolean getAddDefaultEntities()
181
182 /**
183 * Method getBooleanValue.
184 *
185 * @param s
186 * @param parser
187 * @param attribute
188 * @throws XmlPullParserException
189 * @return boolean
190 */
191 private boolean getBooleanValue( String s, String attribute, XmlPullParser parser )
192 throws XmlPullParserException
193 {
194 return getBooleanValue( s, attribute, parser, null );
195 } //-- boolean getBooleanValue( String, String, XmlPullParser )
196
197 /**
198 * Method getBooleanValue.
199 *
200 * @param s
201 * @param defaultValue
202 * @param parser
203 * @param attribute
204 * @throws XmlPullParserException
205 * @return boolean
206 */
207 private boolean getBooleanValue( String s, String attribute, XmlPullParser parser, String defaultValue )
208 throws XmlPullParserException
209 {
210 if ( s != null && s.length() != 0 )
211 {
212 return Boolean.valueOf( s ).booleanValue();
213 }
214 if ( defaultValue != null )
215 {
216 return Boolean.valueOf( defaultValue ).booleanValue();
217 }
218 return false;
219 } //-- boolean getBooleanValue( String, String, XmlPullParser, String )
220
221 /**
222 * Method getByteValue.
223 *
224 * @param s
225 * @param strict
226 * @param parser
227 * @param attribute
228 * @throws XmlPullParserException
229 * @return byte
230 */
231 private byte getByteValue( String s, String attribute, XmlPullParser parser, boolean strict )
232 throws XmlPullParserException
233 {
234 if ( s != null )
235 {
236 try
237 {
238 return Byte.valueOf( s ).byteValue();
239 }
240 catch ( NumberFormatException nfe )
241 {
242 if ( strict )
243 {
244 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a byte", parser, nfe );
245 }
246 }
247 }
248 return 0;
249 } //-- byte getByteValue( String, String, XmlPullParser, boolean )
250
251 /**
252 * Method getCharacterValue.
253 *
254 * @param s
255 * @param parser
256 * @param attribute
257 * @throws XmlPullParserException
258 * @return char
259 */
260 private char getCharacterValue( String s, String attribute, XmlPullParser parser )
261 throws XmlPullParserException
262 {
263 if ( s != null )
264 {
265 return s.charAt( 0 );
266 }
267 return 0;
268 } //-- char getCharacterValue( String, String, XmlPullParser )
269
270 /**
271 * Method getDateValue.
272 *
273 * @param s
274 * @param parser
275 * @param attribute
276 * @throws XmlPullParserException
277 * @return Date
278 */
279 private java.util.Date getDateValue( String s, String attribute, XmlPullParser parser )
280 throws XmlPullParserException
281 {
282 return getDateValue( s, attribute, null, parser );
283 } //-- java.util.Date getDateValue( String, String, XmlPullParser )
284
285 /**
286 * Method getDateValue.
287 *
288 * @param s
289 * @param parser
290 * @param dateFormat
291 * @param attribute
292 * @throws XmlPullParserException
293 * @return Date
294 */
295 private java.util.Date getDateValue( String s, String attribute, String dateFormat, XmlPullParser parser )
296 throws XmlPullParserException
297 {
298 if ( s != null )
299 {
300 String effectiveDateFormat = dateFormat;
301 if ( dateFormat == null )
302 {
303 effectiveDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS";
304 }
305 if ( "long".equals( effectiveDateFormat ) )
306 {
307 try
308 {
309 return new java.util.Date( Long.parseLong( s ) );
310 }
311 catch ( NumberFormatException e )
312 {
313 throw new XmlPullParserException( e.getMessage(), parser, e );
314 }
315 }
316 else
317 {
318 try
319 {
320 DateFormat dateParser = new java.text.SimpleDateFormat( effectiveDateFormat, Locale.US );
321 return dateParser.parse( s );
322 }
323 catch ( java.text.ParseException e )
324 {
325 throw new XmlPullParserException( e.getMessage(), parser, e );
326 }
327 }
328 }
329 return null;
330 } //-- java.util.Date getDateValue( String, String, String, XmlPullParser )
331
332 /**
333 * Method getDoubleValue.
334 *
335 * @param s
336 * @param strict
337 * @param parser
338 * @param attribute
339 * @throws XmlPullParserException
340 * @return double
341 */
342 private double getDoubleValue( String s, String attribute, XmlPullParser parser, boolean strict )
343 throws XmlPullParserException
344 {
345 if ( s != null )
346 {
347 try
348 {
349 return Double.valueOf( s ).doubleValue();
350 }
351 catch ( NumberFormatException nfe )
352 {
353 if ( strict )
354 {
355 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a floating point number", parser, nfe );
356 }
357 }
358 }
359 return 0;
360 } //-- double getDoubleValue( String, String, XmlPullParser, boolean )
361
362 /**
363 * Method getFloatValue.
364 *
365 * @param s
366 * @param strict
367 * @param parser
368 * @param attribute
369 * @throws XmlPullParserException
370 * @return float
371 */
372 private float getFloatValue( String s, String attribute, XmlPullParser parser, boolean strict )
373 throws XmlPullParserException
374 {
375 if ( s != null )
376 {
377 try
378 {
379 return Float.valueOf( s ).floatValue();
380 }
381 catch ( NumberFormatException nfe )
382 {
383 if ( strict )
384 {
385 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a floating point number", parser, nfe );
386 }
387 }
388 }
389 return 0;
390 } //-- float getFloatValue( String, String, XmlPullParser, boolean )
391
392 /**
393 * Method getIntegerValue.
394 *
395 * @param s
396 * @param strict
397 * @param parser
398 * @param attribute
399 * @throws XmlPullParserException
400 * @return int
401 */
402 private int getIntegerValue( String s, String attribute, XmlPullParser parser, boolean strict )
403 throws XmlPullParserException
404 {
405 if ( s != null )
406 {
407 try
408 {
409 return Integer.valueOf( s ).intValue();
410 }
411 catch ( NumberFormatException nfe )
412 {
413 if ( strict )
414 {
415 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be an integer", parser, nfe );
416 }
417 }
418 }
419 return 0;
420 } //-- int getIntegerValue( String, String, XmlPullParser, boolean )
421
422 /**
423 * Method getLongValue.
424 *
425 * @param s
426 * @param strict
427 * @param parser
428 * @param attribute
429 * @throws XmlPullParserException
430 * @return long
431 */
432 private long getLongValue( String s, String attribute, XmlPullParser parser, boolean strict )
433 throws XmlPullParserException
434 {
435 if ( s != null )
436 {
437 try
438 {
439 return Long.valueOf( s ).longValue();
440 }
441 catch ( NumberFormatException nfe )
442 {
443 if ( strict )
444 {
445 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a long integer", parser, nfe );
446 }
447 }
448 }
449 return 0;
450 } //-- long getLongValue( String, String, XmlPullParser, boolean )
451
452 /**
453 * Method getRequiredAttributeValue.
454 *
455 * @param s
456 * @param strict
457 * @param parser
458 * @param attribute
459 * @throws XmlPullParserException
460 * @return String
461 */
462 private String getRequiredAttributeValue( String s, String attribute, XmlPullParser parser, boolean strict )
463 throws XmlPullParserException
464 {
465 if ( s == null )
466 {
467 if ( strict )
468 {
469 throw new XmlPullParserException( "Missing required value for attribute '" + attribute + "'", parser, null );
470 }
471 }
472 return s;
473 } //-- String getRequiredAttributeValue( String, String, XmlPullParser, boolean )
474
475 /**
476 * Method getShortValue.
477 *
478 * @param s
479 * @param strict
480 * @param parser
481 * @param attribute
482 * @throws XmlPullParserException
483 * @return short
484 */
485 private short getShortValue( String s, String attribute, XmlPullParser parser, boolean strict )
486 throws XmlPullParserException
487 {
488 if ( s != null )
489 {
490 try
491 {
492 return Short.valueOf( s ).shortValue();
493 }
494 catch ( NumberFormatException nfe )
495 {
496 if ( strict )
497 {
498 throw new XmlPullParserException( "Unable to parse element '" + attribute + "', must be a short integer", parser, nfe );
499 }
500 }
501 }
502 return 0;
503 } //-- short getShortValue( String, String, XmlPullParser, boolean )
504
505 /**
506 * Method getTrimmedValue.
507 *
508 * @param s
509 * @return String
510 */
511 private String getTrimmedValue( String s )
512 {
513 if ( s != null )
514 {
515 s = s.trim();
516 }
517 return s;
518 } //-- String getTrimmedValue( String )
519
520 /**
521 * Method initParser.
522 *
523 * @param parser
524 * @throws XmlPullParserException
525 */
526 private void initParser( XmlPullParser parser )
527 throws XmlPullParserException
528 {
529 if ( addDefaultEntities )
530 {
531 // ----------------------------------------------------------------------
532 // Latin 1 entities
533 // ----------------------------------------------------------------------
534
535 parser.defineEntityReplacementText( "nbsp", "\u00a0" );
536 parser.defineEntityReplacementText( "iexcl", "\u00a1" );
537 parser.defineEntityReplacementText( "cent", "\u00a2" );
538 parser.defineEntityReplacementText( "pound", "\u00a3" );
539 parser.defineEntityReplacementText( "curren", "\u00a4" );
540 parser.defineEntityReplacementText( "yen", "\u00a5" );
541 parser.defineEntityReplacementText( "brvbar", "\u00a6" );
542 parser.defineEntityReplacementText( "sect", "\u00a7" );
543 parser.defineEntityReplacementText( "uml", "\u00a8" );
544 parser.defineEntityReplacementText( "copy", "\u00a9" );
545 parser.defineEntityReplacementText( "ordf", "\u00aa" );
546 parser.defineEntityReplacementText( "laquo", "\u00ab" );
547 parser.defineEntityReplacementText( "not", "\u00ac" );
548 parser.defineEntityReplacementText( "shy", "\u00ad" );
549 parser.defineEntityReplacementText( "reg", "\u00ae" );
550 parser.defineEntityReplacementText( "macr", "\u00af" );
551 parser.defineEntityReplacementText( "deg", "\u00b0" );
552 parser.defineEntityReplacementText( "plusmn", "\u00b1" );
553 parser.defineEntityReplacementText( "sup2", "\u00b2" );
554 parser.defineEntityReplacementText( "sup3", "\u00b3" );
555 parser.defineEntityReplacementText( "acute", "\u00b4" );
556 parser.defineEntityReplacementText( "micro", "\u00b5" );
557 parser.defineEntityReplacementText( "para", "\u00b6" );
558 parser.defineEntityReplacementText( "middot", "\u00b7" );
559 parser.defineEntityReplacementText( "cedil", "\u00b8" );
560 parser.defineEntityReplacementText( "sup1", "\u00b9" );
561 parser.defineEntityReplacementText( "ordm", "\u00ba" );
562 parser.defineEntityReplacementText( "raquo", "\u00bb" );
563 parser.defineEntityReplacementText( "frac14", "\u00bc" );
564 parser.defineEntityReplacementText( "frac12", "\u00bd" );
565 parser.defineEntityReplacementText( "frac34", "\u00be" );
566 parser.defineEntityReplacementText( "iquest", "\u00bf" );
567 parser.defineEntityReplacementText( "Agrave", "\u00c0" );
568 parser.defineEntityReplacementText( "Aacute", "\u00c1" );
569 parser.defineEntityReplacementText( "Acirc", "\u00c2" );
570 parser.defineEntityReplacementText( "Atilde", "\u00c3" );
571 parser.defineEntityReplacementText( "Auml", "\u00c4" );
572 parser.defineEntityReplacementText( "Aring", "\u00c5" );
573 parser.defineEntityReplacementText( "AElig", "\u00c6" );
574 parser.defineEntityReplacementText( "Ccedil", "\u00c7" );
575 parser.defineEntityReplacementText( "Egrave", "\u00c8" );
576 parser.defineEntityReplacementText( "Eacute", "\u00c9" );
577 parser.defineEntityReplacementText( "Ecirc", "\u00ca" );
578 parser.defineEntityReplacementText( "Euml", "\u00cb" );
579 parser.defineEntityReplacementText( "Igrave", "\u00cc" );
580 parser.defineEntityReplacementText( "Iacute", "\u00cd" );
581 parser.defineEntityReplacementText( "Icirc", "\u00ce" );
582 parser.defineEntityReplacementText( "Iuml", "\u00cf" );
583 parser.defineEntityReplacementText( "ETH", "\u00d0" );
584 parser.defineEntityReplacementText( "Ntilde", "\u00d1" );
585 parser.defineEntityReplacementText( "Ograve", "\u00d2" );
586 parser.defineEntityReplacementText( "Oacute", "\u00d3" );
587 parser.defineEntityReplacementText( "Ocirc", "\u00d4" );
588 parser.defineEntityReplacementText( "Otilde", "\u00d5" );
589 parser.defineEntityReplacementText( "Ouml", "\u00d6" );
590 parser.defineEntityReplacementText( "times", "\u00d7" );
591 parser.defineEntityReplacementText( "Oslash", "\u00d8" );
592 parser.defineEntityReplacementText( "Ugrave", "\u00d9" );
593 parser.defineEntityReplacementText( "Uacute", "\u00da" );
594 parser.defineEntityReplacementText( "Ucirc", "\u00db" );
595 parser.defineEntityReplacementText( "Uuml", "\u00dc" );
596 parser.defineEntityReplacementText( "Yacute", "\u00dd" );
597 parser.defineEntityReplacementText( "THORN", "\u00de" );
598 parser.defineEntityReplacementText( "szlig", "\u00df" );
599 parser.defineEntityReplacementText( "agrave", "\u00e0" );
600 parser.defineEntityReplacementText( "aacute", "\u00e1" );
601 parser.defineEntityReplacementText( "acirc", "\u00e2" );
602 parser.defineEntityReplacementText( "atilde", "\u00e3" );
603 parser.defineEntityReplacementText( "auml", "\u00e4" );
604 parser.defineEntityReplacementText( "aring", "\u00e5" );
605 parser.defineEntityReplacementText( "aelig", "\u00e6" );
606 parser.defineEntityReplacementText( "ccedil", "\u00e7" );
607 parser.defineEntityReplacementText( "egrave", "\u00e8" );
608 parser.defineEntityReplacementText( "eacute", "\u00e9" );
609 parser.defineEntityReplacementText( "ecirc", "\u00ea" );
610 parser.defineEntityReplacementText( "euml", "\u00eb" );
611 parser.defineEntityReplacementText( "igrave", "\u00ec" );
612 parser.defineEntityReplacementText( "iacute", "\u00ed" );
613 parser.defineEntityReplacementText( "icirc", "\u00ee" );
614 parser.defineEntityReplacementText( "iuml", "\u00ef" );
615 parser.defineEntityReplacementText( "eth", "\u00f0" );
616 parser.defineEntityReplacementText( "ntilde", "\u00f1" );
617 parser.defineEntityReplacementText( "ograve", "\u00f2" );
618 parser.defineEntityReplacementText( "oacute", "\u00f3" );
619 parser.defineEntityReplacementText( "ocirc", "\u00f4" );
620 parser.defineEntityReplacementText( "otilde", "\u00f5" );
621 parser.defineEntityReplacementText( "ouml", "\u00f6" );
622 parser.defineEntityReplacementText( "divide", "\u00f7" );
623 parser.defineEntityReplacementText( "oslash", "\u00f8" );
624 parser.defineEntityReplacementText( "ugrave", "\u00f9" );
625 parser.defineEntityReplacementText( "uacute", "\u00fa" );
626 parser.defineEntityReplacementText( "ucirc", "\u00fb" );
627 parser.defineEntityReplacementText( "uuml", "\u00fc" );
628 parser.defineEntityReplacementText( "yacute", "\u00fd" );
629 parser.defineEntityReplacementText( "thorn", "\u00fe" );
630 parser.defineEntityReplacementText( "yuml", "\u00ff" );
631
632 // ----------------------------------------------------------------------
633 // Special entities
634 // ----------------------------------------------------------------------
635
636 parser.defineEntityReplacementText( "OElig", "\u0152" );
637 parser.defineEntityReplacementText( "oelig", "\u0153" );
638 parser.defineEntityReplacementText( "Scaron", "\u0160" );
639 parser.defineEntityReplacementText( "scaron", "\u0161" );
640 parser.defineEntityReplacementText( "Yuml", "\u0178" );
641 parser.defineEntityReplacementText( "circ", "\u02c6" );
642 parser.defineEntityReplacementText( "tilde", "\u02dc" );
643 parser.defineEntityReplacementText( "ensp", "\u2002" );
644 parser.defineEntityReplacementText( "emsp", "\u2003" );
645 parser.defineEntityReplacementText( "thinsp", "\u2009" );
646 parser.defineEntityReplacementText( "zwnj", "\u200c" );
647 parser.defineEntityReplacementText( "zwj", "\u200d" );
648 parser.defineEntityReplacementText( "lrm", "\u200e" );
649 parser.defineEntityReplacementText( "rlm", "\u200f" );
650 parser.defineEntityReplacementText( "ndash", "\u2013" );
651 parser.defineEntityReplacementText( "mdash", "\u2014" );
652 parser.defineEntityReplacementText( "lsquo", "\u2018" );
653 parser.defineEntityReplacementText( "rsquo", "\u2019" );
654 parser.defineEntityReplacementText( "sbquo", "\u201a" );
655 parser.defineEntityReplacementText( "ldquo", "\u201c" );
656 parser.defineEntityReplacementText( "rdquo", "\u201d" );
657 parser.defineEntityReplacementText( "bdquo", "\u201e" );
658 parser.defineEntityReplacementText( "dagger", "\u2020" );
659 parser.defineEntityReplacementText( "Dagger", "\u2021" );
660 parser.defineEntityReplacementText( "permil", "\u2030" );
661 parser.defineEntityReplacementText( "lsaquo", "\u2039" );
662 parser.defineEntityReplacementText( "rsaquo", "\u203a" );
663 parser.defineEntityReplacementText( "euro", "\u20ac" );
664
665 // ----------------------------------------------------------------------
666 // Symbol entities
667 // ----------------------------------------------------------------------
668
669 parser.defineEntityReplacementText( "fnof", "\u0192" );
670 parser.defineEntityReplacementText( "Alpha", "\u0391" );
671 parser.defineEntityReplacementText( "Beta", "\u0392" );
672 parser.defineEntityReplacementText( "Gamma", "\u0393" );
673 parser.defineEntityReplacementText( "Delta", "\u0394" );
674 parser.defineEntityReplacementText( "Epsilon", "\u0395" );
675 parser.defineEntityReplacementText( "Zeta", "\u0396" );
676 parser.defineEntityReplacementText( "Eta", "\u0397" );
677 parser.defineEntityReplacementText( "Theta", "\u0398" );
678 parser.defineEntityReplacementText( "Iota", "\u0399" );
679 parser.defineEntityReplacementText( "Kappa", "\u039a" );
680 parser.defineEntityReplacementText( "Lambda", "\u039b" );
681 parser.defineEntityReplacementText( "Mu", "\u039c" );
682 parser.defineEntityReplacementText( "Nu", "\u039d" );
683 parser.defineEntityReplacementText( "Xi", "\u039e" );
684 parser.defineEntityReplacementText( "Omicron", "\u039f" );
685 parser.defineEntityReplacementText( "Pi", "\u03a0" );
686 parser.defineEntityReplacementText( "Rho", "\u03a1" );
687 parser.defineEntityReplacementText( "Sigma", "\u03a3" );
688 parser.defineEntityReplacementText( "Tau", "\u03a4" );
689 parser.defineEntityReplacementText( "Upsilon", "\u03a5" );
690 parser.defineEntityReplacementText( "Phi", "\u03a6" );
691 parser.defineEntityReplacementText( "Chi", "\u03a7" );
692 parser.defineEntityReplacementText( "Psi", "\u03a8" );
693 parser.defineEntityReplacementText( "Omega", "\u03a9" );
694 parser.defineEntityReplacementText( "alpha", "\u03b1" );
695 parser.defineEntityReplacementText( "beta", "\u03b2" );
696 parser.defineEntityReplacementText( "gamma", "\u03b3" );
697 parser.defineEntityReplacementText( "delta", "\u03b4" );
698 parser.defineEntityReplacementText( "epsilon", "\u03b5" );
699 parser.defineEntityReplacementText( "zeta", "\u03b6" );
700 parser.defineEntityReplacementText( "eta", "\u03b7" );
701 parser.defineEntityReplacementText( "theta", "\u03b8" );
702 parser.defineEntityReplacementText( "iota", "\u03b9" );
703 parser.defineEntityReplacementText( "kappa", "\u03ba" );
704 parser.defineEntityReplacementText( "lambda", "\u03bb" );
705 parser.defineEntityReplacementText( "mu", "\u03bc" );
706 parser.defineEntityReplacementText( "nu", "\u03bd" );
707 parser.defineEntityReplacementText( "xi", "\u03be" );
708 parser.defineEntityReplacementText( "omicron", "\u03bf" );
709 parser.defineEntityReplacementText( "pi", "\u03c0" );
710 parser.defineEntityReplacementText( "rho", "\u03c1" );
711 parser.defineEntityReplacementText( "sigmaf", "\u03c2" );
712 parser.defineEntityReplacementText( "sigma", "\u03c3" );
713 parser.defineEntityReplacementText( "tau", "\u03c4" );
714 parser.defineEntityReplacementText( "upsilon", "\u03c5" );
715 parser.defineEntityReplacementText( "phi", "\u03c6" );
716 parser.defineEntityReplacementText( "chi", "\u03c7" );
717 parser.defineEntityReplacementText( "psi", "\u03c8" );
718 parser.defineEntityReplacementText( "omega", "\u03c9" );
719 parser.defineEntityReplacementText( "thetasym", "\u03d1" );
720 parser.defineEntityReplacementText( "upsih", "\u03d2" );
721 parser.defineEntityReplacementText( "piv", "\u03d6" );
722 parser.defineEntityReplacementText( "bull", "\u2022" );
723 parser.defineEntityReplacementText( "hellip", "\u2026" );
724 parser.defineEntityReplacementText( "prime", "\u2032" );
725 parser.defineEntityReplacementText( "Prime", "\u2033" );
726 parser.defineEntityReplacementText( "oline", "\u203e" );
727 parser.defineEntityReplacementText( "frasl", "\u2044" );
728 parser.defineEntityReplacementText( "weierp", "\u2118" );
729 parser.defineEntityReplacementText( "image", "\u2111" );
730 parser.defineEntityReplacementText( "real", "\u211c" );
731 parser.defineEntityReplacementText( "trade", "\u2122" );
732 parser.defineEntityReplacementText( "alefsym", "\u2135" );
733 parser.defineEntityReplacementText( "larr", "\u2190" );
734 parser.defineEntityReplacementText( "uarr", "\u2191" );
735 parser.defineEntityReplacementText( "rarr", "\u2192" );
736 parser.defineEntityReplacementText( "darr", "\u2193" );
737 parser.defineEntityReplacementText( "harr", "\u2194" );
738 parser.defineEntityReplacementText( "crarr", "\u21b5" );
739 parser.defineEntityReplacementText( "lArr", "\u21d0" );
740 parser.defineEntityReplacementText( "uArr", "\u21d1" );
741 parser.defineEntityReplacementText( "rArr", "\u21d2" );
742 parser.defineEntityReplacementText( "dArr", "\u21d3" );
743 parser.defineEntityReplacementText( "hArr", "\u21d4" );
744 parser.defineEntityReplacementText( "forall", "\u2200" );
745 parser.defineEntityReplacementText( "part", "\u2202" );
746 parser.defineEntityReplacementText( "exist", "\u2203" );
747 parser.defineEntityReplacementText( "empty", "\u2205" );
748 parser.defineEntityReplacementText( "nabla", "\u2207" );
749 parser.defineEntityReplacementText( "isin", "\u2208" );
750 parser.defineEntityReplacementText( "notin", "\u2209" );
751 parser.defineEntityReplacementText( "ni", "\u220b" );
752 parser.defineEntityReplacementText( "prod", "\u220f" );
753 parser.defineEntityReplacementText( "sum", "\u2211" );
754 parser.defineEntityReplacementText( "minus", "\u2212" );
755 parser.defineEntityReplacementText( "lowast", "\u2217" );
756 parser.defineEntityReplacementText( "radic", "\u221a" );
757 parser.defineEntityReplacementText( "prop", "\u221d" );
758 parser.defineEntityReplacementText( "infin", "\u221e" );
759 parser.defineEntityReplacementText( "ang", "\u2220" );
760 parser.defineEntityReplacementText( "and", "\u2227" );
761 parser.defineEntityReplacementText( "or", "\u2228" );
762 parser.defineEntityReplacementText( "cap", "\u2229" );
763 parser.defineEntityReplacementText( "cup", "\u222a" );
764 parser.defineEntityReplacementText( "int", "\u222b" );
765 parser.defineEntityReplacementText( "there4", "\u2234" );
766 parser.defineEntityReplacementText( "sim", "\u223c" );
767 parser.defineEntityReplacementText( "cong", "\u2245" );
768 parser.defineEntityReplacementText( "asymp", "\u2248" );
769 parser.defineEntityReplacementText( "ne", "\u2260" );
770 parser.defineEntityReplacementText( "equiv", "\u2261" );
771 parser.defineEntityReplacementText( "le", "\u2264" );
772 parser.defineEntityReplacementText( "ge", "\u2265" );
773 parser.defineEntityReplacementText( "sub", "\u2282" );
774 parser.defineEntityReplacementText( "sup", "\u2283" );
775 parser.defineEntityReplacementText( "nsub", "\u2284" );
776 parser.defineEntityReplacementText( "sube", "\u2286" );
777 parser.defineEntityReplacementText( "supe", "\u2287" );
778 parser.defineEntityReplacementText( "oplus", "\u2295" );
779 parser.defineEntityReplacementText( "otimes", "\u2297" );
780 parser.defineEntityReplacementText( "perp", "\u22a5" );
781 parser.defineEntityReplacementText( "sdot", "\u22c5" );
782 parser.defineEntityReplacementText( "lceil", "\u2308" );
783 parser.defineEntityReplacementText( "rceil", "\u2309" );
784 parser.defineEntityReplacementText( "lfloor", "\u230a" );
785 parser.defineEntityReplacementText( "rfloor", "\u230b" );
786 parser.defineEntityReplacementText( "lang", "\u2329" );
787 parser.defineEntityReplacementText( "rang", "\u232a" );
788 parser.defineEntityReplacementText( "loz", "\u25ca" );
789 parser.defineEntityReplacementText( "spades", "\u2660" );
790 parser.defineEntityReplacementText( "clubs", "\u2663" );
791 parser.defineEntityReplacementText( "hearts", "\u2665" );
792 parser.defineEntityReplacementText( "diams", "\u2666" );
793
794 }
795 } //-- void initParser( XmlPullParser )
796
797 /**
798 * Method nextTag.
799 *
800 * @param parser
801 * @throws IOException
802 * @throws XmlPullParserException
803 * @return int
804 */
805 private int nextTag( XmlPullParser parser )
806 throws IOException, XmlPullParserException
807 {
808 int eventType = parser.next();
809 if ( eventType == XmlPullParser.TEXT )
810 {
811 eventType = parser.next();
812 }
813 if ( eventType != XmlPullParser.START_TAG && eventType != XmlPullParser.END_TAG )
814 {
815 throw new XmlPullParserException( "expected START_TAG or END_TAG not " + XmlPullParser.TYPES[eventType], parser, null );
816 }
817 return eventType;
818 } //-- int nextTag( XmlPullParser )
819
820 /**
821 * Method parseActivation.
822 *
823 * @param parser
824 * @param strict
825 * @throws IOException
826 * @throws XmlPullParserException
827 * @return Activation
828 */
829 private Activation parseActivation( XmlPullParser parser, boolean strict )
830 throws IOException, XmlPullParserException
831 {
832 String tagName = parser.getName();
833 Activation activation = new Activation();
834 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
835 {
836 String name = parser.getAttributeName( i );
837 String value = parser.getAttributeValue( i );
838
839 if ( name.indexOf( ':' ) >= 0 )
840 {
841 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
842 }
843 else
844 {
845 checkUnknownAttribute( parser, name, tagName, strict );
846 }
847 }
848 java.util.Set parsed = new java.util.HashSet();
849 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
850 {
851 if ( checkFieldWithDuplicate( parser, "activeByDefault", null, parsed ) )
852 {
853 activation.setActiveByDefault( getBooleanValue( getTrimmedValue( parser.nextText() ), "activeByDefault", parser, "false" ) );
854 }
855 else if ( checkFieldWithDuplicate( parser, "jdk", null, parsed ) )
856 {
857 activation.setJdk( getTrimmedValue( parser.nextText() ) );
858 }
859 else if ( checkFieldWithDuplicate( parser, "os", null, parsed ) )
860 {
861 activation.setOs( parseActivationOS( parser, strict ) );
862 }
863 else if ( checkFieldWithDuplicate( parser, "property", null, parsed ) )
864 {
865 activation.setProperty( parseActivationProperty( parser, strict ) );
866 }
867 else if ( checkFieldWithDuplicate( parser, "file", null, parsed ) )
868 {
869 activation.setFile( parseActivationFile( parser, strict ) );
870 }
871 else
872 {
873 checkUnknownElement( parser, strict );
874 }
875 }
876 return activation;
877 } //-- Activation parseActivation( XmlPullParser, boolean )
878
879 /**
880 * Method parseActivationFile.
881 *
882 * @param parser
883 * @param strict
884 * @throws IOException
885 * @throws XmlPullParserException
886 * @return ActivationFile
887 */
888 private ActivationFile parseActivationFile( XmlPullParser parser, boolean strict )
889 throws IOException, XmlPullParserException
890 {
891 String tagName = parser.getName();
892 ActivationFile activationFile = new ActivationFile();
893 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
894 {
895 String name = parser.getAttributeName( i );
896 String value = parser.getAttributeValue( i );
897
898 if ( name.indexOf( ':' ) >= 0 )
899 {
900 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
901 }
902 else
903 {
904 checkUnknownAttribute( parser, name, tagName, strict );
905 }
906 }
907 java.util.Set parsed = new java.util.HashSet();
908 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
909 {
910 if ( checkFieldWithDuplicate( parser, "missing", null, parsed ) )
911 {
912 activationFile.setMissing( getTrimmedValue( parser.nextText() ) );
913 }
914 else if ( checkFieldWithDuplicate( parser, "exists", null, parsed ) )
915 {
916 activationFile.setExists( getTrimmedValue( parser.nextText() ) );
917 }
918 else
919 {
920 checkUnknownElement( parser, strict );
921 }
922 }
923 return activationFile;
924 } //-- ActivationFile parseActivationFile( XmlPullParser, boolean )
925
926 /**
927 * Method parseActivationOS.
928 *
929 * @param parser
930 * @param strict
931 * @throws IOException
932 * @throws XmlPullParserException
933 * @return ActivationOS
934 */
935 private ActivationOS parseActivationOS( XmlPullParser parser, boolean strict )
936 throws IOException, XmlPullParserException
937 {
938 String tagName = parser.getName();
939 ActivationOS activationOS = new ActivationOS();
940 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
941 {
942 String name = parser.getAttributeName( i );
943 String value = parser.getAttributeValue( i );
944
945 if ( name.indexOf( ':' ) >= 0 )
946 {
947 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
948 }
949 else
950 {
951 checkUnknownAttribute( parser, name, tagName, strict );
952 }
953 }
954 java.util.Set parsed = new java.util.HashSet();
955 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
956 {
957 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
958 {
959 activationOS.setName( getTrimmedValue( parser.nextText() ) );
960 }
961 else if ( checkFieldWithDuplicate( parser, "family", null, parsed ) )
962 {
963 activationOS.setFamily( getTrimmedValue( parser.nextText() ) );
964 }
965 else if ( checkFieldWithDuplicate( parser, "arch", null, parsed ) )
966 {
967 activationOS.setArch( getTrimmedValue( parser.nextText() ) );
968 }
969 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
970 {
971 activationOS.setVersion( getTrimmedValue( parser.nextText() ) );
972 }
973 else
974 {
975 checkUnknownElement( parser, strict );
976 }
977 }
978 return activationOS;
979 } //-- ActivationOS parseActivationOS( XmlPullParser, boolean )
980
981 /**
982 * Method parseActivationProperty.
983 *
984 * @param parser
985 * @param strict
986 * @throws IOException
987 * @throws XmlPullParserException
988 * @return ActivationProperty
989 */
990 private ActivationProperty parseActivationProperty( XmlPullParser parser, boolean strict )
991 throws IOException, XmlPullParserException
992 {
993 String tagName = parser.getName();
994 ActivationProperty activationProperty = new ActivationProperty();
995 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
996 {
997 String name = parser.getAttributeName( i );
998 String value = parser.getAttributeValue( i );
999
1000 if ( name.indexOf( ':' ) >= 0 )
1001 {
1002 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1003 }
1004 else
1005 {
1006 checkUnknownAttribute( parser, name, tagName, strict );
1007 }
1008 }
1009 java.util.Set parsed = new java.util.HashSet();
1010 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1011 {
1012 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
1013 {
1014 activationProperty.setName( getTrimmedValue( parser.nextText() ) );
1015 }
1016 else if ( checkFieldWithDuplicate( parser, "value", null, parsed ) )
1017 {
1018 activationProperty.setValue( getTrimmedValue( parser.nextText() ) );
1019 }
1020 else
1021 {
1022 checkUnknownElement( parser, strict );
1023 }
1024 }
1025 return activationProperty;
1026 } //-- ActivationProperty parseActivationProperty( XmlPullParser, boolean )
1027
1028 /**
1029 * Method parseBuild.
1030 *
1031 * @param parser
1032 * @param strict
1033 * @throws IOException
1034 * @throws XmlPullParserException
1035 * @return Build
1036 */
1037 private Build parseBuild( XmlPullParser parser, boolean strict )
1038 throws IOException, XmlPullParserException
1039 {
1040 String tagName = parser.getName();
1041 Build build = new Build();
1042 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1043 {
1044 String name = parser.getAttributeName( i );
1045 String value = parser.getAttributeValue( i );
1046
1047 if ( name.indexOf( ':' ) >= 0 )
1048 {
1049 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1050 }
1051 else
1052 {
1053 checkUnknownAttribute( parser, name, tagName, strict );
1054 }
1055 }
1056 java.util.Set parsed = new java.util.HashSet();
1057 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1058 {
1059 if ( checkFieldWithDuplicate( parser, "sourceDirectory", null, parsed ) )
1060 {
1061 build.setSourceDirectory( getTrimmedValue( parser.nextText() ) );
1062 }
1063 else if ( checkFieldWithDuplicate( parser, "scriptSourceDirectory", null, parsed ) )
1064 {
1065 build.setScriptSourceDirectory( getTrimmedValue( parser.nextText() ) );
1066 }
1067 else if ( checkFieldWithDuplicate( parser, "testSourceDirectory", null, parsed ) )
1068 {
1069 build.setTestSourceDirectory( getTrimmedValue( parser.nextText() ) );
1070 }
1071 else if ( checkFieldWithDuplicate( parser, "outputDirectory", null, parsed ) )
1072 {
1073 build.setOutputDirectory( getTrimmedValue( parser.nextText() ) );
1074 }
1075 else if ( checkFieldWithDuplicate( parser, "testOutputDirectory", null, parsed ) )
1076 {
1077 build.setTestOutputDirectory( getTrimmedValue( parser.nextText() ) );
1078 }
1079 else if ( checkFieldWithDuplicate( parser, "extensions", null, parsed ) )
1080 {
1081 java.util.List extensions = new java.util.ArrayList/*<Extension>*/();
1082 build.setExtensions( extensions );
1083 while ( parser.nextTag() == XmlPullParser.START_TAG )
1084 {
1085 if ( "extension".equals( parser.getName() ) )
1086 {
1087 extensions.add( parseExtension( parser, strict ) );
1088 }
1089 else
1090 {
1091 checkUnknownElement( parser, strict );
1092 }
1093 }
1094 }
1095 else if ( checkFieldWithDuplicate( parser, "defaultGoal", null, parsed ) )
1096 {
1097 build.setDefaultGoal( getTrimmedValue( parser.nextText() ) );
1098 }
1099 else if ( checkFieldWithDuplicate( parser, "resources", null, parsed ) )
1100 {
1101 java.util.List resources = new java.util.ArrayList/*<Resource>*/();
1102 build.setResources( resources );
1103 while ( parser.nextTag() == XmlPullParser.START_TAG )
1104 {
1105 if ( "resource".equals( parser.getName() ) )
1106 {
1107 resources.add( parseResource( parser, strict ) );
1108 }
1109 else
1110 {
1111 checkUnknownElement( parser, strict );
1112 }
1113 }
1114 }
1115 else if ( checkFieldWithDuplicate( parser, "testResources", null, parsed ) )
1116 {
1117 java.util.List testResources = new java.util.ArrayList/*<Resource>*/();
1118 build.setTestResources( testResources );
1119 while ( parser.nextTag() == XmlPullParser.START_TAG )
1120 {
1121 if ( "testResource".equals( parser.getName() ) )
1122 {
1123 testResources.add( parseResource( parser, strict ) );
1124 }
1125 else
1126 {
1127 checkUnknownElement( parser, strict );
1128 }
1129 }
1130 }
1131 else if ( checkFieldWithDuplicate( parser, "directory", null, parsed ) )
1132 {
1133 build.setDirectory( getTrimmedValue( parser.nextText() ) );
1134 }
1135 else if ( checkFieldWithDuplicate( parser, "finalName", null, parsed ) )
1136 {
1137 build.setFinalName( getTrimmedValue( parser.nextText() ) );
1138 }
1139 else if ( checkFieldWithDuplicate( parser, "filters", null, parsed ) )
1140 {
1141 java.util.List filters = new java.util.ArrayList/*<String>*/();
1142 build.setFilters( filters );
1143 while ( parser.nextTag() == XmlPullParser.START_TAG )
1144 {
1145 if ( "filter".equals( parser.getName() ) )
1146 {
1147 filters.add( getTrimmedValue( parser.nextText() ) );
1148 }
1149 else
1150 {
1151 checkUnknownElement( parser, strict );
1152 }
1153 }
1154 }
1155 else if ( checkFieldWithDuplicate( parser, "pluginManagement", null, parsed ) )
1156 {
1157 build.setPluginManagement( parsePluginManagement( parser, strict ) );
1158 }
1159 else if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
1160 {
1161 java.util.List plugins = new java.util.ArrayList/*<Plugin>*/();
1162 build.setPlugins( plugins );
1163 while ( parser.nextTag() == XmlPullParser.START_TAG )
1164 {
1165 if ( "plugin".equals( parser.getName() ) )
1166 {
1167 plugins.add( parsePlugin( parser, strict ) );
1168 }
1169 else
1170 {
1171 checkUnknownElement( parser, strict );
1172 }
1173 }
1174 }
1175 else
1176 {
1177 checkUnknownElement( parser, strict );
1178 }
1179 }
1180 return build;
1181 } //-- Build parseBuild( XmlPullParser, boolean )
1182
1183 /**
1184 * Method parseBuildBase.
1185 *
1186 * @param parser
1187 * @param strict
1188 * @throws IOException
1189 * @throws XmlPullParserException
1190 * @return BuildBase
1191 */
1192 private BuildBase parseBuildBase( XmlPullParser parser, boolean strict )
1193 throws IOException, XmlPullParserException
1194 {
1195 String tagName = parser.getName();
1196 BuildBase buildBase = new BuildBase();
1197 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1198 {
1199 String name = parser.getAttributeName( i );
1200 String value = parser.getAttributeValue( i );
1201
1202 if ( name.indexOf( ':' ) >= 0 )
1203 {
1204 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1205 }
1206 else
1207 {
1208 checkUnknownAttribute( parser, name, tagName, strict );
1209 }
1210 }
1211 java.util.Set parsed = new java.util.HashSet();
1212 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1213 {
1214 if ( checkFieldWithDuplicate( parser, "defaultGoal", null, parsed ) )
1215 {
1216 buildBase.setDefaultGoal( getTrimmedValue( parser.nextText() ) );
1217 }
1218 else if ( checkFieldWithDuplicate( parser, "resources", null, parsed ) )
1219 {
1220 java.util.List resources = new java.util.ArrayList/*<Resource>*/();
1221 buildBase.setResources( resources );
1222 while ( parser.nextTag() == XmlPullParser.START_TAG )
1223 {
1224 if ( "resource".equals( parser.getName() ) )
1225 {
1226 resources.add( parseResource( parser, strict ) );
1227 }
1228 else
1229 {
1230 checkUnknownElement( parser, strict );
1231 }
1232 }
1233 }
1234 else if ( checkFieldWithDuplicate( parser, "testResources", null, parsed ) )
1235 {
1236 java.util.List testResources = new java.util.ArrayList/*<Resource>*/();
1237 buildBase.setTestResources( testResources );
1238 while ( parser.nextTag() == XmlPullParser.START_TAG )
1239 {
1240 if ( "testResource".equals( parser.getName() ) )
1241 {
1242 testResources.add( parseResource( parser, strict ) );
1243 }
1244 else
1245 {
1246 checkUnknownElement( parser, strict );
1247 }
1248 }
1249 }
1250 else if ( checkFieldWithDuplicate( parser, "directory", null, parsed ) )
1251 {
1252 buildBase.setDirectory( getTrimmedValue( parser.nextText() ) );
1253 }
1254 else if ( checkFieldWithDuplicate( parser, "finalName", null, parsed ) )
1255 {
1256 buildBase.setFinalName( getTrimmedValue( parser.nextText() ) );
1257 }
1258 else if ( checkFieldWithDuplicate( parser, "filters", null, parsed ) )
1259 {
1260 java.util.List filters = new java.util.ArrayList/*<String>*/();
1261 buildBase.setFilters( filters );
1262 while ( parser.nextTag() == XmlPullParser.START_TAG )
1263 {
1264 if ( "filter".equals( parser.getName() ) )
1265 {
1266 filters.add( getTrimmedValue( parser.nextText() ) );
1267 }
1268 else
1269 {
1270 checkUnknownElement( parser, strict );
1271 }
1272 }
1273 }
1274 else if ( checkFieldWithDuplicate( parser, "pluginManagement", null, parsed ) )
1275 {
1276 buildBase.setPluginManagement( parsePluginManagement( parser, strict ) );
1277 }
1278 else if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
1279 {
1280 java.util.List plugins = new java.util.ArrayList/*<Plugin>*/();
1281 buildBase.setPlugins( plugins );
1282 while ( parser.nextTag() == XmlPullParser.START_TAG )
1283 {
1284 if ( "plugin".equals( parser.getName() ) )
1285 {
1286 plugins.add( parsePlugin( parser, strict ) );
1287 }
1288 else
1289 {
1290 checkUnknownElement( parser, strict );
1291 }
1292 }
1293 }
1294 else
1295 {
1296 checkUnknownElement( parser, strict );
1297 }
1298 }
1299 return buildBase;
1300 } //-- BuildBase parseBuildBase( XmlPullParser, boolean )
1301
1302 /**
1303 * Method parseCiManagement.
1304 *
1305 * @param parser
1306 * @param strict
1307 * @throws IOException
1308 * @throws XmlPullParserException
1309 * @return CiManagement
1310 */
1311 private CiManagement parseCiManagement( XmlPullParser parser, boolean strict )
1312 throws IOException, XmlPullParserException
1313 {
1314 String tagName = parser.getName();
1315 CiManagement ciManagement = new CiManagement();
1316 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1317 {
1318 String name = parser.getAttributeName( i );
1319 String value = parser.getAttributeValue( i );
1320
1321 if ( name.indexOf( ':' ) >= 0 )
1322 {
1323 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1324 }
1325 else
1326 {
1327 checkUnknownAttribute( parser, name, tagName, strict );
1328 }
1329 }
1330 java.util.Set parsed = new java.util.HashSet();
1331 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1332 {
1333 if ( checkFieldWithDuplicate( parser, "system", null, parsed ) )
1334 {
1335 ciManagement.setSystem( getTrimmedValue( parser.nextText() ) );
1336 }
1337 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
1338 {
1339 ciManagement.setUrl( getTrimmedValue( parser.nextText() ) );
1340 }
1341 else if ( checkFieldWithDuplicate( parser, "notifiers", null, parsed ) )
1342 {
1343 java.util.List notifiers = new java.util.ArrayList/*<Notifier>*/();
1344 ciManagement.setNotifiers( notifiers );
1345 while ( parser.nextTag() == XmlPullParser.START_TAG )
1346 {
1347 if ( "notifier".equals( parser.getName() ) )
1348 {
1349 notifiers.add( parseNotifier( parser, strict ) );
1350 }
1351 else
1352 {
1353 checkUnknownElement( parser, strict );
1354 }
1355 }
1356 }
1357 else
1358 {
1359 checkUnknownElement( parser, strict );
1360 }
1361 }
1362 return ciManagement;
1363 } //-- CiManagement parseCiManagement( XmlPullParser, boolean )
1364
1365 /**
1366 * Method parseConfigurationContainer.
1367 *
1368 * @param parser
1369 * @param strict
1370 * @throws IOException
1371 * @throws XmlPullParserException
1372 * @return ConfigurationContainer
1373 */
1374 private ConfigurationContainer parseConfigurationContainer( XmlPullParser parser, boolean strict )
1375 throws IOException, XmlPullParserException
1376 {
1377 String tagName = parser.getName();
1378 ConfigurationContainer configurationContainer = new ConfigurationContainer();
1379 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1380 {
1381 String name = parser.getAttributeName( i );
1382 String value = parser.getAttributeValue( i );
1383
1384 if ( name.indexOf( ':' ) >= 0 )
1385 {
1386 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1387 }
1388 else
1389 {
1390 checkUnknownAttribute( parser, name, tagName, strict );
1391 }
1392 }
1393 java.util.Set parsed = new java.util.HashSet();
1394 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1395 {
1396 if ( checkFieldWithDuplicate( parser, "inherited", null, parsed ) )
1397 {
1398 configurationContainer.setInherited( getTrimmedValue( parser.nextText() ) );
1399 }
1400 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
1401 {
1402 configurationContainer.setConfiguration( Xpp3DomBuilder.build( parser ) );
1403 }
1404 else
1405 {
1406 checkUnknownElement( parser, strict );
1407 }
1408 }
1409 return configurationContainer;
1410 } //-- ConfigurationContainer parseConfigurationContainer( XmlPullParser, boolean )
1411
1412 /**
1413 * Method parseContributor.
1414 *
1415 * @param parser
1416 * @param strict
1417 * @throws IOException
1418 * @throws XmlPullParserException
1419 * @return Contributor
1420 */
1421 private Contributor parseContributor( XmlPullParser parser, boolean strict )
1422 throws IOException, XmlPullParserException
1423 {
1424 String tagName = parser.getName();
1425 Contributor contributor = new Contributor();
1426 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1427 {
1428 String name = parser.getAttributeName( i );
1429 String value = parser.getAttributeValue( i );
1430
1431 if ( name.indexOf( ':' ) >= 0 )
1432 {
1433 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1434 }
1435 else
1436 {
1437 checkUnknownAttribute( parser, name, tagName, strict );
1438 }
1439 }
1440 java.util.Set parsed = new java.util.HashSet();
1441 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1442 {
1443 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
1444 {
1445 contributor.setName( getTrimmedValue( parser.nextText() ) );
1446 }
1447 else if ( checkFieldWithDuplicate( parser, "email", null, parsed ) )
1448 {
1449 contributor.setEmail( getTrimmedValue( parser.nextText() ) );
1450 }
1451 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
1452 {
1453 contributor.setUrl( getTrimmedValue( parser.nextText() ) );
1454 }
1455 else if ( checkFieldWithDuplicate( parser, "organization", "organisation", parsed ) )
1456 {
1457 contributor.setOrganization( getTrimmedValue( parser.nextText() ) );
1458 }
1459 else if ( checkFieldWithDuplicate( parser, "organizationUrl", "organisationUrl", parsed ) )
1460 {
1461 contributor.setOrganizationUrl( getTrimmedValue( parser.nextText() ) );
1462 }
1463 else if ( checkFieldWithDuplicate( parser, "roles", null, parsed ) )
1464 {
1465 java.util.List roles = new java.util.ArrayList/*<String>*/();
1466 contributor.setRoles( roles );
1467 while ( parser.nextTag() == XmlPullParser.START_TAG )
1468 {
1469 if ( "role".equals( parser.getName() ) )
1470 {
1471 roles.add( getTrimmedValue( parser.nextText() ) );
1472 }
1473 else
1474 {
1475 checkUnknownElement( parser, strict );
1476 }
1477 }
1478 }
1479 else if ( checkFieldWithDuplicate( parser, "timezone", null, parsed ) )
1480 {
1481 contributor.setTimezone( getTrimmedValue( parser.nextText() ) );
1482 }
1483 else if ( checkFieldWithDuplicate( parser, "properties", null, parsed ) )
1484 {
1485 while ( parser.nextTag() == XmlPullParser.START_TAG )
1486 {
1487 String key = parser.getName();
1488 String value = parser.nextText().trim();
1489 contributor.addProperty( key, value );
1490 }
1491 }
1492 else
1493 {
1494 checkUnknownElement( parser, strict );
1495 }
1496 }
1497 return contributor;
1498 } //-- Contributor parseContributor( XmlPullParser, boolean )
1499
1500 /**
1501 * Method parseDependency.
1502 *
1503 * @param parser
1504 * @param strict
1505 * @throws IOException
1506 * @throws XmlPullParserException
1507 * @return Dependency
1508 */
1509 private Dependency parseDependency( XmlPullParser parser, boolean strict )
1510 throws IOException, XmlPullParserException
1511 {
1512 String tagName = parser.getName();
1513 Dependency dependency = new Dependency();
1514 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1515 {
1516 String name = parser.getAttributeName( i );
1517 String value = parser.getAttributeValue( i );
1518
1519 if ( name.indexOf( ':' ) >= 0 )
1520 {
1521 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1522 }
1523 else
1524 {
1525 checkUnknownAttribute( parser, name, tagName, strict );
1526 }
1527 }
1528 java.util.Set parsed = new java.util.HashSet();
1529 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1530 {
1531 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
1532 {
1533 dependency.setGroupId( getTrimmedValue( parser.nextText() ) );
1534 }
1535 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
1536 {
1537 dependency.setArtifactId( getTrimmedValue( parser.nextText() ) );
1538 }
1539 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
1540 {
1541 dependency.setVersion( getTrimmedValue( parser.nextText() ) );
1542 }
1543 else if ( checkFieldWithDuplicate( parser, "type", null, parsed ) )
1544 {
1545 dependency.setType( getTrimmedValue( parser.nextText() ) );
1546 }
1547 else if ( checkFieldWithDuplicate( parser, "classifier", null, parsed ) )
1548 {
1549 dependency.setClassifier( getTrimmedValue( parser.nextText() ) );
1550 }
1551 else if ( checkFieldWithDuplicate( parser, "scope", null, parsed ) )
1552 {
1553 dependency.setScope( getTrimmedValue( parser.nextText() ) );
1554 }
1555 else if ( checkFieldWithDuplicate( parser, "systemPath", null, parsed ) )
1556 {
1557 dependency.setSystemPath( getTrimmedValue( parser.nextText() ) );
1558 }
1559 else if ( checkFieldWithDuplicate( parser, "exclusions", null, parsed ) )
1560 {
1561 java.util.List exclusions = new java.util.ArrayList/*<Exclusion>*/();
1562 dependency.setExclusions( exclusions );
1563 while ( parser.nextTag() == XmlPullParser.START_TAG )
1564 {
1565 if ( "exclusion".equals( parser.getName() ) )
1566 {
1567 exclusions.add( parseExclusion( parser, strict ) );
1568 }
1569 else
1570 {
1571 checkUnknownElement( parser, strict );
1572 }
1573 }
1574 }
1575 else if ( checkFieldWithDuplicate( parser, "optional", null, parsed ) )
1576 {
1577 dependency.setOptional( getTrimmedValue( parser.nextText() ) );
1578 }
1579 else
1580 {
1581 checkUnknownElement( parser, strict );
1582 }
1583 }
1584 return dependency;
1585 } //-- Dependency parseDependency( XmlPullParser, boolean )
1586
1587 /**
1588 * Method parseDependencyManagement.
1589 *
1590 * @param parser
1591 * @param strict
1592 * @throws IOException
1593 * @throws XmlPullParserException
1594 * @return DependencyManagement
1595 */
1596 private DependencyManagement parseDependencyManagement( XmlPullParser parser, boolean strict )
1597 throws IOException, XmlPullParserException
1598 {
1599 String tagName = parser.getName();
1600 DependencyManagement dependencyManagement = new DependencyManagement();
1601 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1602 {
1603 String name = parser.getAttributeName( i );
1604 String value = parser.getAttributeValue( i );
1605
1606 if ( name.indexOf( ':' ) >= 0 )
1607 {
1608 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1609 }
1610 else
1611 {
1612 checkUnknownAttribute( parser, name, tagName, strict );
1613 }
1614 }
1615 java.util.Set parsed = new java.util.HashSet();
1616 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1617 {
1618 if ( checkFieldWithDuplicate( parser, "dependencies", null, parsed ) )
1619 {
1620 java.util.List dependencies = new java.util.ArrayList/*<Dependency>*/();
1621 dependencyManagement.setDependencies( dependencies );
1622 while ( parser.nextTag() == XmlPullParser.START_TAG )
1623 {
1624 if ( "dependency".equals( parser.getName() ) )
1625 {
1626 dependencies.add( parseDependency( parser, strict ) );
1627 }
1628 else
1629 {
1630 checkUnknownElement( parser, strict );
1631 }
1632 }
1633 }
1634 else
1635 {
1636 checkUnknownElement( parser, strict );
1637 }
1638 }
1639 return dependencyManagement;
1640 } //-- DependencyManagement parseDependencyManagement( XmlPullParser, boolean )
1641
1642 /**
1643 * Method parseDeploymentRepository.
1644 *
1645 * @param parser
1646 * @param strict
1647 * @throws IOException
1648 * @throws XmlPullParserException
1649 * @return DeploymentRepository
1650 */
1651 private DeploymentRepository parseDeploymentRepository( XmlPullParser parser, boolean strict )
1652 throws IOException, XmlPullParserException
1653 {
1654 String tagName = parser.getName();
1655 DeploymentRepository deploymentRepository = new DeploymentRepository();
1656 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1657 {
1658 String name = parser.getAttributeName( i );
1659 String value = parser.getAttributeValue( i );
1660
1661 if ( name.indexOf( ':' ) >= 0 )
1662 {
1663 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1664 }
1665 else
1666 {
1667 checkUnknownAttribute( parser, name, tagName, strict );
1668 }
1669 }
1670 java.util.Set parsed = new java.util.HashSet();
1671 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1672 {
1673 if ( checkFieldWithDuplicate( parser, "uniqueVersion", null, parsed ) )
1674 {
1675 deploymentRepository.setUniqueVersion( getBooleanValue( getTrimmedValue( parser.nextText() ), "uniqueVersion", parser, "true" ) );
1676 }
1677 else if ( checkFieldWithDuplicate( parser, "releases", null, parsed ) )
1678 {
1679 deploymentRepository.setReleases( parseRepositoryPolicy( parser, strict ) );
1680 }
1681 else if ( checkFieldWithDuplicate( parser, "snapshots", null, parsed ) )
1682 {
1683 deploymentRepository.setSnapshots( parseRepositoryPolicy( parser, strict ) );
1684 }
1685 else if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
1686 {
1687 deploymentRepository.setId( getTrimmedValue( parser.nextText() ) );
1688 }
1689 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
1690 {
1691 deploymentRepository.setName( getTrimmedValue( parser.nextText() ) );
1692 }
1693 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
1694 {
1695 deploymentRepository.setUrl( getTrimmedValue( parser.nextText() ) );
1696 }
1697 else if ( checkFieldWithDuplicate( parser, "layout", null, parsed ) )
1698 {
1699 deploymentRepository.setLayout( getTrimmedValue( parser.nextText() ) );
1700 }
1701 else
1702 {
1703 checkUnknownElement( parser, strict );
1704 }
1705 }
1706 return deploymentRepository;
1707 } //-- DeploymentRepository parseDeploymentRepository( XmlPullParser, boolean )
1708
1709 /**
1710 * Method parseDeveloper.
1711 *
1712 * @param parser
1713 * @param strict
1714 * @throws IOException
1715 * @throws XmlPullParserException
1716 * @return Developer
1717 */
1718 private Developer parseDeveloper( XmlPullParser parser, boolean strict )
1719 throws IOException, XmlPullParserException
1720 {
1721 String tagName = parser.getName();
1722 Developer developer = new Developer();
1723 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1724 {
1725 String name = parser.getAttributeName( i );
1726 String value = parser.getAttributeValue( i );
1727
1728 if ( name.indexOf( ':' ) >= 0 )
1729 {
1730 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1731 }
1732 else
1733 {
1734 checkUnknownAttribute( parser, name, tagName, strict );
1735 }
1736 }
1737 java.util.Set parsed = new java.util.HashSet();
1738 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1739 {
1740 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
1741 {
1742 developer.setId( getTrimmedValue( parser.nextText() ) );
1743 }
1744 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
1745 {
1746 developer.setName( getTrimmedValue( parser.nextText() ) );
1747 }
1748 else if ( checkFieldWithDuplicate( parser, "email", null, parsed ) )
1749 {
1750 developer.setEmail( getTrimmedValue( parser.nextText() ) );
1751 }
1752 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
1753 {
1754 developer.setUrl( getTrimmedValue( parser.nextText() ) );
1755 }
1756 else if ( checkFieldWithDuplicate( parser, "organization", "organisation", parsed ) )
1757 {
1758 developer.setOrganization( getTrimmedValue( parser.nextText() ) );
1759 }
1760 else if ( checkFieldWithDuplicate( parser, "organizationUrl", "organisationUrl", parsed ) )
1761 {
1762 developer.setOrganizationUrl( getTrimmedValue( parser.nextText() ) );
1763 }
1764 else if ( checkFieldWithDuplicate( parser, "roles", null, parsed ) )
1765 {
1766 java.util.List roles = new java.util.ArrayList/*<String>*/();
1767 developer.setRoles( roles );
1768 while ( parser.nextTag() == XmlPullParser.START_TAG )
1769 {
1770 if ( "role".equals( parser.getName() ) )
1771 {
1772 roles.add( getTrimmedValue( parser.nextText() ) );
1773 }
1774 else
1775 {
1776 checkUnknownElement( parser, strict );
1777 }
1778 }
1779 }
1780 else if ( checkFieldWithDuplicate( parser, "timezone", null, parsed ) )
1781 {
1782 developer.setTimezone( getTrimmedValue( parser.nextText() ) );
1783 }
1784 else if ( checkFieldWithDuplicate( parser, "properties", null, parsed ) )
1785 {
1786 while ( parser.nextTag() == XmlPullParser.START_TAG )
1787 {
1788 String key = parser.getName();
1789 String value = parser.nextText().trim();
1790 developer.addProperty( key, value );
1791 }
1792 }
1793 else
1794 {
1795 checkUnknownElement( parser, strict );
1796 }
1797 }
1798 return developer;
1799 } //-- Developer parseDeveloper( XmlPullParser, boolean )
1800
1801 /**
1802 * Method parseDistributionManagement.
1803 *
1804 * @param parser
1805 * @param strict
1806 * @throws IOException
1807 * @throws XmlPullParserException
1808 * @return DistributionManagement
1809 */
1810 private DistributionManagement parseDistributionManagement( XmlPullParser parser, boolean strict )
1811 throws IOException, XmlPullParserException
1812 {
1813 String tagName = parser.getName();
1814 DistributionManagement distributionManagement = new DistributionManagement();
1815 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1816 {
1817 String name = parser.getAttributeName( i );
1818 String value = parser.getAttributeValue( i );
1819
1820 if ( name.indexOf( ':' ) >= 0 )
1821 {
1822 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1823 }
1824 else
1825 {
1826 checkUnknownAttribute( parser, name, tagName, strict );
1827 }
1828 }
1829 java.util.Set parsed = new java.util.HashSet();
1830 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1831 {
1832 if ( checkFieldWithDuplicate( parser, "repository", null, parsed ) )
1833 {
1834 distributionManagement.setRepository( parseDeploymentRepository( parser, strict ) );
1835 }
1836 else if ( checkFieldWithDuplicate( parser, "snapshotRepository", null, parsed ) )
1837 {
1838 distributionManagement.setSnapshotRepository( parseDeploymentRepository( parser, strict ) );
1839 }
1840 else if ( checkFieldWithDuplicate( parser, "site", null, parsed ) )
1841 {
1842 distributionManagement.setSite( parseSite( parser, strict ) );
1843 }
1844 else if ( checkFieldWithDuplicate( parser, "downloadUrl", null, parsed ) )
1845 {
1846 distributionManagement.setDownloadUrl( getTrimmedValue( parser.nextText() ) );
1847 }
1848 else if ( checkFieldWithDuplicate( parser, "relocation", null, parsed ) )
1849 {
1850 distributionManagement.setRelocation( parseRelocation( parser, strict ) );
1851 }
1852 else if ( checkFieldWithDuplicate( parser, "status", null, parsed ) )
1853 {
1854 distributionManagement.setStatus( getTrimmedValue( parser.nextText() ) );
1855 }
1856 else
1857 {
1858 checkUnknownElement( parser, strict );
1859 }
1860 }
1861 return distributionManagement;
1862 } //-- DistributionManagement parseDistributionManagement( XmlPullParser, boolean )
1863
1864 /**
1865 * Method parseExclusion.
1866 *
1867 * @param parser
1868 * @param strict
1869 * @throws IOException
1870 * @throws XmlPullParserException
1871 * @return Exclusion
1872 */
1873 private Exclusion parseExclusion( XmlPullParser parser, boolean strict )
1874 throws IOException, XmlPullParserException
1875 {
1876 String tagName = parser.getName();
1877 Exclusion exclusion = new Exclusion();
1878 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1879 {
1880 String name = parser.getAttributeName( i );
1881 String value = parser.getAttributeValue( i );
1882
1883 if ( name.indexOf( ':' ) >= 0 )
1884 {
1885 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1886 }
1887 else
1888 {
1889 checkUnknownAttribute( parser, name, tagName, strict );
1890 }
1891 }
1892 java.util.Set parsed = new java.util.HashSet();
1893 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1894 {
1895 if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
1896 {
1897 exclusion.setArtifactId( getTrimmedValue( parser.nextText() ) );
1898 }
1899 else if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
1900 {
1901 exclusion.setGroupId( getTrimmedValue( parser.nextText() ) );
1902 }
1903 else
1904 {
1905 checkUnknownElement( parser, strict );
1906 }
1907 }
1908 return exclusion;
1909 } //-- Exclusion parseExclusion( XmlPullParser, boolean )
1910
1911 /**
1912 * Method parseExtension.
1913 *
1914 * @param parser
1915 * @param strict
1916 * @throws IOException
1917 * @throws XmlPullParserException
1918 * @return Extension
1919 */
1920 private Extension parseExtension( XmlPullParser parser, boolean strict )
1921 throws IOException, XmlPullParserException
1922 {
1923 String tagName = parser.getName();
1924 Extension extension = new Extension();
1925 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1926 {
1927 String name = parser.getAttributeName( i );
1928 String value = parser.getAttributeValue( i );
1929
1930 if ( name.indexOf( ':' ) >= 0 )
1931 {
1932 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1933 }
1934 else
1935 {
1936 checkUnknownAttribute( parser, name, tagName, strict );
1937 }
1938 }
1939 java.util.Set parsed = new java.util.HashSet();
1940 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1941 {
1942 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
1943 {
1944 extension.setGroupId( getTrimmedValue( parser.nextText() ) );
1945 }
1946 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
1947 {
1948 extension.setArtifactId( getTrimmedValue( parser.nextText() ) );
1949 }
1950 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
1951 {
1952 extension.setVersion( getTrimmedValue( parser.nextText() ) );
1953 }
1954 else
1955 {
1956 checkUnknownElement( parser, strict );
1957 }
1958 }
1959 return extension;
1960 } //-- Extension parseExtension( XmlPullParser, boolean )
1961
1962 /**
1963 * Method parseFileSet.
1964 *
1965 * @param parser
1966 * @param strict
1967 * @throws IOException
1968 * @throws XmlPullParserException
1969 * @return FileSet
1970 */
1971 private FileSet parseFileSet( XmlPullParser parser, boolean strict )
1972 throws IOException, XmlPullParserException
1973 {
1974 String tagName = parser.getName();
1975 FileSet fileSet = new FileSet();
1976 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
1977 {
1978 String name = parser.getAttributeName( i );
1979 String value = parser.getAttributeValue( i );
1980
1981 if ( name.indexOf( ':' ) >= 0 )
1982 {
1983 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
1984 }
1985 else
1986 {
1987 checkUnknownAttribute( parser, name, tagName, strict );
1988 }
1989 }
1990 java.util.Set parsed = new java.util.HashSet();
1991 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
1992 {
1993 if ( checkFieldWithDuplicate( parser, "directory", null, parsed ) )
1994 {
1995 fileSet.setDirectory( getTrimmedValue( parser.nextText() ) );
1996 }
1997 else if ( checkFieldWithDuplicate( parser, "includes", null, parsed ) )
1998 {
1999 java.util.List includes = new java.util.ArrayList/*<String>*/();
2000 fileSet.setIncludes( includes );
2001 while ( parser.nextTag() == XmlPullParser.START_TAG )
2002 {
2003 if ( "include".equals( parser.getName() ) )
2004 {
2005 includes.add( getTrimmedValue( parser.nextText() ) );
2006 }
2007 else
2008 {
2009 checkUnknownElement( parser, strict );
2010 }
2011 }
2012 }
2013 else if ( checkFieldWithDuplicate( parser, "excludes", null, parsed ) )
2014 {
2015 java.util.List excludes = new java.util.ArrayList/*<String>*/();
2016 fileSet.setExcludes( excludes );
2017 while ( parser.nextTag() == XmlPullParser.START_TAG )
2018 {
2019 if ( "exclude".equals( parser.getName() ) )
2020 {
2021 excludes.add( getTrimmedValue( parser.nextText() ) );
2022 }
2023 else
2024 {
2025 checkUnknownElement( parser, strict );
2026 }
2027 }
2028 }
2029 else
2030 {
2031 checkUnknownElement( parser, strict );
2032 }
2033 }
2034 return fileSet;
2035 } //-- FileSet parseFileSet( XmlPullParser, boolean )
2036
2037 /**
2038 * Method parseIssueManagement.
2039 *
2040 * @param parser
2041 * @param strict
2042 * @throws IOException
2043 * @throws XmlPullParserException
2044 * @return IssueManagement
2045 */
2046 private IssueManagement parseIssueManagement( XmlPullParser parser, boolean strict )
2047 throws IOException, XmlPullParserException
2048 {
2049 String tagName = parser.getName();
2050 IssueManagement issueManagement = new IssueManagement();
2051 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2052 {
2053 String name = parser.getAttributeName( i );
2054 String value = parser.getAttributeValue( i );
2055
2056 if ( name.indexOf( ':' ) >= 0 )
2057 {
2058 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2059 }
2060 else
2061 {
2062 checkUnknownAttribute( parser, name, tagName, strict );
2063 }
2064 }
2065 java.util.Set parsed = new java.util.HashSet();
2066 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2067 {
2068 if ( checkFieldWithDuplicate( parser, "system", null, parsed ) )
2069 {
2070 issueManagement.setSystem( getTrimmedValue( parser.nextText() ) );
2071 }
2072 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
2073 {
2074 issueManagement.setUrl( getTrimmedValue( parser.nextText() ) );
2075 }
2076 else
2077 {
2078 checkUnknownElement( parser, strict );
2079 }
2080 }
2081 return issueManagement;
2082 } //-- IssueManagement parseIssueManagement( XmlPullParser, boolean )
2083
2084 /**
2085 * Method parseLicense.
2086 *
2087 * @param parser
2088 * @param strict
2089 * @throws IOException
2090 * @throws XmlPullParserException
2091 * @return License
2092 */
2093 private License parseLicense( XmlPullParser parser, boolean strict )
2094 throws IOException, XmlPullParserException
2095 {
2096 String tagName = parser.getName();
2097 License license = new License();
2098 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2099 {
2100 String name = parser.getAttributeName( i );
2101 String value = parser.getAttributeValue( i );
2102
2103 if ( name.indexOf( ':' ) >= 0 )
2104 {
2105 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2106 }
2107 else
2108 {
2109 checkUnknownAttribute( parser, name, tagName, strict );
2110 }
2111 }
2112 java.util.Set parsed = new java.util.HashSet();
2113 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2114 {
2115 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
2116 {
2117 license.setName( getTrimmedValue( parser.nextText() ) );
2118 }
2119 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
2120 {
2121 license.setUrl( getTrimmedValue( parser.nextText() ) );
2122 }
2123 else if ( checkFieldWithDuplicate( parser, "distribution", null, parsed ) )
2124 {
2125 license.setDistribution( getTrimmedValue( parser.nextText() ) );
2126 }
2127 else if ( checkFieldWithDuplicate( parser, "comments", null, parsed ) )
2128 {
2129 license.setComments( getTrimmedValue( parser.nextText() ) );
2130 }
2131 else
2132 {
2133 checkUnknownElement( parser, strict );
2134 }
2135 }
2136 return license;
2137 } //-- License parseLicense( XmlPullParser, boolean )
2138
2139 /**
2140 * Method parseMailingList.
2141 *
2142 * @param parser
2143 * @param strict
2144 * @throws IOException
2145 * @throws XmlPullParserException
2146 * @return MailingList
2147 */
2148 private MailingList parseMailingList( XmlPullParser parser, boolean strict )
2149 throws IOException, XmlPullParserException
2150 {
2151 String tagName = parser.getName();
2152 MailingList mailingList = new MailingList();
2153 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2154 {
2155 String name = parser.getAttributeName( i );
2156 String value = parser.getAttributeValue( i );
2157
2158 if ( name.indexOf( ':' ) >= 0 )
2159 {
2160 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2161 }
2162 else
2163 {
2164 checkUnknownAttribute( parser, name, tagName, strict );
2165 }
2166 }
2167 java.util.Set parsed = new java.util.HashSet();
2168 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2169 {
2170 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
2171 {
2172 mailingList.setName( getTrimmedValue( parser.nextText() ) );
2173 }
2174 else if ( checkFieldWithDuplicate( parser, "subscribe", null, parsed ) )
2175 {
2176 mailingList.setSubscribe( getTrimmedValue( parser.nextText() ) );
2177 }
2178 else if ( checkFieldWithDuplicate( parser, "unsubscribe", null, parsed ) )
2179 {
2180 mailingList.setUnsubscribe( getTrimmedValue( parser.nextText() ) );
2181 }
2182 else if ( checkFieldWithDuplicate( parser, "post", null, parsed ) )
2183 {
2184 mailingList.setPost( getTrimmedValue( parser.nextText() ) );
2185 }
2186 else if ( checkFieldWithDuplicate( parser, "archive", null, parsed ) )
2187 {
2188 mailingList.setArchive( getTrimmedValue( parser.nextText() ) );
2189 }
2190 else if ( checkFieldWithDuplicate( parser, "otherArchives", null, parsed ) )
2191 {
2192 java.util.List otherArchives = new java.util.ArrayList/*<String>*/();
2193 mailingList.setOtherArchives( otherArchives );
2194 while ( parser.nextTag() == XmlPullParser.START_TAG )
2195 {
2196 if ( "otherArchive".equals( parser.getName() ) )
2197 {
2198 otherArchives.add( getTrimmedValue( parser.nextText() ) );
2199 }
2200 else
2201 {
2202 checkUnknownElement( parser, strict );
2203 }
2204 }
2205 }
2206 else
2207 {
2208 checkUnknownElement( parser, strict );
2209 }
2210 }
2211 return mailingList;
2212 } //-- MailingList parseMailingList( XmlPullParser, boolean )
2213
2214 /**
2215 * Method parseModel.
2216 *
2217 * @param parser
2218 * @param strict
2219 * @throws IOException
2220 * @throws XmlPullParserException
2221 * @return Model
2222 */
2223 private Model parseModel( XmlPullParser parser, boolean strict )
2224 throws IOException, XmlPullParserException
2225 {
2226 String tagName = parser.getName();
2227 Model model = new Model();
2228 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2229 {
2230 String name = parser.getAttributeName( i );
2231 String value = parser.getAttributeValue( i );
2232
2233 if ( name.indexOf( ':' ) >= 0 )
2234 {
2235 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2236 }
2237 else if ( "xmlns".equals( name ) )
2238 {
2239 // ignore xmlns attribute in root class, which is a reserved attribute name
2240 }
2241 else
2242 {
2243 checkUnknownAttribute( parser, name, tagName, strict );
2244 }
2245 }
2246 java.util.Set parsed = new java.util.HashSet();
2247 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2248 {
2249 if ( checkFieldWithDuplicate( parser, "modelVersion", null, parsed ) )
2250 {
2251 model.setModelVersion( getTrimmedValue( parser.nextText() ) );
2252 }
2253 else if ( checkFieldWithDuplicate( parser, "parent", null, parsed ) )
2254 {
2255 model.setParent( parseParent( parser, strict ) );
2256 }
2257 else if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
2258 {
2259 model.setGroupId( getTrimmedValue( parser.nextText() ) );
2260 }
2261 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
2262 {
2263 model.setArtifactId( getTrimmedValue( parser.nextText() ) );
2264 }
2265 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
2266 {
2267 model.setVersion( getTrimmedValue( parser.nextText() ) );
2268 }
2269 else if ( checkFieldWithDuplicate( parser, "packaging", null, parsed ) )
2270 {
2271 model.setPackaging( getTrimmedValue( parser.nextText() ) );
2272 }
2273 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
2274 {
2275 model.setName( getTrimmedValue( parser.nextText() ) );
2276 }
2277 else if ( checkFieldWithDuplicate( parser, "description", null, parsed ) )
2278 {
2279 model.setDescription( getTrimmedValue( parser.nextText() ) );
2280 }
2281 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
2282 {
2283 model.setUrl( getTrimmedValue( parser.nextText() ) );
2284 }
2285 else if ( checkFieldWithDuplicate( parser, "inceptionYear", null, parsed ) )
2286 {
2287 model.setInceptionYear( getTrimmedValue( parser.nextText() ) );
2288 }
2289 else if ( checkFieldWithDuplicate( parser, "organization", "organisation", parsed ) )
2290 {
2291 model.setOrganization( parseOrganization( parser, strict ) );
2292 }
2293 else if ( checkFieldWithDuplicate( parser, "licenses", null, parsed ) )
2294 {
2295 java.util.List licenses = new java.util.ArrayList/*<License>*/();
2296 model.setLicenses( licenses );
2297 while ( parser.nextTag() == XmlPullParser.START_TAG )
2298 {
2299 if ( "license".equals( parser.getName() ) )
2300 {
2301 licenses.add( parseLicense( parser, strict ) );
2302 }
2303 else
2304 {
2305 checkUnknownElement( parser, strict );
2306 }
2307 }
2308 }
2309 else if ( checkFieldWithDuplicate( parser, "developers", null, parsed ) )
2310 {
2311 java.util.List developers = new java.util.ArrayList/*<Developer>*/();
2312 model.setDevelopers( developers );
2313 while ( parser.nextTag() == XmlPullParser.START_TAG )
2314 {
2315 if ( "developer".equals( parser.getName() ) )
2316 {
2317 developers.add( parseDeveloper( parser, strict ) );
2318 }
2319 else
2320 {
2321 checkUnknownElement( parser, strict );
2322 }
2323 }
2324 }
2325 else if ( checkFieldWithDuplicate( parser, "contributors", null, parsed ) )
2326 {
2327 java.util.List contributors = new java.util.ArrayList/*<Contributor>*/();
2328 model.setContributors( contributors );
2329 while ( parser.nextTag() == XmlPullParser.START_TAG )
2330 {
2331 if ( "contributor".equals( parser.getName() ) )
2332 {
2333 contributors.add( parseContributor( parser, strict ) );
2334 }
2335 else
2336 {
2337 checkUnknownElement( parser, strict );
2338 }
2339 }
2340 }
2341 else if ( checkFieldWithDuplicate( parser, "mailingLists", null, parsed ) )
2342 {
2343 java.util.List mailingLists = new java.util.ArrayList/*<MailingList>*/();
2344 model.setMailingLists( mailingLists );
2345 while ( parser.nextTag() == XmlPullParser.START_TAG )
2346 {
2347 if ( "mailingList".equals( parser.getName() ) )
2348 {
2349 mailingLists.add( parseMailingList( parser, strict ) );
2350 }
2351 else
2352 {
2353 checkUnknownElement( parser, strict );
2354 }
2355 }
2356 }
2357 else if ( checkFieldWithDuplicate( parser, "prerequisites", null, parsed ) )
2358 {
2359 model.setPrerequisites( parsePrerequisites( parser, strict ) );
2360 }
2361 else if ( checkFieldWithDuplicate( parser, "modules", null, parsed ) )
2362 {
2363 java.util.List modules = new java.util.ArrayList/*<String>*/();
2364 model.setModules( modules );
2365 while ( parser.nextTag() == XmlPullParser.START_TAG )
2366 {
2367 if ( "module".equals( parser.getName() ) )
2368 {
2369 modules.add( getTrimmedValue( parser.nextText() ) );
2370 }
2371 else
2372 {
2373 checkUnknownElement( parser, strict );
2374 }
2375 }
2376 }
2377 else if ( checkFieldWithDuplicate( parser, "scm", null, parsed ) )
2378 {
2379 model.setScm( parseScm( parser, strict ) );
2380 }
2381 else if ( checkFieldWithDuplicate( parser, "issueManagement", null, parsed ) )
2382 {
2383 model.setIssueManagement( parseIssueManagement( parser, strict ) );
2384 }
2385 else if ( checkFieldWithDuplicate( parser, "ciManagement", null, parsed ) )
2386 {
2387 model.setCiManagement( parseCiManagement( parser, strict ) );
2388 }
2389 else if ( checkFieldWithDuplicate( parser, "distributionManagement", null, parsed ) )
2390 {
2391 model.setDistributionManagement( parseDistributionManagement( parser, strict ) );
2392 }
2393 else if ( checkFieldWithDuplicate( parser, "properties", null, parsed ) )
2394 {
2395 while ( parser.nextTag() == XmlPullParser.START_TAG )
2396 {
2397 String key = parser.getName();
2398 String value = parser.nextText().trim();
2399 model.addProperty( key, value );
2400 }
2401 }
2402 else if ( checkFieldWithDuplicate( parser, "dependencyManagement", null, parsed ) )
2403 {
2404 model.setDependencyManagement( parseDependencyManagement( parser, strict ) );
2405 }
2406 else if ( checkFieldWithDuplicate( parser, "dependencies", null, parsed ) )
2407 {
2408 java.util.List dependencies = new java.util.ArrayList/*<Dependency>*/();
2409 model.setDependencies( dependencies );
2410 while ( parser.nextTag() == XmlPullParser.START_TAG )
2411 {
2412 if ( "dependency".equals( parser.getName() ) )
2413 {
2414 dependencies.add( parseDependency( parser, strict ) );
2415 }
2416 else
2417 {
2418 checkUnknownElement( parser, strict );
2419 }
2420 }
2421 }
2422 else if ( checkFieldWithDuplicate( parser, "repositories", null, parsed ) )
2423 {
2424 java.util.List repositories = new java.util.ArrayList/*<Repository>*/();
2425 model.setRepositories( repositories );
2426 while ( parser.nextTag() == XmlPullParser.START_TAG )
2427 {
2428 if ( "repository".equals( parser.getName() ) )
2429 {
2430 repositories.add( parseRepository( parser, strict ) );
2431 }
2432 else
2433 {
2434 checkUnknownElement( parser, strict );
2435 }
2436 }
2437 }
2438 else if ( checkFieldWithDuplicate( parser, "pluginRepositories", null, parsed ) )
2439 {
2440 java.util.List pluginRepositories = new java.util.ArrayList/*<Repository>*/();
2441 model.setPluginRepositories( pluginRepositories );
2442 while ( parser.nextTag() == XmlPullParser.START_TAG )
2443 {
2444 if ( "pluginRepository".equals( parser.getName() ) )
2445 {
2446 pluginRepositories.add( parseRepository( parser, strict ) );
2447 }
2448 else
2449 {
2450 checkUnknownElement( parser, strict );
2451 }
2452 }
2453 }
2454 else if ( checkFieldWithDuplicate( parser, "build", null, parsed ) )
2455 {
2456 model.setBuild( parseBuild( parser, strict ) );
2457 }
2458 else if ( checkFieldWithDuplicate( parser, "reports", null, parsed ) )
2459 {
2460 model.setReports( Xpp3DomBuilder.build( parser ) );
2461 }
2462 else if ( checkFieldWithDuplicate( parser, "reporting", null, parsed ) )
2463 {
2464 model.setReporting( parseReporting( parser, strict ) );
2465 }
2466 else if ( checkFieldWithDuplicate( parser, "profiles", null, parsed ) )
2467 {
2468 java.util.List profiles = new java.util.ArrayList/*<Profile>*/();
2469 model.setProfiles( profiles );
2470 while ( parser.nextTag() == XmlPullParser.START_TAG )
2471 {
2472 if ( "profile".equals( parser.getName() ) )
2473 {
2474 profiles.add( parseProfile( parser, strict ) );
2475 }
2476 else
2477 {
2478 checkUnknownElement( parser, strict );
2479 }
2480 }
2481 }
2482 else
2483 {
2484 checkUnknownElement( parser, strict );
2485 }
2486 }
2487 return model;
2488 } //-- Model parseModel( XmlPullParser, boolean )
2489
2490 /**
2491 * Method parseModelBase.
2492 *
2493 * @param parser
2494 * @param strict
2495 * @throws IOException
2496 * @throws XmlPullParserException
2497 * @return ModelBase
2498 */
2499 private ModelBase parseModelBase( XmlPullParser parser, boolean strict )
2500 throws IOException, XmlPullParserException
2501 {
2502 String tagName = parser.getName();
2503 ModelBase modelBase = new ModelBase();
2504 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2505 {
2506 String name = parser.getAttributeName( i );
2507 String value = parser.getAttributeValue( i );
2508
2509 if ( name.indexOf( ':' ) >= 0 )
2510 {
2511 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2512 }
2513 else
2514 {
2515 checkUnknownAttribute( parser, name, tagName, strict );
2516 }
2517 }
2518 java.util.Set parsed = new java.util.HashSet();
2519 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2520 {
2521 if ( checkFieldWithDuplicate( parser, "modules", null, parsed ) )
2522 {
2523 java.util.List modules = new java.util.ArrayList/*<String>*/();
2524 modelBase.setModules( modules );
2525 while ( parser.nextTag() == XmlPullParser.START_TAG )
2526 {
2527 if ( "module".equals( parser.getName() ) )
2528 {
2529 modules.add( getTrimmedValue( parser.nextText() ) );
2530 }
2531 else
2532 {
2533 checkUnknownElement( parser, strict );
2534 }
2535 }
2536 }
2537 else if ( checkFieldWithDuplicate( parser, "distributionManagement", null, parsed ) )
2538 {
2539 modelBase.setDistributionManagement( parseDistributionManagement( parser, strict ) );
2540 }
2541 else if ( checkFieldWithDuplicate( parser, "properties", null, parsed ) )
2542 {
2543 while ( parser.nextTag() == XmlPullParser.START_TAG )
2544 {
2545 String key = parser.getName();
2546 String value = parser.nextText().trim();
2547 modelBase.addProperty( key, value );
2548 }
2549 }
2550 else if ( checkFieldWithDuplicate( parser, "dependencyManagement", null, parsed ) )
2551 {
2552 modelBase.setDependencyManagement( parseDependencyManagement( parser, strict ) );
2553 }
2554 else if ( checkFieldWithDuplicate( parser, "dependencies", null, parsed ) )
2555 {
2556 java.util.List dependencies = new java.util.ArrayList/*<Dependency>*/();
2557 modelBase.setDependencies( dependencies );
2558 while ( parser.nextTag() == XmlPullParser.START_TAG )
2559 {
2560 if ( "dependency".equals( parser.getName() ) )
2561 {
2562 dependencies.add( parseDependency( parser, strict ) );
2563 }
2564 else
2565 {
2566 checkUnknownElement( parser, strict );
2567 }
2568 }
2569 }
2570 else if ( checkFieldWithDuplicate( parser, "repositories", null, parsed ) )
2571 {
2572 java.util.List repositories = new java.util.ArrayList/*<Repository>*/();
2573 modelBase.setRepositories( repositories );
2574 while ( parser.nextTag() == XmlPullParser.START_TAG )
2575 {
2576 if ( "repository".equals( parser.getName() ) )
2577 {
2578 repositories.add( parseRepository( parser, strict ) );
2579 }
2580 else
2581 {
2582 checkUnknownElement( parser, strict );
2583 }
2584 }
2585 }
2586 else if ( checkFieldWithDuplicate( parser, "pluginRepositories", null, parsed ) )
2587 {
2588 java.util.List pluginRepositories = new java.util.ArrayList/*<Repository>*/();
2589 modelBase.setPluginRepositories( pluginRepositories );
2590 while ( parser.nextTag() == XmlPullParser.START_TAG )
2591 {
2592 if ( "pluginRepository".equals( parser.getName() ) )
2593 {
2594 pluginRepositories.add( parseRepository( parser, strict ) );
2595 }
2596 else
2597 {
2598 checkUnknownElement( parser, strict );
2599 }
2600 }
2601 }
2602 else if ( checkFieldWithDuplicate( parser, "reports", null, parsed ) )
2603 {
2604 modelBase.setReports( Xpp3DomBuilder.build( parser ) );
2605 }
2606 else if ( checkFieldWithDuplicate( parser, "reporting", null, parsed ) )
2607 {
2608 modelBase.setReporting( parseReporting( parser, strict ) );
2609 }
2610 else
2611 {
2612 checkUnknownElement( parser, strict );
2613 }
2614 }
2615 return modelBase;
2616 } //-- ModelBase parseModelBase( XmlPullParser, boolean )
2617
2618 /**
2619 * Method parseNotifier.
2620 *
2621 * @param parser
2622 * @param strict
2623 * @throws IOException
2624 * @throws XmlPullParserException
2625 * @return Notifier
2626 */
2627 private Notifier parseNotifier( XmlPullParser parser, boolean strict )
2628 throws IOException, XmlPullParserException
2629 {
2630 String tagName = parser.getName();
2631 Notifier notifier = new Notifier();
2632 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2633 {
2634 String name = parser.getAttributeName( i );
2635 String value = parser.getAttributeValue( i );
2636
2637 if ( name.indexOf( ':' ) >= 0 )
2638 {
2639 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2640 }
2641 else
2642 {
2643 checkUnknownAttribute( parser, name, tagName, strict );
2644 }
2645 }
2646 java.util.Set parsed = new java.util.HashSet();
2647 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2648 {
2649 if ( checkFieldWithDuplicate( parser, "type", null, parsed ) )
2650 {
2651 notifier.setType( getTrimmedValue( parser.nextText() ) );
2652 }
2653 else if ( checkFieldWithDuplicate( parser, "sendOnError", null, parsed ) )
2654 {
2655 notifier.setSendOnError( getBooleanValue( getTrimmedValue( parser.nextText() ), "sendOnError", parser, "true" ) );
2656 }
2657 else if ( checkFieldWithDuplicate( parser, "sendOnFailure", null, parsed ) )
2658 {
2659 notifier.setSendOnFailure( getBooleanValue( getTrimmedValue( parser.nextText() ), "sendOnFailure", parser, "true" ) );
2660 }
2661 else if ( checkFieldWithDuplicate( parser, "sendOnSuccess", null, parsed ) )
2662 {
2663 notifier.setSendOnSuccess( getBooleanValue( getTrimmedValue( parser.nextText() ), "sendOnSuccess", parser, "true" ) );
2664 }
2665 else if ( checkFieldWithDuplicate( parser, "sendOnWarning", null, parsed ) )
2666 {
2667 notifier.setSendOnWarning( getBooleanValue( getTrimmedValue( parser.nextText() ), "sendOnWarning", parser, "true" ) );
2668 }
2669 else if ( checkFieldWithDuplicate( parser, "address", null, parsed ) )
2670 {
2671 notifier.setAddress( getTrimmedValue( parser.nextText() ) );
2672 }
2673 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
2674 {
2675 while ( parser.nextTag() == XmlPullParser.START_TAG )
2676 {
2677 String key = parser.getName();
2678 String value = parser.nextText().trim();
2679 notifier.addConfiguration( key, value );
2680 }
2681 }
2682 else
2683 {
2684 checkUnknownElement( parser, strict );
2685 }
2686 }
2687 return notifier;
2688 } //-- Notifier parseNotifier( XmlPullParser, boolean )
2689
2690 /**
2691 * Method parseOrganization.
2692 *
2693 * @param parser
2694 * @param strict
2695 * @throws IOException
2696 * @throws XmlPullParserException
2697 * @return Organization
2698 */
2699 private Organization parseOrganization( XmlPullParser parser, boolean strict )
2700 throws IOException, XmlPullParserException
2701 {
2702 String tagName = parser.getName();
2703 Organization organization = new Organization();
2704 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2705 {
2706 String name = parser.getAttributeName( i );
2707 String value = parser.getAttributeValue( i );
2708
2709 if ( name.indexOf( ':' ) >= 0 )
2710 {
2711 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2712 }
2713 else
2714 {
2715 checkUnknownAttribute( parser, name, tagName, strict );
2716 }
2717 }
2718 java.util.Set parsed = new java.util.HashSet();
2719 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2720 {
2721 if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
2722 {
2723 organization.setName( getTrimmedValue( parser.nextText() ) );
2724 }
2725 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
2726 {
2727 organization.setUrl( getTrimmedValue( parser.nextText() ) );
2728 }
2729 else
2730 {
2731 checkUnknownElement( parser, strict );
2732 }
2733 }
2734 return organization;
2735 } //-- Organization parseOrganization( XmlPullParser, boolean )
2736
2737 /**
2738 * Method parseParent.
2739 *
2740 * @param parser
2741 * @param strict
2742 * @throws IOException
2743 * @throws XmlPullParserException
2744 * @return Parent
2745 */
2746 private Parent parseParent( XmlPullParser parser, boolean strict )
2747 throws IOException, XmlPullParserException
2748 {
2749 String tagName = parser.getName();
2750 Parent parent = new Parent();
2751 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2752 {
2753 String name = parser.getAttributeName( i );
2754 String value = parser.getAttributeValue( i );
2755
2756 if ( name.indexOf( ':' ) >= 0 )
2757 {
2758 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2759 }
2760 else
2761 {
2762 checkUnknownAttribute( parser, name, tagName, strict );
2763 }
2764 }
2765 java.util.Set parsed = new java.util.HashSet();
2766 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2767 {
2768 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
2769 {
2770 parent.setGroupId( getTrimmedValue( parser.nextText() ) );
2771 }
2772 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
2773 {
2774 parent.setArtifactId( getTrimmedValue( parser.nextText() ) );
2775 }
2776 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
2777 {
2778 parent.setVersion( getTrimmedValue( parser.nextText() ) );
2779 }
2780 else if ( checkFieldWithDuplicate( parser, "relativePath", null, parsed ) )
2781 {
2782 parent.setRelativePath( getTrimmedValue( parser.nextText() ) );
2783 }
2784 else
2785 {
2786 checkUnknownElement( parser, strict );
2787 }
2788 }
2789 return parent;
2790 } //-- Parent parseParent( XmlPullParser, boolean )
2791
2792 /**
2793 * Method parsePatternSet.
2794 *
2795 * @param parser
2796 * @param strict
2797 * @throws IOException
2798 * @throws XmlPullParserException
2799 * @return PatternSet
2800 */
2801 private PatternSet parsePatternSet( XmlPullParser parser, boolean strict )
2802 throws IOException, XmlPullParserException
2803 {
2804 String tagName = parser.getName();
2805 PatternSet patternSet = new PatternSet();
2806 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2807 {
2808 String name = parser.getAttributeName( i );
2809 String value = parser.getAttributeValue( i );
2810
2811 if ( name.indexOf( ':' ) >= 0 )
2812 {
2813 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2814 }
2815 else
2816 {
2817 checkUnknownAttribute( parser, name, tagName, strict );
2818 }
2819 }
2820 java.util.Set parsed = new java.util.HashSet();
2821 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2822 {
2823 if ( checkFieldWithDuplicate( parser, "includes", null, parsed ) )
2824 {
2825 java.util.List includes = new java.util.ArrayList/*<String>*/();
2826 patternSet.setIncludes( includes );
2827 while ( parser.nextTag() == XmlPullParser.START_TAG )
2828 {
2829 if ( "include".equals( parser.getName() ) )
2830 {
2831 includes.add( getTrimmedValue( parser.nextText() ) );
2832 }
2833 else
2834 {
2835 checkUnknownElement( parser, strict );
2836 }
2837 }
2838 }
2839 else if ( checkFieldWithDuplicate( parser, "excludes", null, parsed ) )
2840 {
2841 java.util.List excludes = new java.util.ArrayList/*<String>*/();
2842 patternSet.setExcludes( excludes );
2843 while ( parser.nextTag() == XmlPullParser.START_TAG )
2844 {
2845 if ( "exclude".equals( parser.getName() ) )
2846 {
2847 excludes.add( getTrimmedValue( parser.nextText() ) );
2848 }
2849 else
2850 {
2851 checkUnknownElement( parser, strict );
2852 }
2853 }
2854 }
2855 else
2856 {
2857 checkUnknownElement( parser, strict );
2858 }
2859 }
2860 return patternSet;
2861 } //-- PatternSet parsePatternSet( XmlPullParser, boolean )
2862
2863 /**
2864 * Method parsePlugin.
2865 *
2866 * @param parser
2867 * @param strict
2868 * @throws IOException
2869 * @throws XmlPullParserException
2870 * @return Plugin
2871 */
2872 private Plugin parsePlugin( XmlPullParser parser, boolean strict )
2873 throws IOException, XmlPullParserException
2874 {
2875 String tagName = parser.getName();
2876 Plugin plugin = new Plugin();
2877 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2878 {
2879 String name = parser.getAttributeName( i );
2880 String value = parser.getAttributeValue( i );
2881
2882 if ( name.indexOf( ':' ) >= 0 )
2883 {
2884 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2885 }
2886 else
2887 {
2888 checkUnknownAttribute( parser, name, tagName, strict );
2889 }
2890 }
2891 java.util.Set parsed = new java.util.HashSet();
2892 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2893 {
2894 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
2895 {
2896 plugin.setGroupId( getTrimmedValue( parser.nextText() ) );
2897 }
2898 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
2899 {
2900 plugin.setArtifactId( getTrimmedValue( parser.nextText() ) );
2901 }
2902 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
2903 {
2904 plugin.setVersion( getTrimmedValue( parser.nextText() ) );
2905 }
2906 else if ( checkFieldWithDuplicate( parser, "extensions", null, parsed ) )
2907 {
2908 plugin.setExtensions( getTrimmedValue( parser.nextText() ) );
2909 }
2910 else if ( checkFieldWithDuplicate( parser, "executions", null, parsed ) )
2911 {
2912 java.util.List executions = new java.util.ArrayList/*<PluginExecution>*/();
2913 plugin.setExecutions( executions );
2914 while ( parser.nextTag() == XmlPullParser.START_TAG )
2915 {
2916 if ( "execution".equals( parser.getName() ) )
2917 {
2918 executions.add( parsePluginExecution( parser, strict ) );
2919 }
2920 else
2921 {
2922 checkUnknownElement( parser, strict );
2923 }
2924 }
2925 }
2926 else if ( checkFieldWithDuplicate( parser, "dependencies", null, parsed ) )
2927 {
2928 java.util.List dependencies = new java.util.ArrayList/*<Dependency>*/();
2929 plugin.setDependencies( dependencies );
2930 while ( parser.nextTag() == XmlPullParser.START_TAG )
2931 {
2932 if ( "dependency".equals( parser.getName() ) )
2933 {
2934 dependencies.add( parseDependency( parser, strict ) );
2935 }
2936 else
2937 {
2938 checkUnknownElement( parser, strict );
2939 }
2940 }
2941 }
2942 else if ( checkFieldWithDuplicate( parser, "goals", null, parsed ) )
2943 {
2944 plugin.setGoals( Xpp3DomBuilder.build( parser ) );
2945 }
2946 else if ( checkFieldWithDuplicate( parser, "inherited", null, parsed ) )
2947 {
2948 plugin.setInherited( getTrimmedValue( parser.nextText() ) );
2949 }
2950 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
2951 {
2952 plugin.setConfiguration( Xpp3DomBuilder.build( parser ) );
2953 }
2954 else
2955 {
2956 checkUnknownElement( parser, strict );
2957 }
2958 }
2959 return plugin;
2960 } //-- Plugin parsePlugin( XmlPullParser, boolean )
2961
2962 /**
2963 * Method parsePluginConfiguration.
2964 *
2965 * @param parser
2966 * @param strict
2967 * @throws IOException
2968 * @throws XmlPullParserException
2969 * @return PluginConfiguration
2970 */
2971 private PluginConfiguration parsePluginConfiguration( XmlPullParser parser, boolean strict )
2972 throws IOException, XmlPullParserException
2973 {
2974 String tagName = parser.getName();
2975 PluginConfiguration pluginConfiguration = new PluginConfiguration();
2976 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
2977 {
2978 String name = parser.getAttributeName( i );
2979 String value = parser.getAttributeValue( i );
2980
2981 if ( name.indexOf( ':' ) >= 0 )
2982 {
2983 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
2984 }
2985 else
2986 {
2987 checkUnknownAttribute( parser, name, tagName, strict );
2988 }
2989 }
2990 java.util.Set parsed = new java.util.HashSet();
2991 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
2992 {
2993 if ( checkFieldWithDuplicate( parser, "pluginManagement", null, parsed ) )
2994 {
2995 pluginConfiguration.setPluginManagement( parsePluginManagement( parser, strict ) );
2996 }
2997 else if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
2998 {
2999 java.util.List plugins = new java.util.ArrayList/*<Plugin>*/();
3000 pluginConfiguration.setPlugins( plugins );
3001 while ( parser.nextTag() == XmlPullParser.START_TAG )
3002 {
3003 if ( "plugin".equals( parser.getName() ) )
3004 {
3005 plugins.add( parsePlugin( parser, strict ) );
3006 }
3007 else
3008 {
3009 checkUnknownElement( parser, strict );
3010 }
3011 }
3012 }
3013 else
3014 {
3015 checkUnknownElement( parser, strict );
3016 }
3017 }
3018 return pluginConfiguration;
3019 } //-- PluginConfiguration parsePluginConfiguration( XmlPullParser, boolean )
3020
3021 /**
3022 * Method parsePluginContainer.
3023 *
3024 * @param parser
3025 * @param strict
3026 * @throws IOException
3027 * @throws XmlPullParserException
3028 * @return PluginContainer
3029 */
3030 private PluginContainer parsePluginContainer( XmlPullParser parser, boolean strict )
3031 throws IOException, XmlPullParserException
3032 {
3033 String tagName = parser.getName();
3034 PluginContainer pluginContainer = new PluginContainer();
3035 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3036 {
3037 String name = parser.getAttributeName( i );
3038 String value = parser.getAttributeValue( i );
3039
3040 if ( name.indexOf( ':' ) >= 0 )
3041 {
3042 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3043 }
3044 else
3045 {
3046 checkUnknownAttribute( parser, name, tagName, strict );
3047 }
3048 }
3049 java.util.Set parsed = new java.util.HashSet();
3050 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3051 {
3052 if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
3053 {
3054 java.util.List plugins = new java.util.ArrayList/*<Plugin>*/();
3055 pluginContainer.setPlugins( plugins );
3056 while ( parser.nextTag() == XmlPullParser.START_TAG )
3057 {
3058 if ( "plugin".equals( parser.getName() ) )
3059 {
3060 plugins.add( parsePlugin( parser, strict ) );
3061 }
3062 else
3063 {
3064 checkUnknownElement( parser, strict );
3065 }
3066 }
3067 }
3068 else
3069 {
3070 checkUnknownElement( parser, strict );
3071 }
3072 }
3073 return pluginContainer;
3074 } //-- PluginContainer parsePluginContainer( XmlPullParser, boolean )
3075
3076 /**
3077 * Method parsePluginExecution.
3078 *
3079 * @param parser
3080 * @param strict
3081 * @throws IOException
3082 * @throws XmlPullParserException
3083 * @return PluginExecution
3084 */
3085 private PluginExecution parsePluginExecution( XmlPullParser parser, boolean strict )
3086 throws IOException, XmlPullParserException
3087 {
3088 String tagName = parser.getName();
3089 PluginExecution pluginExecution = new PluginExecution();
3090 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3091 {
3092 String name = parser.getAttributeName( i );
3093 String value = parser.getAttributeValue( i );
3094
3095 if ( name.indexOf( ':' ) >= 0 )
3096 {
3097 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3098 }
3099 else
3100 {
3101 checkUnknownAttribute( parser, name, tagName, strict );
3102 }
3103 }
3104 java.util.Set parsed = new java.util.HashSet();
3105 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3106 {
3107 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3108 {
3109 pluginExecution.setId( getTrimmedValue( parser.nextText() ) );
3110 }
3111 else if ( checkFieldWithDuplicate( parser, "phase", null, parsed ) )
3112 {
3113 pluginExecution.setPhase( getTrimmedValue( parser.nextText() ) );
3114 }
3115 else if ( checkFieldWithDuplicate( parser, "goals", null, parsed ) )
3116 {
3117 java.util.List goals = new java.util.ArrayList/*<String>*/();
3118 pluginExecution.setGoals( goals );
3119 while ( parser.nextTag() == XmlPullParser.START_TAG )
3120 {
3121 if ( "goal".equals( parser.getName() ) )
3122 {
3123 goals.add( getTrimmedValue( parser.nextText() ) );
3124 }
3125 else
3126 {
3127 checkUnknownElement( parser, strict );
3128 }
3129 }
3130 }
3131 else if ( checkFieldWithDuplicate( parser, "inherited", null, parsed ) )
3132 {
3133 pluginExecution.setInherited( getTrimmedValue( parser.nextText() ) );
3134 }
3135 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
3136 {
3137 pluginExecution.setConfiguration( Xpp3DomBuilder.build( parser ) );
3138 }
3139 else
3140 {
3141 checkUnknownElement( parser, strict );
3142 }
3143 }
3144 return pluginExecution;
3145 } //-- PluginExecution parsePluginExecution( XmlPullParser, boolean )
3146
3147 /**
3148 * Method parsePluginManagement.
3149 *
3150 * @param parser
3151 * @param strict
3152 * @throws IOException
3153 * @throws XmlPullParserException
3154 * @return PluginManagement
3155 */
3156 private PluginManagement parsePluginManagement( XmlPullParser parser, boolean strict )
3157 throws IOException, XmlPullParserException
3158 {
3159 String tagName = parser.getName();
3160 PluginManagement pluginManagement = new PluginManagement();
3161 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3162 {
3163 String name = parser.getAttributeName( i );
3164 String value = parser.getAttributeValue( i );
3165
3166 if ( name.indexOf( ':' ) >= 0 )
3167 {
3168 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3169 }
3170 else
3171 {
3172 checkUnknownAttribute( parser, name, tagName, strict );
3173 }
3174 }
3175 java.util.Set parsed = new java.util.HashSet();
3176 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3177 {
3178 if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
3179 {
3180 java.util.List plugins = new java.util.ArrayList/*<Plugin>*/();
3181 pluginManagement.setPlugins( plugins );
3182 while ( parser.nextTag() == XmlPullParser.START_TAG )
3183 {
3184 if ( "plugin".equals( parser.getName() ) )
3185 {
3186 plugins.add( parsePlugin( parser, strict ) );
3187 }
3188 else
3189 {
3190 checkUnknownElement( parser, strict );
3191 }
3192 }
3193 }
3194 else
3195 {
3196 checkUnknownElement( parser, strict );
3197 }
3198 }
3199 return pluginManagement;
3200 } //-- PluginManagement parsePluginManagement( XmlPullParser, boolean )
3201
3202 /**
3203 * Method parsePrerequisites.
3204 *
3205 * @param parser
3206 * @param strict
3207 * @throws IOException
3208 * @throws XmlPullParserException
3209 * @return Prerequisites
3210 */
3211 private Prerequisites parsePrerequisites( XmlPullParser parser, boolean strict )
3212 throws IOException, XmlPullParserException
3213 {
3214 String tagName = parser.getName();
3215 Prerequisites prerequisites = new Prerequisites();
3216 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3217 {
3218 String name = parser.getAttributeName( i );
3219 String value = parser.getAttributeValue( i );
3220
3221 if ( name.indexOf( ':' ) >= 0 )
3222 {
3223 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3224 }
3225 else
3226 {
3227 checkUnknownAttribute( parser, name, tagName, strict );
3228 }
3229 }
3230 java.util.Set parsed = new java.util.HashSet();
3231 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3232 {
3233 if ( checkFieldWithDuplicate( parser, "maven", null, parsed ) )
3234 {
3235 prerequisites.setMaven( getTrimmedValue( parser.nextText() ) );
3236 }
3237 else
3238 {
3239 checkUnknownElement( parser, strict );
3240 }
3241 }
3242 return prerequisites;
3243 } //-- Prerequisites parsePrerequisites( XmlPullParser, boolean )
3244
3245 /**
3246 * Method parseProfile.
3247 *
3248 * @param parser
3249 * @param strict
3250 * @throws IOException
3251 * @throws XmlPullParserException
3252 * @return Profile
3253 */
3254 private Profile parseProfile( XmlPullParser parser, boolean strict )
3255 throws IOException, XmlPullParserException
3256 {
3257 String tagName = parser.getName();
3258 Profile profile = new Profile();
3259 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3260 {
3261 String name = parser.getAttributeName( i );
3262 String value = parser.getAttributeValue( i );
3263
3264 if ( name.indexOf( ':' ) >= 0 )
3265 {
3266 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3267 }
3268 else
3269 {
3270 checkUnknownAttribute( parser, name, tagName, strict );
3271 }
3272 }
3273 java.util.Set parsed = new java.util.HashSet();
3274 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3275 {
3276 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3277 {
3278 profile.setId( getTrimmedValue( parser.nextText() ) );
3279 }
3280 else if ( checkFieldWithDuplicate( parser, "activation", null, parsed ) )
3281 {
3282 profile.setActivation( parseActivation( parser, strict ) );
3283 }
3284 else if ( checkFieldWithDuplicate( parser, "build", null, parsed ) )
3285 {
3286 profile.setBuild( parseBuildBase( parser, strict ) );
3287 }
3288 else if ( checkFieldWithDuplicate( parser, "modules", null, parsed ) )
3289 {
3290 java.util.List modules = new java.util.ArrayList/*<String>*/();
3291 profile.setModules( modules );
3292 while ( parser.nextTag() == XmlPullParser.START_TAG )
3293 {
3294 if ( "module".equals( parser.getName() ) )
3295 {
3296 modules.add( getTrimmedValue( parser.nextText() ) );
3297 }
3298 else
3299 {
3300 checkUnknownElement( parser, strict );
3301 }
3302 }
3303 }
3304 else if ( checkFieldWithDuplicate( parser, "distributionManagement", null, parsed ) )
3305 {
3306 profile.setDistributionManagement( parseDistributionManagement( parser, strict ) );
3307 }
3308 else if ( checkFieldWithDuplicate( parser, "properties", null, parsed ) )
3309 {
3310 while ( parser.nextTag() == XmlPullParser.START_TAG )
3311 {
3312 String key = parser.getName();
3313 String value = parser.nextText().trim();
3314 profile.addProperty( key, value );
3315 }
3316 }
3317 else if ( checkFieldWithDuplicate( parser, "dependencyManagement", null, parsed ) )
3318 {
3319 profile.setDependencyManagement( parseDependencyManagement( parser, strict ) );
3320 }
3321 else if ( checkFieldWithDuplicate( parser, "dependencies", null, parsed ) )
3322 {
3323 java.util.List dependencies = new java.util.ArrayList/*<Dependency>*/();
3324 profile.setDependencies( dependencies );
3325 while ( parser.nextTag() == XmlPullParser.START_TAG )
3326 {
3327 if ( "dependency".equals( parser.getName() ) )
3328 {
3329 dependencies.add( parseDependency( parser, strict ) );
3330 }
3331 else
3332 {
3333 checkUnknownElement( parser, strict );
3334 }
3335 }
3336 }
3337 else if ( checkFieldWithDuplicate( parser, "repositories", null, parsed ) )
3338 {
3339 java.util.List repositories = new java.util.ArrayList/*<Repository>*/();
3340 profile.setRepositories( repositories );
3341 while ( parser.nextTag() == XmlPullParser.START_TAG )
3342 {
3343 if ( "repository".equals( parser.getName() ) )
3344 {
3345 repositories.add( parseRepository( parser, strict ) );
3346 }
3347 else
3348 {
3349 checkUnknownElement( parser, strict );
3350 }
3351 }
3352 }
3353 else if ( checkFieldWithDuplicate( parser, "pluginRepositories", null, parsed ) )
3354 {
3355 java.util.List pluginRepositories = new java.util.ArrayList/*<Repository>*/();
3356 profile.setPluginRepositories( pluginRepositories );
3357 while ( parser.nextTag() == XmlPullParser.START_TAG )
3358 {
3359 if ( "pluginRepository".equals( parser.getName() ) )
3360 {
3361 pluginRepositories.add( parseRepository( parser, strict ) );
3362 }
3363 else
3364 {
3365 checkUnknownElement( parser, strict );
3366 }
3367 }
3368 }
3369 else if ( checkFieldWithDuplicate( parser, "reports", null, parsed ) )
3370 {
3371 profile.setReports( Xpp3DomBuilder.build( parser ) );
3372 }
3373 else if ( checkFieldWithDuplicate( parser, "reporting", null, parsed ) )
3374 {
3375 profile.setReporting( parseReporting( parser, strict ) );
3376 }
3377 else
3378 {
3379 checkUnknownElement( parser, strict );
3380 }
3381 }
3382 return profile;
3383 } //-- Profile parseProfile( XmlPullParser, boolean )
3384
3385 /**
3386 * Method parseRelocation.
3387 *
3388 * @param parser
3389 * @param strict
3390 * @throws IOException
3391 * @throws XmlPullParserException
3392 * @return Relocation
3393 */
3394 private Relocation parseRelocation( XmlPullParser parser, boolean strict )
3395 throws IOException, XmlPullParserException
3396 {
3397 String tagName = parser.getName();
3398 Relocation relocation = new Relocation();
3399 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3400 {
3401 String name = parser.getAttributeName( i );
3402 String value = parser.getAttributeValue( i );
3403
3404 if ( name.indexOf( ':' ) >= 0 )
3405 {
3406 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3407 }
3408 else
3409 {
3410 checkUnknownAttribute( parser, name, tagName, strict );
3411 }
3412 }
3413 java.util.Set parsed = new java.util.HashSet();
3414 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3415 {
3416 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
3417 {
3418 relocation.setGroupId( getTrimmedValue( parser.nextText() ) );
3419 }
3420 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
3421 {
3422 relocation.setArtifactId( getTrimmedValue( parser.nextText() ) );
3423 }
3424 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
3425 {
3426 relocation.setVersion( getTrimmedValue( parser.nextText() ) );
3427 }
3428 else if ( checkFieldWithDuplicate( parser, "message", null, parsed ) )
3429 {
3430 relocation.setMessage( getTrimmedValue( parser.nextText() ) );
3431 }
3432 else
3433 {
3434 checkUnknownElement( parser, strict );
3435 }
3436 }
3437 return relocation;
3438 } //-- Relocation parseRelocation( XmlPullParser, boolean )
3439
3440 /**
3441 * Method parseReportPlugin.
3442 *
3443 * @param parser
3444 * @param strict
3445 * @throws IOException
3446 * @throws XmlPullParserException
3447 * @return ReportPlugin
3448 */
3449 private ReportPlugin parseReportPlugin( XmlPullParser parser, boolean strict )
3450 throws IOException, XmlPullParserException
3451 {
3452 String tagName = parser.getName();
3453 ReportPlugin reportPlugin = new ReportPlugin();
3454 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3455 {
3456 String name = parser.getAttributeName( i );
3457 String value = parser.getAttributeValue( i );
3458
3459 if ( name.indexOf( ':' ) >= 0 )
3460 {
3461 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3462 }
3463 else
3464 {
3465 checkUnknownAttribute( parser, name, tagName, strict );
3466 }
3467 }
3468 java.util.Set parsed = new java.util.HashSet();
3469 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3470 {
3471 if ( checkFieldWithDuplicate( parser, "groupId", null, parsed ) )
3472 {
3473 reportPlugin.setGroupId( getTrimmedValue( parser.nextText() ) );
3474 }
3475 else if ( checkFieldWithDuplicate( parser, "artifactId", null, parsed ) )
3476 {
3477 reportPlugin.setArtifactId( getTrimmedValue( parser.nextText() ) );
3478 }
3479 else if ( checkFieldWithDuplicate( parser, "version", null, parsed ) )
3480 {
3481 reportPlugin.setVersion( getTrimmedValue( parser.nextText() ) );
3482 }
3483 else if ( checkFieldWithDuplicate( parser, "reportSets", null, parsed ) )
3484 {
3485 java.util.List reportSets = new java.util.ArrayList/*<ReportSet>*/();
3486 reportPlugin.setReportSets( reportSets );
3487 while ( parser.nextTag() == XmlPullParser.START_TAG )
3488 {
3489 if ( "reportSet".equals( parser.getName() ) )
3490 {
3491 reportSets.add( parseReportSet( parser, strict ) );
3492 }
3493 else
3494 {
3495 checkUnknownElement( parser, strict );
3496 }
3497 }
3498 }
3499 else if ( checkFieldWithDuplicate( parser, "inherited", null, parsed ) )
3500 {
3501 reportPlugin.setInherited( getTrimmedValue( parser.nextText() ) );
3502 }
3503 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
3504 {
3505 reportPlugin.setConfiguration( Xpp3DomBuilder.build( parser ) );
3506 }
3507 else
3508 {
3509 checkUnknownElement( parser, strict );
3510 }
3511 }
3512 return reportPlugin;
3513 } //-- ReportPlugin parseReportPlugin( XmlPullParser, boolean )
3514
3515 /**
3516 * Method parseReportSet.
3517 *
3518 * @param parser
3519 * @param strict
3520 * @throws IOException
3521 * @throws XmlPullParserException
3522 * @return ReportSet
3523 */
3524 private ReportSet parseReportSet( XmlPullParser parser, boolean strict )
3525 throws IOException, XmlPullParserException
3526 {
3527 String tagName = parser.getName();
3528 ReportSet reportSet = new ReportSet();
3529 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3530 {
3531 String name = parser.getAttributeName( i );
3532 String value = parser.getAttributeValue( i );
3533
3534 if ( name.indexOf( ':' ) >= 0 )
3535 {
3536 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3537 }
3538 else
3539 {
3540 checkUnknownAttribute( parser, name, tagName, strict );
3541 }
3542 }
3543 java.util.Set parsed = new java.util.HashSet();
3544 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3545 {
3546 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3547 {
3548 reportSet.setId( getTrimmedValue( parser.nextText() ) );
3549 }
3550 else if ( checkFieldWithDuplicate( parser, "reports", null, parsed ) )
3551 {
3552 java.util.List reports = new java.util.ArrayList/*<String>*/();
3553 reportSet.setReports( reports );
3554 while ( parser.nextTag() == XmlPullParser.START_TAG )
3555 {
3556 if ( "report".equals( parser.getName() ) )
3557 {
3558 reports.add( getTrimmedValue( parser.nextText() ) );
3559 }
3560 else
3561 {
3562 checkUnknownElement( parser, strict );
3563 }
3564 }
3565 }
3566 else if ( checkFieldWithDuplicate( parser, "inherited", null, parsed ) )
3567 {
3568 reportSet.setInherited( getTrimmedValue( parser.nextText() ) );
3569 }
3570 else if ( checkFieldWithDuplicate( parser, "configuration", null, parsed ) )
3571 {
3572 reportSet.setConfiguration( Xpp3DomBuilder.build( parser ) );
3573 }
3574 else
3575 {
3576 checkUnknownElement( parser, strict );
3577 }
3578 }
3579 return reportSet;
3580 } //-- ReportSet parseReportSet( XmlPullParser, boolean )
3581
3582 /**
3583 * Method parseReporting.
3584 *
3585 * @param parser
3586 * @param strict
3587 * @throws IOException
3588 * @throws XmlPullParserException
3589 * @return Reporting
3590 */
3591 private Reporting parseReporting( XmlPullParser parser, boolean strict )
3592 throws IOException, XmlPullParserException
3593 {
3594 String tagName = parser.getName();
3595 Reporting reporting = new Reporting();
3596 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3597 {
3598 String name = parser.getAttributeName( i );
3599 String value = parser.getAttributeValue( i );
3600
3601 if ( name.indexOf( ':' ) >= 0 )
3602 {
3603 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3604 }
3605 else
3606 {
3607 checkUnknownAttribute( parser, name, tagName, strict );
3608 }
3609 }
3610 java.util.Set parsed = new java.util.HashSet();
3611 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3612 {
3613 if ( checkFieldWithDuplicate( parser, "excludeDefaults", null, parsed ) )
3614 {
3615 reporting.setExcludeDefaults( getTrimmedValue( parser.nextText() ) );
3616 }
3617 else if ( checkFieldWithDuplicate( parser, "outputDirectory", null, parsed ) )
3618 {
3619 reporting.setOutputDirectory( getTrimmedValue( parser.nextText() ) );
3620 }
3621 else if ( checkFieldWithDuplicate( parser, "plugins", null, parsed ) )
3622 {
3623 java.util.List plugins = new java.util.ArrayList/*<ReportPlugin>*/();
3624 reporting.setPlugins( plugins );
3625 while ( parser.nextTag() == XmlPullParser.START_TAG )
3626 {
3627 if ( "plugin".equals( parser.getName() ) )
3628 {
3629 plugins.add( parseReportPlugin( parser, strict ) );
3630 }
3631 else
3632 {
3633 checkUnknownElement( parser, strict );
3634 }
3635 }
3636 }
3637 else
3638 {
3639 checkUnknownElement( parser, strict );
3640 }
3641 }
3642 return reporting;
3643 } //-- Reporting parseReporting( XmlPullParser, boolean )
3644
3645 /**
3646 * Method parseRepository.
3647 *
3648 * @param parser
3649 * @param strict
3650 * @throws IOException
3651 * @throws XmlPullParserException
3652 * @return Repository
3653 */
3654 private Repository parseRepository( XmlPullParser parser, boolean strict )
3655 throws IOException, XmlPullParserException
3656 {
3657 String tagName = parser.getName();
3658 Repository repository = new Repository();
3659 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3660 {
3661 String name = parser.getAttributeName( i );
3662 String value = parser.getAttributeValue( i );
3663
3664 if ( name.indexOf( ':' ) >= 0 )
3665 {
3666 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3667 }
3668 else
3669 {
3670 checkUnknownAttribute( parser, name, tagName, strict );
3671 }
3672 }
3673 java.util.Set parsed = new java.util.HashSet();
3674 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3675 {
3676 if ( checkFieldWithDuplicate( parser, "releases", null, parsed ) )
3677 {
3678 repository.setReleases( parseRepositoryPolicy( parser, strict ) );
3679 }
3680 else if ( checkFieldWithDuplicate( parser, "snapshots", null, parsed ) )
3681 {
3682 repository.setSnapshots( parseRepositoryPolicy( parser, strict ) );
3683 }
3684 else if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3685 {
3686 repository.setId( getTrimmedValue( parser.nextText() ) );
3687 }
3688 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
3689 {
3690 repository.setName( getTrimmedValue( parser.nextText() ) );
3691 }
3692 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
3693 {
3694 repository.setUrl( getTrimmedValue( parser.nextText() ) );
3695 }
3696 else if ( checkFieldWithDuplicate( parser, "layout", null, parsed ) )
3697 {
3698 repository.setLayout( getTrimmedValue( parser.nextText() ) );
3699 }
3700 else
3701 {
3702 checkUnknownElement( parser, strict );
3703 }
3704 }
3705 return repository;
3706 } //-- Repository parseRepository( XmlPullParser, boolean )
3707
3708 /**
3709 * Method parseRepositoryBase.
3710 *
3711 * @param parser
3712 * @param strict
3713 * @throws IOException
3714 * @throws XmlPullParserException
3715 * @return RepositoryBase
3716 */
3717 private RepositoryBase parseRepositoryBase( XmlPullParser parser, boolean strict )
3718 throws IOException, XmlPullParserException
3719 {
3720 String tagName = parser.getName();
3721 RepositoryBase repositoryBase = new RepositoryBase();
3722 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3723 {
3724 String name = parser.getAttributeName( i );
3725 String value = parser.getAttributeValue( i );
3726
3727 if ( name.indexOf( ':' ) >= 0 )
3728 {
3729 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3730 }
3731 else
3732 {
3733 checkUnknownAttribute( parser, name, tagName, strict );
3734 }
3735 }
3736 java.util.Set parsed = new java.util.HashSet();
3737 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3738 {
3739 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3740 {
3741 repositoryBase.setId( getTrimmedValue( parser.nextText() ) );
3742 }
3743 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
3744 {
3745 repositoryBase.setName( getTrimmedValue( parser.nextText() ) );
3746 }
3747 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
3748 {
3749 repositoryBase.setUrl( getTrimmedValue( parser.nextText() ) );
3750 }
3751 else if ( checkFieldWithDuplicate( parser, "layout", null, parsed ) )
3752 {
3753 repositoryBase.setLayout( getTrimmedValue( parser.nextText() ) );
3754 }
3755 else
3756 {
3757 checkUnknownElement( parser, strict );
3758 }
3759 }
3760 return repositoryBase;
3761 } //-- RepositoryBase parseRepositoryBase( XmlPullParser, boolean )
3762
3763 /**
3764 * Method parseRepositoryPolicy.
3765 *
3766 * @param parser
3767 * @param strict
3768 * @throws IOException
3769 * @throws XmlPullParserException
3770 * @return RepositoryPolicy
3771 */
3772 private RepositoryPolicy parseRepositoryPolicy( XmlPullParser parser, boolean strict )
3773 throws IOException, XmlPullParserException
3774 {
3775 String tagName = parser.getName();
3776 RepositoryPolicy repositoryPolicy = new RepositoryPolicy();
3777 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3778 {
3779 String name = parser.getAttributeName( i );
3780 String value = parser.getAttributeValue( i );
3781
3782 if ( name.indexOf( ':' ) >= 0 )
3783 {
3784 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3785 }
3786 else
3787 {
3788 checkUnknownAttribute( parser, name, tagName, strict );
3789 }
3790 }
3791 java.util.Set parsed = new java.util.HashSet();
3792 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3793 {
3794 if ( checkFieldWithDuplicate( parser, "enabled", null, parsed ) )
3795 {
3796 repositoryPolicy.setEnabled( getTrimmedValue( parser.nextText() ) );
3797 }
3798 else if ( checkFieldWithDuplicate( parser, "updatePolicy", null, parsed ) )
3799 {
3800 repositoryPolicy.setUpdatePolicy( getTrimmedValue( parser.nextText() ) );
3801 }
3802 else if ( checkFieldWithDuplicate( parser, "checksumPolicy", null, parsed ) )
3803 {
3804 repositoryPolicy.setChecksumPolicy( getTrimmedValue( parser.nextText() ) );
3805 }
3806 else
3807 {
3808 checkUnknownElement( parser, strict );
3809 }
3810 }
3811 return repositoryPolicy;
3812 } //-- RepositoryPolicy parseRepositoryPolicy( XmlPullParser, boolean )
3813
3814 /**
3815 * Method parseResource.
3816 *
3817 * @param parser
3818 * @param strict
3819 * @throws IOException
3820 * @throws XmlPullParserException
3821 * @return Resource
3822 */
3823 private Resource parseResource( XmlPullParser parser, boolean strict )
3824 throws IOException, XmlPullParserException
3825 {
3826 String tagName = parser.getName();
3827 Resource resource = new Resource();
3828 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3829 {
3830 String name = parser.getAttributeName( i );
3831 String value = parser.getAttributeValue( i );
3832
3833 if ( name.indexOf( ':' ) >= 0 )
3834 {
3835 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3836 }
3837 else
3838 {
3839 checkUnknownAttribute( parser, name, tagName, strict );
3840 }
3841 }
3842 java.util.Set parsed = new java.util.HashSet();
3843 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3844 {
3845 if ( checkFieldWithDuplicate( parser, "targetPath", null, parsed ) )
3846 {
3847 resource.setTargetPath( getTrimmedValue( parser.nextText() ) );
3848 }
3849 else if ( checkFieldWithDuplicate( parser, "filtering", null, parsed ) )
3850 {
3851 resource.setFiltering( getTrimmedValue( parser.nextText() ) );
3852 }
3853 else if ( checkFieldWithDuplicate( parser, "directory", null, parsed ) )
3854 {
3855 resource.setDirectory( getTrimmedValue( parser.nextText() ) );
3856 }
3857 else if ( checkFieldWithDuplicate( parser, "includes", null, parsed ) )
3858 {
3859 java.util.List includes = new java.util.ArrayList/*<String>*/();
3860 resource.setIncludes( includes );
3861 while ( parser.nextTag() == XmlPullParser.START_TAG )
3862 {
3863 if ( "include".equals( parser.getName() ) )
3864 {
3865 includes.add( getTrimmedValue( parser.nextText() ) );
3866 }
3867 else
3868 {
3869 checkUnknownElement( parser, strict );
3870 }
3871 }
3872 }
3873 else if ( checkFieldWithDuplicate( parser, "excludes", null, parsed ) )
3874 {
3875 java.util.List excludes = new java.util.ArrayList/*<String>*/();
3876 resource.setExcludes( excludes );
3877 while ( parser.nextTag() == XmlPullParser.START_TAG )
3878 {
3879 if ( "exclude".equals( parser.getName() ) )
3880 {
3881 excludes.add( getTrimmedValue( parser.nextText() ) );
3882 }
3883 else
3884 {
3885 checkUnknownElement( parser, strict );
3886 }
3887 }
3888 }
3889 else
3890 {
3891 checkUnknownElement( parser, strict );
3892 }
3893 }
3894 return resource;
3895 } //-- Resource parseResource( XmlPullParser, boolean )
3896
3897 /**
3898 * Method parseScm.
3899 *
3900 * @param parser
3901 * @param strict
3902 * @throws IOException
3903 * @throws XmlPullParserException
3904 * @return Scm
3905 */
3906 private Scm parseScm( XmlPullParser parser, boolean strict )
3907 throws IOException, XmlPullParserException
3908 {
3909 String tagName = parser.getName();
3910 Scm scm = new Scm();
3911 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3912 {
3913 String name = parser.getAttributeName( i );
3914 String value = parser.getAttributeValue( i );
3915
3916 if ( name.indexOf( ':' ) >= 0 )
3917 {
3918 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3919 }
3920 else
3921 {
3922 checkUnknownAttribute( parser, name, tagName, strict );
3923 }
3924 }
3925 java.util.Set parsed = new java.util.HashSet();
3926 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3927 {
3928 if ( checkFieldWithDuplicate( parser, "connection", null, parsed ) )
3929 {
3930 scm.setConnection( getTrimmedValue( parser.nextText() ) );
3931 }
3932 else if ( checkFieldWithDuplicate( parser, "developerConnection", null, parsed ) )
3933 {
3934 scm.setDeveloperConnection( getTrimmedValue( parser.nextText() ) );
3935 }
3936 else if ( checkFieldWithDuplicate( parser, "tag", null, parsed ) )
3937 {
3938 scm.setTag( getTrimmedValue( parser.nextText() ) );
3939 }
3940 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
3941 {
3942 scm.setUrl( getTrimmedValue( parser.nextText() ) );
3943 }
3944 else
3945 {
3946 checkUnknownElement( parser, strict );
3947 }
3948 }
3949 return scm;
3950 } //-- Scm parseScm( XmlPullParser, boolean )
3951
3952 /**
3953 * Method parseSite.
3954 *
3955 * @param parser
3956 * @param strict
3957 * @throws IOException
3958 * @throws XmlPullParserException
3959 * @return Site
3960 */
3961 private Site parseSite( XmlPullParser parser, boolean strict )
3962 throws IOException, XmlPullParserException
3963 {
3964 String tagName = parser.getName();
3965 Site site = new Site();
3966 for ( int i = parser.getAttributeCount() - 1; i >= 0; i-- )
3967 {
3968 String name = parser.getAttributeName( i );
3969 String value = parser.getAttributeValue( i );
3970
3971 if ( name.indexOf( ':' ) >= 0 )
3972 {
3973 // just ignore attributes with non-default namespace (for example: xmlns:xsi)
3974 }
3975 else
3976 {
3977 checkUnknownAttribute( parser, name, tagName, strict );
3978 }
3979 }
3980 java.util.Set parsed = new java.util.HashSet();
3981 while ( ( strict ? parser.nextTag() : nextTag( parser ) ) == XmlPullParser.START_TAG )
3982 {
3983 if ( checkFieldWithDuplicate( parser, "id", null, parsed ) )
3984 {
3985 site.setId( getTrimmedValue( parser.nextText() ) );
3986 }
3987 else if ( checkFieldWithDuplicate( parser, "name", null, parsed ) )
3988 {
3989 site.setName( getTrimmedValue( parser.nextText() ) );
3990 }
3991 else if ( checkFieldWithDuplicate( parser, "url", null, parsed ) )
3992 {
3993 site.setUrl( getTrimmedValue( parser.nextText() ) );
3994 }
3995 else
3996 {
3997 checkUnknownElement( parser, strict );
3998 }
3999 }
4000 return site;
4001 } //-- Site parseSite( XmlPullParser, boolean )
4002
4003 /**
4004 * @see ReaderFactory#newXmlReader
4005 *
4006 * @param reader
4007 * @param strict
4008 * @throws IOException
4009 * @throws XmlPullParserException
4010 * @return Model
4011 */
4012 public Model read( Reader reader, boolean strict )
4013 throws IOException, XmlPullParserException
4014 {
4015 XmlPullParser parser = new MXParser();
4016
4017 parser.setInput( reader );
4018
4019 initParser( parser );
4020
4021 return read( parser, strict );
4022 } //-- Model read( Reader, boolean )
4023
4024 /**
4025 * @see ReaderFactory#newXmlReader
4026 *
4027 * @param reader
4028 * @throws IOException
4029 * @throws XmlPullParserException
4030 * @return Model
4031 */
4032 public Model read( Reader reader )
4033 throws IOException, XmlPullParserException
4034 {
4035 return read( reader, true );
4036 } //-- Model read( Reader )
4037
4038 /**
4039 * Method read.
4040 *
4041 * @param in
4042 * @param strict
4043 * @throws IOException
4044 * @throws XmlPullParserException
4045 * @return Model
4046 */
4047 public Model read( InputStream in, boolean strict )
4048 throws IOException, XmlPullParserException
4049 {
4050 return read( ReaderFactory.newXmlReader( in ), strict );
4051 } //-- Model read( InputStream, boolean )
4052
4053 /**
4054 * Method read.
4055 *
4056 * @param in
4057 * @throws IOException
4058 * @throws XmlPullParserException
4059 * @return Model
4060 */
4061 public Model read( InputStream in )
4062 throws IOException, XmlPullParserException
4063 {
4064 return read( ReaderFactory.newXmlReader( in ) );
4065 } //-- Model read( InputStream )
4066
4067 /**
4068 * Method read.
4069 *
4070 * @param parser
4071 * @param strict
4072 * @throws IOException
4073 * @throws XmlPullParserException
4074 * @return Model
4075 */
4076 private Model read( XmlPullParser parser, boolean strict )
4077 throws IOException, XmlPullParserException
4078 {
4079 int eventType = parser.getEventType();
4080 while ( eventType != XmlPullParser.END_DOCUMENT )
4081 {
4082 if ( eventType == XmlPullParser.START_TAG )
4083 {
4084 if ( strict && ! "project".equals( parser.getName() ) )
4085 {
4086 throw new XmlPullParserException( "Expected root element 'project' but found '" + parser.getName() + "'", parser, null );
4087 }
4088 Model model = parseModel( parser, strict );
4089 model.setModelEncoding( parser.getInputEncoding() );
4090 return model;
4091 }
4092 eventType = parser.next();
4093 }
4094 throw new XmlPullParserException( "Expected root element 'project' but found no element at all: invalid XML document", parser, null );
4095 } //-- Model read( XmlPullParser, boolean )
4096
4097 /**
4098 * Sets the state of the "add default entities" flag.
4099 *
4100 * @param addDefaultEntities
4101 */
4102 public void setAddDefaultEntities( boolean addDefaultEntities )
4103 {
4104 this.addDefaultEntities = addDefaultEntities;
4105 } //-- void setAddDefaultEntities( boolean )
4106
4107 }