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