001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.xml;
014
015import static org.apache.juneau.xml.XmlParser.*;
016
017import java.lang.annotation.*;
018import java.lang.reflect.*;
019import java.nio.charset.*;
020import java.util.*;
021
022import javax.xml.stream.*;
023import javax.xml.stream.util.*;
024
025import org.apache.juneau.*;
026import org.apache.juneau.http.*;
027import org.apache.juneau.internal.*;
028import org.apache.juneau.parser.*;
029import org.apache.juneau.reflect.*;
030import org.apache.juneau.svl.*;
031
032/**
033 * Builder class for building XML parsers.
034 */
035public class XmlParserBuilder extends ReaderParserBuilder {
036
037   /**
038    * Constructor, default settings.
039    */
040   public XmlParserBuilder() {
041      super();
042   }
043
044   /**
045    * Constructor.
046    *
047    * @param ps The initial configuration settings for this builder.
048    */
049   public XmlParserBuilder(PropertyStore ps) {
050      super(ps);
051   }
052
053   @Override /* ContextBuilder */
054   public XmlParser build() {
055      return build(XmlParser.class);
056   }
057
058   //-----------------------------------------------------------------------------------------------------------------
059   // Properties
060   //-----------------------------------------------------------------------------------------------------------------
061
062   /**
063    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML event allocator.
064    *
065    * <p>
066    * Associates an {@link XMLEventAllocator} with this parser.
067    *
068    * <ul class='seealso'>
069    *    <li class='jf'>{@link XmlParser#XML_eventAllocator}
070    * </ul>
071    *
072    * @param value The new value for this property.
073    * @return This object (for method chaining).
074    */
075   @FluentSetter
076   public XmlParserBuilder eventAllocator(XMLEventAllocator value) {
077      return set(XML_eventAllocator, value);
078   }
079
080   /**
081    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML event allocator.
082    *
083    * <p>
084    * Associates an {@link XMLEventAllocator} with this parser.
085    *
086    * <ul class='seealso'>
087    *    <li class='jf'>{@link XmlParser#XML_eventAllocator}
088    * </ul>
089    *
090    * @param value The new value for this property.
091    * @return This object (for method chaining).
092    */
093   @FluentSetter
094   public XmlParserBuilder eventAllocator(Class<? extends XMLEventAllocator> value) {
095      return set(XML_eventAllocator, value);
096   }
097
098   /**
099    * <i><l>XmlParser</l> configuration property:&emsp;</i>  Preserve root element during generalized parsing.
100    *
101    * <div class='warn'>
102    *    <b>Deprecated</b> - Use {@link #preserveRootElement()}
103    * </div>
104    */
105   @SuppressWarnings("javadoc")
106   @Deprecated
107   @FluentSetter
108   public XmlParserBuilder preserveRootElement(boolean value) {
109      return set(XML_preserveRootElement, value);
110   }
111
112   /**
113    * <i><l>XmlParser</l> configuration property:&emsp;</i>  Preserve root element during generalized parsing.
114    *
115    * <p>
116    * Shortcut for calling <code>preserveRootElement(<jk>true</jk>)</code>.
117    *
118    * <ul class='seealso'>
119    *    <li class='jf'>{@link XmlParser#XML_preserveRootElement}
120    * </ul>
121    *
122    * @return This object (for method chaining).
123    */
124   @FluentSetter
125   public XmlParserBuilder preserveRootElement() {
126      return set(XML_preserveRootElement, true);
127   }
128
129   /**
130    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML reporter.
131    *
132    * <p>
133    * Associates an {@link XMLReporter} with this parser.
134    *
135    * <ul class='seealso'>
136    *    <li class='jf'>{@link XmlParser#XML_reporter}
137    * </ul>
138    *
139    * @param value The new value for this property.
140    * @return This object (for method chaining).
141    */
142   @FluentSetter
143   public XmlParserBuilder reporter(XMLReporter value) {
144      return set(XML_reporter, value);
145   }
146
147   /**
148    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML reporter.
149    *
150    * <p>
151    * Associates an {@link XMLReporter} with this parser.
152    *
153    * <ul class='seealso'>
154    *    <li class='jf'>{@link XmlParser#XML_reporter}
155    * </ul>
156    *
157    * @param value The new value for this property.
158    * @return This object (for method chaining).
159    */
160   @FluentSetter
161   public XmlParserBuilder reporter(Class<? extends XMLReporter> value) {
162      return set(XML_reporter, value);
163   }
164
165   /**
166    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML resolver.
167    *
168    * <p>
169    * Associates an {@link XMLResolver} with this parser.
170    *
171    * <ul class='seealso'>
172    *    <li class='jf'>{@link XmlParser#XML_resolver}
173    * </ul>
174    *
175    * @param value The new value for this property.
176    * @return This object (for method chaining).
177    */
178   @FluentSetter
179   public XmlParserBuilder resolver(XMLResolver value) {
180      return set(XML_resolver, value);
181   }
182
183   /**
184    * <i><l>XmlParser</l> configuration property:&emsp;</i>  XML resolver.
185    *
186    * <p>
187    * Associates an {@link XMLResolver} with this parser.
188    *
189    * <ul class='seealso'>
190    *    <li class='jf'>{@link XmlParser#XML_resolver}
191    * </ul>
192    *
193    * @param value The new value for this property.
194    * @return This object (for method chaining).
195    */
196   @FluentSetter
197   public XmlParserBuilder resolver(Class<? extends XMLResolver> value) {
198      return set(XML_resolver, value);
199   }
200
201   /**
202    * <i><l>XmlParser</l> configuration property:&emsp;</i>  Enable validation.
203    *
204    * <div class='warn'>
205    *    <b>Deprecated</b> - Use {@link #validating()}
206    * </div>
207    */
208   @SuppressWarnings("javadoc")
209   @Deprecated
210   @FluentSetter
211   public XmlParserBuilder validating(boolean value) {
212      return set(XML_validating, value);
213   }
214
215   /**
216    * <i><l>XmlParser</l> configuration property:&emsp;</i>  Enable validation.
217    *
218    * <p>
219    * Shortcut for calling <code>validating(<jk>true</jk>)</code>.
220    *
221    * <ul class='seealso'>
222    *    <li class='jf'>{@link XmlParser#XML_validating}
223    * </ul>
224    *
225    * @return This object (for method chaining).
226    */
227   @FluentSetter
228   public XmlParserBuilder validating() {
229      return set(XML_validating, true);
230   }
231
232   // <FluentSetters>
233
234   @Override /* GENERATED - ContextBuilder */
235   public XmlParserBuilder add(Map<String,Object> properties) {
236      super.add(properties);
237      return this;
238   }
239
240   @Override /* GENERATED - ContextBuilder */
241   public XmlParserBuilder addTo(String name, Object value) {
242      super.addTo(name, value);
243      return this;
244   }
245
246   @Override /* GENERATED - ContextBuilder */
247   public XmlParserBuilder appendTo(String name, Object value) {
248      super.appendTo(name, value);
249      return this;
250   }
251
252   @Override /* GENERATED - ContextBuilder */
253   public XmlParserBuilder apply(PropertyStore copyFrom) {
254      super.apply(copyFrom);
255      return this;
256   }
257
258   @Override /* GENERATED - ContextBuilder */
259   public XmlParserBuilder applyAnnotations(java.lang.Class<?>...fromClasses) {
260      super.applyAnnotations(fromClasses);
261      return this;
262   }
263
264   @Override /* GENERATED - ContextBuilder */
265   public XmlParserBuilder applyAnnotations(Method...fromMethods) {
266      super.applyAnnotations(fromMethods);
267      return this;
268   }
269
270   @Override /* GENERATED - ContextBuilder */
271   public XmlParserBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
272      super.applyAnnotations(al, r);
273      return this;
274   }
275
276   @Override /* GENERATED - ContextBuilder */
277   public XmlParserBuilder debug() {
278      super.debug();
279      return this;
280   }
281
282   @Override /* GENERATED - ContextBuilder */
283   public XmlParserBuilder locale(Locale value) {
284      super.locale(value);
285      return this;
286   }
287
288   @Override /* GENERATED - ContextBuilder */
289   public XmlParserBuilder mediaType(MediaType value) {
290      super.mediaType(value);
291      return this;
292   }
293
294   @Override /* GENERATED - ContextBuilder */
295   public XmlParserBuilder prependTo(String name, Object value) {
296      super.prependTo(name, value);
297      return this;
298   }
299
300   @Override /* GENERATED - ContextBuilder */
301   public XmlParserBuilder putAllTo(String name, Object value) {
302      super.putAllTo(name, value);
303      return this;
304   }
305
306   @Override /* GENERATED - ContextBuilder */
307   public XmlParserBuilder putTo(String name, String key, Object value) {
308      super.putTo(name, key, value);
309      return this;
310   }
311
312   @Override /* GENERATED - ContextBuilder */
313   public XmlParserBuilder removeFrom(String name, Object value) {
314      super.removeFrom(name, value);
315      return this;
316   }
317
318   @Override /* GENERATED - ContextBuilder */
319   public XmlParserBuilder set(Map<String,Object> properties) {
320      super.set(properties);
321      return this;
322   }
323
324   @Override /* GENERATED - ContextBuilder */
325   public XmlParserBuilder set(String name, Object value) {
326      super.set(name, value);
327      return this;
328   }
329
330   @Override /* GENERATED - ContextBuilder */
331   public XmlParserBuilder timeZone(TimeZone value) {
332      super.timeZone(value);
333      return this;
334   }
335
336   @Override /* GENERATED - BeanContextBuilder */
337   public XmlParserBuilder annotations(Annotation...values) {
338      super.annotations(values);
339      return this;
340   }
341
342   @Override /* GENERATED - BeanContextBuilder */
343   public XmlParserBuilder beanClassVisibility(Visibility value) {
344      super.beanClassVisibility(value);
345      return this;
346   }
347
348   @Override /* GENERATED - BeanContextBuilder */
349   public XmlParserBuilder beanConstructorVisibility(Visibility value) {
350      super.beanConstructorVisibility(value);
351      return this;
352   }
353
354   @Override /* GENERATED - BeanContextBuilder */
355   public XmlParserBuilder beanFieldVisibility(Visibility value) {
356      super.beanFieldVisibility(value);
357      return this;
358   }
359
360   @Override /* GENERATED - BeanContextBuilder */
361   public XmlParserBuilder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
362      super.beanInterceptor(on, value);
363      return this;
364   }
365
366   @Override /* GENERATED - BeanContextBuilder */
367   public XmlParserBuilder beanMapPutReturnsOldValue() {
368      super.beanMapPutReturnsOldValue();
369      return this;
370   }
371
372   @Override /* GENERATED - BeanContextBuilder */
373   public XmlParserBuilder beanMethodVisibility(Visibility value) {
374      super.beanMethodVisibility(value);
375      return this;
376   }
377
378   @Override /* GENERATED - BeanContextBuilder */
379   public XmlParserBuilder beansDontRequireSomeProperties() {
380      super.beansDontRequireSomeProperties();
381      return this;
382   }
383
384   @Override /* GENERATED - BeanContextBuilder */
385   public XmlParserBuilder beansRequireDefaultConstructor() {
386      super.beansRequireDefaultConstructor();
387      return this;
388   }
389
390   @Override /* GENERATED - BeanContextBuilder */
391   public XmlParserBuilder beansRequireSerializable() {
392      super.beansRequireSerializable();
393      return this;
394   }
395
396   @Override /* GENERATED - BeanContextBuilder */
397   public XmlParserBuilder beansRequireSettersForGetters() {
398      super.beansRequireSettersForGetters();
399      return this;
400   }
401
402   @Override /* GENERATED - BeanContextBuilder */
403   public XmlParserBuilder bpi(Map<String,Object> values) {
404      super.bpi(values);
405      return this;
406   }
407
408   @Override /* GENERATED - BeanContextBuilder */
409   public XmlParserBuilder bpi(Class<?> beanClass, String properties) {
410      super.bpi(beanClass, properties);
411      return this;
412   }
413
414   @Override /* GENERATED - BeanContextBuilder */
415   public XmlParserBuilder bpi(String beanClassName, String properties) {
416      super.bpi(beanClassName, properties);
417      return this;
418   }
419
420   @Override /* GENERATED - BeanContextBuilder */
421   public XmlParserBuilder bpro(Map<String,Object> values) {
422      super.bpro(values);
423      return this;
424   }
425
426   @Override /* GENERATED - BeanContextBuilder */
427   public XmlParserBuilder bpro(Class<?> beanClass, String properties) {
428      super.bpro(beanClass, properties);
429      return this;
430   }
431
432   @Override /* GENERATED - BeanContextBuilder */
433   public XmlParserBuilder bpro(String beanClassName, String properties) {
434      super.bpro(beanClassName, properties);
435      return this;
436   }
437
438   @Override /* GENERATED - BeanContextBuilder */
439   public XmlParserBuilder bpwo(Map<String,Object> values) {
440      super.bpwo(values);
441      return this;
442   }
443
444   @Override /* GENERATED - BeanContextBuilder */
445   public XmlParserBuilder bpwo(Class<?> beanClass, String properties) {
446      super.bpwo(beanClass, properties);
447      return this;
448   }
449
450   @Override /* GENERATED - BeanContextBuilder */
451   public XmlParserBuilder bpwo(String beanClassName, String properties) {
452      super.bpwo(beanClassName, properties);
453      return this;
454   }
455
456   @Override /* GENERATED - BeanContextBuilder */
457   public XmlParserBuilder bpx(Map<String,Object> values) {
458      super.bpx(values);
459      return this;
460   }
461
462   @Override /* GENERATED - BeanContextBuilder */
463   public XmlParserBuilder bpx(Class<?> beanClass, String properties) {
464      super.bpx(beanClass, properties);
465      return this;
466   }
467
468   @Override /* GENERATED - BeanContextBuilder */
469   public XmlParserBuilder bpx(String beanClassName, String properties) {
470      super.bpx(beanClassName, properties);
471      return this;
472   }
473
474   @Override /* GENERATED - BeanContextBuilder */
475   public XmlParserBuilder dictionary(Object...values) {
476      super.dictionary(values);
477      return this;
478   }
479
480   @Override /* GENERATED - BeanContextBuilder */
481   public XmlParserBuilder dictionaryOn(Class<?> on, java.lang.Class<?>...values) {
482      super.dictionaryOn(on, values);
483      return this;
484   }
485
486   @Override /* GENERATED - BeanContextBuilder */
487   public XmlParserBuilder dontIgnorePropertiesWithoutSetters() {
488      super.dontIgnorePropertiesWithoutSetters();
489      return this;
490   }
491
492   @Override /* GENERATED - BeanContextBuilder */
493   public XmlParserBuilder dontIgnoreTransientFields() {
494      super.dontIgnoreTransientFields();
495      return this;
496   }
497
498   @Override /* GENERATED - BeanContextBuilder */
499   public XmlParserBuilder dontIgnoreUnknownNullBeanProperties() {
500      super.dontIgnoreUnknownNullBeanProperties();
501      return this;
502   }
503
504   @Override /* GENERATED - BeanContextBuilder */
505   public XmlParserBuilder dontUseInterfaceProxies() {
506      super.dontUseInterfaceProxies();
507      return this;
508   }
509
510   @Override /* GENERATED - BeanContextBuilder */
511   public <T> XmlParserBuilder example(Class<T> pojoClass, T o) {
512      super.example(pojoClass, o);
513      return this;
514   }
515
516   @Override /* GENERATED - BeanContextBuilder */
517   public <T> XmlParserBuilder exampleJson(Class<T> pojoClass, String json) {
518      super.exampleJson(pojoClass, json);
519      return this;
520   }
521
522   @Override /* GENERATED - BeanContextBuilder */
523   public XmlParserBuilder fluentSetters() {
524      super.fluentSetters();
525      return this;
526   }
527
528   @Override /* GENERATED - BeanContextBuilder */
529   public XmlParserBuilder fluentSetters(Class<?> on) {
530      super.fluentSetters(on);
531      return this;
532   }
533
534   @Override /* GENERATED - BeanContextBuilder */
535   public XmlParserBuilder ignoreInvocationExceptionsOnGetters() {
536      super.ignoreInvocationExceptionsOnGetters();
537      return this;
538   }
539
540   @Override /* GENERATED - BeanContextBuilder */
541   public XmlParserBuilder ignoreInvocationExceptionsOnSetters() {
542      super.ignoreInvocationExceptionsOnSetters();
543      return this;
544   }
545
546   @Override /* GENERATED - BeanContextBuilder */
547   public XmlParserBuilder ignoreUnknownBeanProperties() {
548      super.ignoreUnknownBeanProperties();
549      return this;
550   }
551
552   @Override /* GENERATED - BeanContextBuilder */
553   public XmlParserBuilder implClass(Class<?> interfaceClass, Class<?> implClass) {
554      super.implClass(interfaceClass, implClass);
555      return this;
556   }
557
558   @Override /* GENERATED - BeanContextBuilder */
559   public XmlParserBuilder implClasses(Map<Class<?>,Class<?>> values) {
560      super.implClasses(values);
561      return this;
562   }
563
564   @Override /* GENERATED - BeanContextBuilder */
565   public XmlParserBuilder interfaceClass(Class<?> on, Class<?> value) {
566      super.interfaceClass(on, value);
567      return this;
568   }
569
570   @Override /* GENERATED - BeanContextBuilder */
571   public XmlParserBuilder interfaces(java.lang.Class<?>...value) {
572      super.interfaces(value);
573      return this;
574   }
575
576   @Override /* GENERATED - BeanContextBuilder */
577   public XmlParserBuilder notBeanClasses(Object...values) {
578      super.notBeanClasses(values);
579      return this;
580   }
581
582   @Override /* GENERATED - BeanContextBuilder */
583   public XmlParserBuilder notBeanPackages(Object...values) {
584      super.notBeanPackages(values);
585      return this;
586   }
587
588   @Override /* GENERATED - BeanContextBuilder */
589   public XmlParserBuilder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) {
590      super.propertyNamer(value);
591      return this;
592   }
593
594   @Override /* GENERATED - BeanContextBuilder */
595   public XmlParserBuilder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) {
596      super.propertyNamer(on, value);
597      return this;
598   }
599
600   @Override /* GENERATED - BeanContextBuilder */
601   public XmlParserBuilder sortProperties() {
602      super.sortProperties();
603      return this;
604   }
605
606   @Override /* GENERATED - BeanContextBuilder */
607   public XmlParserBuilder sortProperties(java.lang.Class<?>...on) {
608      super.sortProperties(on);
609      return this;
610   }
611
612   @Override /* GENERATED - BeanContextBuilder */
613   public XmlParserBuilder stopClass(Class<?> on, Class<?> value) {
614      super.stopClass(on, value);
615      return this;
616   }
617
618   @Override /* GENERATED - BeanContextBuilder */
619   public XmlParserBuilder swaps(Object...values) {
620      super.swaps(values);
621      return this;
622   }
623
624   @Override /* GENERATED - BeanContextBuilder */
625   public XmlParserBuilder typeName(Class<?> on, String value) {
626      super.typeName(on, value);
627      return this;
628   }
629
630   @Override /* GENERATED - BeanContextBuilder */
631   public XmlParserBuilder typePropertyName(String value) {
632      super.typePropertyName(value);
633      return this;
634   }
635
636   @Override /* GENERATED - BeanContextBuilder */
637   public XmlParserBuilder typePropertyName(Class<?> on, String value) {
638      super.typePropertyName(on, value);
639      return this;
640   }
641
642   @Override /* GENERATED - BeanContextBuilder */
643   public XmlParserBuilder useEnumNames() {
644      super.useEnumNames();
645      return this;
646   }
647
648   @Override /* GENERATED - BeanContextBuilder */
649   public XmlParserBuilder useJavaBeanIntrospector() {
650      super.useJavaBeanIntrospector();
651      return this;
652   }
653
654   @Override /* GENERATED - ParserBuilder */
655   public XmlParserBuilder autoCloseStreams() {
656      super.autoCloseStreams();
657      return this;
658   }
659
660   @Override /* GENERATED - ParserBuilder */
661   public XmlParserBuilder debugOutputLines(int value) {
662      super.debugOutputLines(value);
663      return this;
664   }
665
666   @Override /* GENERATED - ParserBuilder */
667   public XmlParserBuilder listener(Class<? extends org.apache.juneau.parser.ParserListener> value) {
668      super.listener(value);
669      return this;
670   }
671
672   @Override /* GENERATED - ParserBuilder */
673   public XmlParserBuilder strict() {
674      super.strict();
675      return this;
676   }
677
678   @Override /* GENERATED - ParserBuilder */
679   public XmlParserBuilder trimStrings() {
680      super.trimStrings();
681      return this;
682   }
683
684   @Override /* GENERATED - ParserBuilder */
685   public XmlParserBuilder unbuffered() {
686      super.unbuffered();
687      return this;
688   }
689
690   @Override /* GENERATED - ReaderParserBuilder */
691   public XmlParserBuilder fileCharset(Charset value) {
692      super.fileCharset(value);
693      return this;
694   }
695
696   @Override /* GENERATED - ReaderParserBuilder */
697   public XmlParserBuilder streamCharset(Charset value) {
698      super.streamCharset(value);
699      return this;
700   }
701
702   // </FluentSetters>
703}