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.uon;
014
015import static org.apache.juneau.uon.UonParser.*;
016
017import java.lang.annotation.*;
018import java.lang.reflect.*;
019import java.nio.charset.*;
020import java.util.*;
021
022import org.apache.juneau.*;
023import org.apache.juneau.http.*;
024import org.apache.juneau.internal.*;
025import org.apache.juneau.parser.*;
026import org.apache.juneau.reflect.*;
027import org.apache.juneau.svl.*;
028import org.apache.juneau.urlencoding.*;
029
030/**
031 * Builder class for building instances of UON parsers.
032 */
033public class UonParserBuilder extends ReaderParserBuilder {
034
035   /**
036    * Constructor, default settings.
037    */
038   public UonParserBuilder() {
039      super();
040   }
041
042   /**
043    * Constructor.
044    *
045    * @param ps The initial configuration settings for this builder.
046    */
047   public UonParserBuilder(PropertyStore ps) {
048      super(ps);
049   }
050
051   @Override /* ContextBuilder */
052   public UonParser build() {
053      return build(UonParser.class);
054   }
055
056   //-----------------------------------------------------------------------------------------------------------------
057   // Properties
058   //-----------------------------------------------------------------------------------------------------------------
059
060   /**
061    * <i><l>UonParser</l> configuration property:&emsp;</i>  Decode <js>"%xx"</js> sequences.
062    *
063    * <p>
064    * Specify <jk>true</jk> if URI encoded characters should be decoded, <jk>false</jk> if they've already been
065    * decoded before being passed to this parser.
066    *
067    * <ul class='seealso'>
068    *    <li class='jf'>{@link UonParser#UON_decoding}
069    * </ul>
070    *
071    * @param value
072    *    The new value for this property.
073    *    <br>Default is <jk>false</jk> for {@link UonParser}, <jk>true</jk> for {@link UrlEncodingParser}
074    * @return This object (for method chaining).
075    */
076   @FluentSetter
077   public UonParserBuilder decoding(boolean value) {
078      return set(UON_decoding, value);
079   }
080
081   /**
082    * <i><l>UonParser</l> configuration property:&emsp;</i>  Decode <js>"%xx"</js> sequences.
083    *
084    * <p>
085    * Shortcut for calling <code>decodeChars(<jk>true</jk>)</code>.
086    *
087    * <ul class='seealso'>
088    *    <li class='jf'>{@link UonParser#UON_decoding}
089    * </ul>
090    *
091    * @return This object (for method chaining).
092    */
093   @FluentSetter
094   public UonParserBuilder decoding() {
095      return decoding(true);
096   }
097
098   /**
099    * <i><l>UonParser</l> configuration property:&emsp;</i>  Validate end.
100    *
101    * <div class='warn'>
102    *    <b>Deprecated</b> - Use {@link #validateEnd()}
103    * </div>
104    */
105   @SuppressWarnings("javadoc")
106   @Deprecated
107   @FluentSetter
108   public UonParserBuilder validateEnd(boolean value) {
109      return set(UON_validateEnd, value);
110   }
111
112   /**
113    * <i><l>UonParser</l> configuration property:&emsp;</i>  Validate end.
114    *
115    * <p>
116    * Shortcut for calling <code>validateEnd(<jk>true</jk>)</code>.
117    *
118    * <ul class='seealso'>
119    *    <li class='jf'>{@link UonParser#UON_validateEnd}
120    * </ul>
121    *
122    * @return This object (for method chaining).
123    */
124   @FluentSetter
125   public UonParserBuilder validateEnd() {
126      return set(UON_validateEnd, true);
127   }
128
129   // <FluentSetters>
130
131   @Override /* GENERATED - ContextBuilder */
132   public UonParserBuilder add(Map<String,Object> properties) {
133      super.add(properties);
134      return this;
135   }
136
137   @Override /* GENERATED - ContextBuilder */
138   public UonParserBuilder addTo(String name, Object value) {
139      super.addTo(name, value);
140      return this;
141   }
142
143   @Override /* GENERATED - ContextBuilder */
144   public UonParserBuilder appendTo(String name, Object value) {
145      super.appendTo(name, value);
146      return this;
147   }
148
149   @Override /* GENERATED - ContextBuilder */
150   public UonParserBuilder apply(PropertyStore copyFrom) {
151      super.apply(copyFrom);
152      return this;
153   }
154
155   @Override /* GENERATED - ContextBuilder */
156   public UonParserBuilder applyAnnotations(java.lang.Class<?>...fromClasses) {
157      super.applyAnnotations(fromClasses);
158      return this;
159   }
160
161   @Override /* GENERATED - ContextBuilder */
162   public UonParserBuilder applyAnnotations(Method...fromMethods) {
163      super.applyAnnotations(fromMethods);
164      return this;
165   }
166
167   @Override /* GENERATED - ContextBuilder */
168   public UonParserBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
169      super.applyAnnotations(al, r);
170      return this;
171   }
172
173   @Override /* GENERATED - ContextBuilder */
174   public UonParserBuilder debug() {
175      super.debug();
176      return this;
177   }
178
179   @Override /* GENERATED - ContextBuilder */
180   public UonParserBuilder locale(Locale value) {
181      super.locale(value);
182      return this;
183   }
184
185   @Override /* GENERATED - ContextBuilder */
186   public UonParserBuilder mediaType(MediaType value) {
187      super.mediaType(value);
188      return this;
189   }
190
191   @Override /* GENERATED - ContextBuilder */
192   public UonParserBuilder prependTo(String name, Object value) {
193      super.prependTo(name, value);
194      return this;
195   }
196
197   @Override /* GENERATED - ContextBuilder */
198   public UonParserBuilder putAllTo(String name, Object value) {
199      super.putAllTo(name, value);
200      return this;
201   }
202
203   @Override /* GENERATED - ContextBuilder */
204   public UonParserBuilder putTo(String name, String key, Object value) {
205      super.putTo(name, key, value);
206      return this;
207   }
208
209   @Override /* GENERATED - ContextBuilder */
210   public UonParserBuilder removeFrom(String name, Object value) {
211      super.removeFrom(name, value);
212      return this;
213   }
214
215   @Override /* GENERATED - ContextBuilder */
216   public UonParserBuilder set(Map<String,Object> properties) {
217      super.set(properties);
218      return this;
219   }
220
221   @Override /* GENERATED - ContextBuilder */
222   public UonParserBuilder set(String name, Object value) {
223      super.set(name, value);
224      return this;
225   }
226
227   @Override /* GENERATED - ContextBuilder */
228   public UonParserBuilder timeZone(TimeZone value) {
229      super.timeZone(value);
230      return this;
231   }
232
233   @Override /* GENERATED - BeanContextBuilder */
234   public UonParserBuilder annotations(Annotation...values) {
235      super.annotations(values);
236      return this;
237   }
238
239   @Override /* GENERATED - BeanContextBuilder */
240   public UonParserBuilder beanClassVisibility(Visibility value) {
241      super.beanClassVisibility(value);
242      return this;
243   }
244
245   @Override /* GENERATED - BeanContextBuilder */
246   public UonParserBuilder beanConstructorVisibility(Visibility value) {
247      super.beanConstructorVisibility(value);
248      return this;
249   }
250
251   @Override /* GENERATED - BeanContextBuilder */
252   public UonParserBuilder beanFieldVisibility(Visibility value) {
253      super.beanFieldVisibility(value);
254      return this;
255   }
256
257   @Override /* GENERATED - BeanContextBuilder */
258   public UonParserBuilder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
259      super.beanInterceptor(on, value);
260      return this;
261   }
262
263   @Override /* GENERATED - BeanContextBuilder */
264   public UonParserBuilder beanMapPutReturnsOldValue() {
265      super.beanMapPutReturnsOldValue();
266      return this;
267   }
268
269   @Override /* GENERATED - BeanContextBuilder */
270   public UonParserBuilder beanMethodVisibility(Visibility value) {
271      super.beanMethodVisibility(value);
272      return this;
273   }
274
275   @Override /* GENERATED - BeanContextBuilder */
276   public UonParserBuilder beansDontRequireSomeProperties() {
277      super.beansDontRequireSomeProperties();
278      return this;
279   }
280
281   @Override /* GENERATED - BeanContextBuilder */
282   public UonParserBuilder beansRequireDefaultConstructor() {
283      super.beansRequireDefaultConstructor();
284      return this;
285   }
286
287   @Override /* GENERATED - BeanContextBuilder */
288   public UonParserBuilder beansRequireSerializable() {
289      super.beansRequireSerializable();
290      return this;
291   }
292
293   @Override /* GENERATED - BeanContextBuilder */
294   public UonParserBuilder beansRequireSettersForGetters() {
295      super.beansRequireSettersForGetters();
296      return this;
297   }
298
299   @Override /* GENERATED - BeanContextBuilder */
300   public UonParserBuilder bpi(Map<String,Object> values) {
301      super.bpi(values);
302      return this;
303   }
304
305   @Override /* GENERATED - BeanContextBuilder */
306   public UonParserBuilder bpi(Class<?> beanClass, String properties) {
307      super.bpi(beanClass, properties);
308      return this;
309   }
310
311   @Override /* GENERATED - BeanContextBuilder */
312   public UonParserBuilder bpi(String beanClassName, String properties) {
313      super.bpi(beanClassName, properties);
314      return this;
315   }
316
317   @Override /* GENERATED - BeanContextBuilder */
318   public UonParserBuilder bpro(Map<String,Object> values) {
319      super.bpro(values);
320      return this;
321   }
322
323   @Override /* GENERATED - BeanContextBuilder */
324   public UonParserBuilder bpro(Class<?> beanClass, String properties) {
325      super.bpro(beanClass, properties);
326      return this;
327   }
328
329   @Override /* GENERATED - BeanContextBuilder */
330   public UonParserBuilder bpro(String beanClassName, String properties) {
331      super.bpro(beanClassName, properties);
332      return this;
333   }
334
335   @Override /* GENERATED - BeanContextBuilder */
336   public UonParserBuilder bpwo(Map<String,Object> values) {
337      super.bpwo(values);
338      return this;
339   }
340
341   @Override /* GENERATED - BeanContextBuilder */
342   public UonParserBuilder bpwo(Class<?> beanClass, String properties) {
343      super.bpwo(beanClass, properties);
344      return this;
345   }
346
347   @Override /* GENERATED - BeanContextBuilder */
348   public UonParserBuilder bpwo(String beanClassName, String properties) {
349      super.bpwo(beanClassName, properties);
350      return this;
351   }
352
353   @Override /* GENERATED - BeanContextBuilder */
354   public UonParserBuilder bpx(Map<String,Object> values) {
355      super.bpx(values);
356      return this;
357   }
358
359   @Override /* GENERATED - BeanContextBuilder */
360   public UonParserBuilder bpx(Class<?> beanClass, String properties) {
361      super.bpx(beanClass, properties);
362      return this;
363   }
364
365   @Override /* GENERATED - BeanContextBuilder */
366   public UonParserBuilder bpx(String beanClassName, String properties) {
367      super.bpx(beanClassName, properties);
368      return this;
369   }
370
371   @Override /* GENERATED - BeanContextBuilder */
372   public UonParserBuilder dictionary(Object...values) {
373      super.dictionary(values);
374      return this;
375   }
376
377   @Override /* GENERATED - BeanContextBuilder */
378   public UonParserBuilder dictionaryOn(Class<?> on, java.lang.Class<?>...values) {
379      super.dictionaryOn(on, values);
380      return this;
381   }
382
383   @Override /* GENERATED - BeanContextBuilder */
384   public UonParserBuilder dontIgnorePropertiesWithoutSetters() {
385      super.dontIgnorePropertiesWithoutSetters();
386      return this;
387   }
388
389   @Override /* GENERATED - BeanContextBuilder */
390   public UonParserBuilder dontIgnoreTransientFields() {
391      super.dontIgnoreTransientFields();
392      return this;
393   }
394
395   @Override /* GENERATED - BeanContextBuilder */
396   public UonParserBuilder dontIgnoreUnknownNullBeanProperties() {
397      super.dontIgnoreUnknownNullBeanProperties();
398      return this;
399   }
400
401   @Override /* GENERATED - BeanContextBuilder */
402   public UonParserBuilder dontUseInterfaceProxies() {
403      super.dontUseInterfaceProxies();
404      return this;
405   }
406
407   @Override /* GENERATED - BeanContextBuilder */
408   public <T> UonParserBuilder example(Class<T> pojoClass, T o) {
409      super.example(pojoClass, o);
410      return this;
411   }
412
413   @Override /* GENERATED - BeanContextBuilder */
414   public <T> UonParserBuilder exampleJson(Class<T> pojoClass, String json) {
415      super.exampleJson(pojoClass, json);
416      return this;
417   }
418
419   @Override /* GENERATED - BeanContextBuilder */
420   public UonParserBuilder fluentSetters() {
421      super.fluentSetters();
422      return this;
423   }
424
425   @Override /* GENERATED - BeanContextBuilder */
426   public UonParserBuilder fluentSetters(Class<?> on) {
427      super.fluentSetters(on);
428      return this;
429   }
430
431   @Override /* GENERATED - BeanContextBuilder */
432   public UonParserBuilder ignoreInvocationExceptionsOnGetters() {
433      super.ignoreInvocationExceptionsOnGetters();
434      return this;
435   }
436
437   @Override /* GENERATED - BeanContextBuilder */
438   public UonParserBuilder ignoreInvocationExceptionsOnSetters() {
439      super.ignoreInvocationExceptionsOnSetters();
440      return this;
441   }
442
443   @Override /* GENERATED - BeanContextBuilder */
444   public UonParserBuilder ignoreUnknownBeanProperties() {
445      super.ignoreUnknownBeanProperties();
446      return this;
447   }
448
449   @Override /* GENERATED - BeanContextBuilder */
450   public UonParserBuilder implClass(Class<?> interfaceClass, Class<?> implClass) {
451      super.implClass(interfaceClass, implClass);
452      return this;
453   }
454
455   @Override /* GENERATED - BeanContextBuilder */
456   public UonParserBuilder implClasses(Map<Class<?>,Class<?>> values) {
457      super.implClasses(values);
458      return this;
459   }
460
461   @Override /* GENERATED - BeanContextBuilder */
462   public UonParserBuilder interfaceClass(Class<?> on, Class<?> value) {
463      super.interfaceClass(on, value);
464      return this;
465   }
466
467   @Override /* GENERATED - BeanContextBuilder */
468   public UonParserBuilder interfaces(java.lang.Class<?>...value) {
469      super.interfaces(value);
470      return this;
471   }
472
473   @Override /* GENERATED - BeanContextBuilder */
474   public UonParserBuilder notBeanClasses(Object...values) {
475      super.notBeanClasses(values);
476      return this;
477   }
478
479   @Override /* GENERATED - BeanContextBuilder */
480   public UonParserBuilder notBeanPackages(Object...values) {
481      super.notBeanPackages(values);
482      return this;
483   }
484
485   @Override /* GENERATED - BeanContextBuilder */
486   public UonParserBuilder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) {
487      super.propertyNamer(value);
488      return this;
489   }
490
491   @Override /* GENERATED - BeanContextBuilder */
492   public UonParserBuilder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) {
493      super.propertyNamer(on, value);
494      return this;
495   }
496
497   @Override /* GENERATED - BeanContextBuilder */
498   public UonParserBuilder sortProperties() {
499      super.sortProperties();
500      return this;
501   }
502
503   @Override /* GENERATED - BeanContextBuilder */
504   public UonParserBuilder sortProperties(java.lang.Class<?>...on) {
505      super.sortProperties(on);
506      return this;
507   }
508
509   @Override /* GENERATED - BeanContextBuilder */
510   public UonParserBuilder stopClass(Class<?> on, Class<?> value) {
511      super.stopClass(on, value);
512      return this;
513   }
514
515   @Override /* GENERATED - BeanContextBuilder */
516   public UonParserBuilder swaps(Object...values) {
517      super.swaps(values);
518      return this;
519   }
520
521   @Override /* GENERATED - BeanContextBuilder */
522   public UonParserBuilder typeName(Class<?> on, String value) {
523      super.typeName(on, value);
524      return this;
525   }
526
527   @Override /* GENERATED - BeanContextBuilder */
528   public UonParserBuilder typePropertyName(String value) {
529      super.typePropertyName(value);
530      return this;
531   }
532
533   @Override /* GENERATED - BeanContextBuilder */
534   public UonParserBuilder typePropertyName(Class<?> on, String value) {
535      super.typePropertyName(on, value);
536      return this;
537   }
538
539   @Override /* GENERATED - BeanContextBuilder */
540   public UonParserBuilder useEnumNames() {
541      super.useEnumNames();
542      return this;
543   }
544
545   @Override /* GENERATED - BeanContextBuilder */
546   public UonParserBuilder useJavaBeanIntrospector() {
547      super.useJavaBeanIntrospector();
548      return this;
549   }
550
551   @Override /* GENERATED - ParserBuilder */
552   public UonParserBuilder autoCloseStreams() {
553      super.autoCloseStreams();
554      return this;
555   }
556
557   @Override /* GENERATED - ParserBuilder */
558   public UonParserBuilder debugOutputLines(int value) {
559      super.debugOutputLines(value);
560      return this;
561   }
562
563   @Override /* GENERATED - ParserBuilder */
564   public UonParserBuilder listener(Class<? extends org.apache.juneau.parser.ParserListener> value) {
565      super.listener(value);
566      return this;
567   }
568
569   @Override /* GENERATED - ParserBuilder */
570   public UonParserBuilder strict() {
571      super.strict();
572      return this;
573   }
574
575   @Override /* GENERATED - ParserBuilder */
576   public UonParserBuilder trimStrings() {
577      super.trimStrings();
578      return this;
579   }
580
581   @Override /* GENERATED - ParserBuilder */
582   public UonParserBuilder unbuffered() {
583      super.unbuffered();
584      return this;
585   }
586
587   @Override /* GENERATED - ReaderParserBuilder */
588   public UonParserBuilder fileCharset(Charset value) {
589      super.fileCharset(value);
590      return this;
591   }
592
593   @Override /* GENERATED - ReaderParserBuilder */
594   public UonParserBuilder streamCharset(Charset value) {
595      super.streamCharset(value);
596      return this;
597   }
598
599   // </FluentSetters>
600}