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.json;
014
015import static org.apache.juneau.jsonschema.JsonSchemaGenerator.*;
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.annotation.*;
024import org.apache.juneau.collections.*;
025import org.apache.juneau.http.*;
026import org.apache.juneau.internal.*;
027import org.apache.juneau.jsonschema.*;
028import org.apache.juneau.reflect.*;
029import org.apache.juneau.svl.*;
030
031/**
032 * Builder class for building instances of JSON Schema serializers.
033 */
034public class JsonSchemaSerializerBuilder extends JsonSerializerBuilder {
035
036   /**
037    * Constructor, default settings.
038    */
039   public JsonSchemaSerializerBuilder() {
040      super();
041   }
042
043   /**
044    * Constructor.
045    *
046    * @param ps The initial configuration settings for this builder.
047    */
048   public JsonSchemaSerializerBuilder(PropertyStore ps) {
049      super(ps);
050   }
051
052   @Override /* ContextBuilder */
053   public JsonSchemaSerializer build() {
054      return build(JsonSchemaSerializer.class);
055   }
056
057   //-----------------------------------------------------------------------------------------------------------------
058   // Properties
059   //-----------------------------------------------------------------------------------------------------------------
060
061   /**
062    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Add descriptions.
063    *
064    * <p>
065    * Identifies which categories of types that descriptions should be automatically added to generated schemas.
066    * <p>
067    * The description is the result of calling {@link ClassMeta#getFullName()}.
068    *
069    * <ul class='seealso'>
070    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_addDescriptionsTo}
071    * </ul>
072    *
073    * @param value
074    *    The new value for this property.
075    *    <br>The default is an empty string.
076    * @return This object (for method chaining).
077    */
078   @FluentSetter
079   public JsonSchemaSerializerBuilder addDescriptionsTo(String value) {
080      return set(JSONSCHEMA_addDescriptionsTo, value);
081   }
082
083   /**
084    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Add examples.
085    *
086    * <p>
087    * Identifies which categories of types that examples should be automatically added to generated schemas.
088    * <p>
089    * The examples come from calling {@link ClassMeta#getExample(BeanSession)} which in turn gets examples
090    * from the following:
091    * <ul class='javatree'>
092    *    <li class='ja'>{@link Example}
093    *    <li class='jf'>{@link BeanContext#BEAN_examples}
094    * </ul>
095    *
096    * <ul class='seealso'>
097    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_addExamplesTo}
098    * </ul>
099    *
100    * @param value
101    *    The new value for this property.
102    *    <br>The default is an empty string.
103    * @return This object (for method chaining).
104    */
105   @FluentSetter
106   public JsonSchemaSerializerBuilder addExamplesTo(String value) {
107      return set(JSONSCHEMA_addExamplesTo, value);
108   }
109
110   /**
111    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Allow nested descriptions.
112    *
113    * <div class='warn'>
114    *    <b>Deprecated</b> - Use {@link #allowNestedDescriptions()}
115    * </div>
116    */
117   @SuppressWarnings("javadoc")
118   @FluentSetter
119   @Deprecated
120   public JsonSchemaSerializerBuilder allowNestedDescriptions(boolean value) {
121      return set(JSONSCHEMA_allowNestedDescriptions, value);
122   }
123
124   /**
125    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Allow nested descriptions.
126    *
127    * <p>
128    * Identifies whether nested descriptions are allowed in schema definitions.
129    *
130    * <ul class='seealso'>
131    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_allowNestedDescriptions}
132    * </ul>
133    *
134    * @return This object (for method chaining).
135    */
136   @FluentSetter
137   public JsonSchemaSerializerBuilder allowNestedDescriptions() {
138      return set(JSONSCHEMA_allowNestedDescriptions, true);
139   }
140
141   /**
142    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Allow nested examples.
143    *
144    * <div class='warn'>
145    *    <b>Deprecated</b> - Use {@link #allowNestedExamples()}
146    * </div>
147    */
148   @SuppressWarnings("javadoc")
149   @FluentSetter
150   @Deprecated
151   public JsonSchemaSerializerBuilder allowNestedExamples(boolean value) {
152      return set(JSONSCHEMA_allowNestedExamples, value);
153   }
154
155   /**
156    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Allow nested examples.
157    *
158    * <p>
159    * Identifies whether nested examples are allowed in schema definitions.
160    *
161    * <ul class='seealso'>
162    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_allowNestedExamples}
163    * </ul>
164    *
165    * @return This object (for method chaining).
166    */
167   @FluentSetter
168   public JsonSchemaSerializerBuilder allowNestedExamples() {
169      return set(JSONSCHEMA_allowNestedExamples, true);
170   }
171
172   /**
173    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Schema definition mapper.
174    *
175    * <p>
176    * Interface to use for converting Bean classes to definition IDs and URIs.
177    * <p>
178    * Used primarily for defining common definition sections for beans in Swagger JSON.
179    * <p>
180    * This setting is ignored if {@link JsonSchemaGenerator#JSONSCHEMA_useBeanDefs} is not enabled.
181    *
182    * <ul class='seealso'>
183    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_beanDefMapper}
184    * </ul>
185    *
186    * @param value
187    *    The new value for this property.
188    *    <br>The default is {@link org.apache.juneau.jsonschema.BasicBeanDefMapper}.
189    * @return This object (for method chaining).
190    */
191   @FluentSetter
192   public JsonSchemaSerializerBuilder beanDefMapper(Class<? extends BeanDefMapper> value) {
193      return set(JSONSCHEMA_beanDefMapper, value);
194   }
195
196   /**
197    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Bean schema definition mapper.
198    *
199    * <p>
200    * Interface to use for converting Bean classes to definition IDs and URIs.
201    * <p>
202    * Used primarily for defining common definition sections for beans in Swagger JSON.
203    * <p>
204    * This setting is ignored if {@link JsonSchemaGenerator#JSONSCHEMA_useBeanDefs} is not enabled.
205    *
206    * <ul class='seealso'>
207    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_beanDefMapper}
208    * </ul>
209    *
210    * @param value
211    *    The new value for this property.
212    *    <br>The default is {@link org.apache.juneau.jsonschema.BasicBeanDefMapper}.
213    * @return This object (for method chaining).
214    */
215   @FluentSetter
216   public JsonSchemaSerializerBuilder beanDefMapper(BeanDefMapper value) {
217      return set(JSONSCHEMA_beanDefMapper, value);
218   }
219
220   /**
221    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Default schemas.
222    *
223    * <p>
224    * Allows you to override or provide custom schema information for particular class types.
225    * <p>
226    * Keys are full class names.
227    *
228    * <ul class='seealso'>
229    *    <li class='jf'>{@link JsonSchemaGenerator#JSONSCHEMA_defaultSchemas}
230    * </ul>
231    *
232    * @param c
233    *    The class to define a default schema for.
234    * @param schema
235    *    The schema.
236    * @return This object (for method chaining).
237    */
238   @FluentSetter
239   public JsonSchemaSerializerBuilder defaultSchema(Class<?> c, OMap schema) {
240      return putTo(JSONSCHEMA_defaultSchemas, c.getName(), schema);
241   }
242
243   /**
244    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Use bean definitions.
245    *
246    * <div class='warn'>
247    *    <b>Deprecated</b> - Use {@link #useBeanDefs()}
248    * </div>
249    */
250   @SuppressWarnings("javadoc")
251   @FluentSetter
252   @Deprecated
253   public JsonSchemaSerializerBuilder useBeanDefs(boolean value) {
254      return set(JSONSCHEMA_useBeanDefs, value);
255   }
256
257   /**
258    * <i><l>JsonSchemaSerializer</l> configuration property:&emsp;</i>  Use bean definitions.
259    *
260    * <p>
261    * When enabled, schemas on beans will be serialized as the following:
262    * <p class='bcode w800'>
263    *    {
264    *       type: <js>'object'</js>,
265    *       <js>'$ref'</js>: <js>'#/definitions/TypeId'</js>
266    *    }
267    * </p>
268    *
269    * @return This object (for method chaining).
270    */
271   @FluentSetter
272   public JsonSchemaSerializerBuilder useBeanDefs() {
273      return set(JSONSCHEMA_useBeanDefs, true);
274   }
275
276   // <FluentSetters>
277
278   @Override /* GENERATED - ContextBuilder */
279   public JsonSchemaSerializerBuilder add(Map<String,Object> properties) {
280      super.add(properties);
281      return this;
282   }
283
284   @Override /* GENERATED - ContextBuilder */
285   public JsonSchemaSerializerBuilder addTo(String name, Object value) {
286      super.addTo(name, value);
287      return this;
288   }
289
290   @Override /* GENERATED - ContextBuilder */
291   public JsonSchemaSerializerBuilder appendTo(String name, Object value) {
292      super.appendTo(name, value);
293      return this;
294   }
295
296   @Override /* GENERATED - ContextBuilder */
297   public JsonSchemaSerializerBuilder apply(PropertyStore copyFrom) {
298      super.apply(copyFrom);
299      return this;
300   }
301
302   @Override /* GENERATED - ContextBuilder */
303   public JsonSchemaSerializerBuilder applyAnnotations(java.lang.Class<?>...fromClasses) {
304      super.applyAnnotations(fromClasses);
305      return this;
306   }
307
308   @Override /* GENERATED - ContextBuilder */
309   public JsonSchemaSerializerBuilder applyAnnotations(Method...fromMethods) {
310      super.applyAnnotations(fromMethods);
311      return this;
312   }
313
314   @Override /* GENERATED - ContextBuilder */
315   public JsonSchemaSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
316      super.applyAnnotations(al, r);
317      return this;
318   }
319
320   @Override /* GENERATED - ContextBuilder */
321   public JsonSchemaSerializerBuilder debug() {
322      super.debug();
323      return this;
324   }
325
326   @Override /* GENERATED - ContextBuilder */
327   public JsonSchemaSerializerBuilder locale(Locale value) {
328      super.locale(value);
329      return this;
330   }
331
332   @Override /* GENERATED - ContextBuilder */
333   public JsonSchemaSerializerBuilder mediaType(MediaType value) {
334      super.mediaType(value);
335      return this;
336   }
337
338   @Override /* GENERATED - ContextBuilder */
339   public JsonSchemaSerializerBuilder prependTo(String name, Object value) {
340      super.prependTo(name, value);
341      return this;
342   }
343
344   @Override /* GENERATED - ContextBuilder */
345   public JsonSchemaSerializerBuilder putAllTo(String name, Object value) {
346      super.putAllTo(name, value);
347      return this;
348   }
349
350   @Override /* GENERATED - ContextBuilder */
351   public JsonSchemaSerializerBuilder putTo(String name, String key, Object value) {
352      super.putTo(name, key, value);
353      return this;
354   }
355
356   @Override /* GENERATED - ContextBuilder */
357   public JsonSchemaSerializerBuilder removeFrom(String name, Object value) {
358      super.removeFrom(name, value);
359      return this;
360   }
361
362   @Override /* GENERATED - ContextBuilder */
363   public JsonSchemaSerializerBuilder set(Map<String,Object> properties) {
364      super.set(properties);
365      return this;
366   }
367
368   @Override /* GENERATED - ContextBuilder */
369   public JsonSchemaSerializerBuilder set(String name, Object value) {
370      super.set(name, value);
371      return this;
372   }
373
374   @Override /* GENERATED - ContextBuilder */
375   public JsonSchemaSerializerBuilder timeZone(TimeZone value) {
376      super.timeZone(value);
377      return this;
378   }
379
380   @Override /* GENERATED - BeanContextBuilder */
381   public JsonSchemaSerializerBuilder annotations(Annotation...values) {
382      super.annotations(values);
383      return this;
384   }
385
386   @Override /* GENERATED - BeanContextBuilder */
387   public JsonSchemaSerializerBuilder beanClassVisibility(Visibility value) {
388      super.beanClassVisibility(value);
389      return this;
390   }
391
392   @Override /* GENERATED - BeanContextBuilder */
393   public JsonSchemaSerializerBuilder beanConstructorVisibility(Visibility value) {
394      super.beanConstructorVisibility(value);
395      return this;
396   }
397
398   @Override /* GENERATED - BeanContextBuilder */
399   public JsonSchemaSerializerBuilder beanFieldVisibility(Visibility value) {
400      super.beanFieldVisibility(value);
401      return this;
402   }
403
404   @Override /* GENERATED - BeanContextBuilder */
405   public JsonSchemaSerializerBuilder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
406      super.beanInterceptor(on, value);
407      return this;
408   }
409
410   @Override /* GENERATED - BeanContextBuilder */
411   public JsonSchemaSerializerBuilder beanMapPutReturnsOldValue() {
412      super.beanMapPutReturnsOldValue();
413      return this;
414   }
415
416   @Override /* GENERATED - BeanContextBuilder */
417   public JsonSchemaSerializerBuilder beanMethodVisibility(Visibility value) {
418      super.beanMethodVisibility(value);
419      return this;
420   }
421
422   @Override /* GENERATED - BeanContextBuilder */
423   public JsonSchemaSerializerBuilder beansDontRequireSomeProperties() {
424      super.beansDontRequireSomeProperties();
425      return this;
426   }
427
428   @Override /* GENERATED - BeanContextBuilder */
429   public JsonSchemaSerializerBuilder beansRequireDefaultConstructor() {
430      super.beansRequireDefaultConstructor();
431      return this;
432   }
433
434   @Override /* GENERATED - BeanContextBuilder */
435   public JsonSchemaSerializerBuilder beansRequireSerializable() {
436      super.beansRequireSerializable();
437      return this;
438   }
439
440   @Override /* GENERATED - BeanContextBuilder */
441   public JsonSchemaSerializerBuilder beansRequireSettersForGetters() {
442      super.beansRequireSettersForGetters();
443      return this;
444   }
445
446   @Override /* GENERATED - BeanContextBuilder */
447   public JsonSchemaSerializerBuilder bpi(Map<String,Object> values) {
448      super.bpi(values);
449      return this;
450   }
451
452   @Override /* GENERATED - BeanContextBuilder */
453   public JsonSchemaSerializerBuilder bpi(Class<?> beanClass, String properties) {
454      super.bpi(beanClass, properties);
455      return this;
456   }
457
458   @Override /* GENERATED - BeanContextBuilder */
459   public JsonSchemaSerializerBuilder bpi(String beanClassName, String properties) {
460      super.bpi(beanClassName, properties);
461      return this;
462   }
463
464   @Override /* GENERATED - BeanContextBuilder */
465   public JsonSchemaSerializerBuilder bpro(Map<String,Object> values) {
466      super.bpro(values);
467      return this;
468   }
469
470   @Override /* GENERATED - BeanContextBuilder */
471   public JsonSchemaSerializerBuilder bpro(Class<?> beanClass, String properties) {
472      super.bpro(beanClass, properties);
473      return this;
474   }
475
476   @Override /* GENERATED - BeanContextBuilder */
477   public JsonSchemaSerializerBuilder bpro(String beanClassName, String properties) {
478      super.bpro(beanClassName, properties);
479      return this;
480   }
481
482   @Override /* GENERATED - BeanContextBuilder */
483   public JsonSchemaSerializerBuilder bpwo(Map<String,Object> values) {
484      super.bpwo(values);
485      return this;
486   }
487
488   @Override /* GENERATED - BeanContextBuilder */
489   public JsonSchemaSerializerBuilder bpwo(Class<?> beanClass, String properties) {
490      super.bpwo(beanClass, properties);
491      return this;
492   }
493
494   @Override /* GENERATED - BeanContextBuilder */
495   public JsonSchemaSerializerBuilder bpwo(String beanClassName, String properties) {
496      super.bpwo(beanClassName, properties);
497      return this;
498   }
499
500   @Override /* GENERATED - BeanContextBuilder */
501   public JsonSchemaSerializerBuilder bpx(Map<String,Object> values) {
502      super.bpx(values);
503      return this;
504   }
505
506   @Override /* GENERATED - BeanContextBuilder */
507   public JsonSchemaSerializerBuilder bpx(Class<?> beanClass, String properties) {
508      super.bpx(beanClass, properties);
509      return this;
510   }
511
512   @Override /* GENERATED - BeanContextBuilder */
513   public JsonSchemaSerializerBuilder bpx(String beanClassName, String properties) {
514      super.bpx(beanClassName, properties);
515      return this;
516   }
517
518   @Override /* GENERATED - BeanContextBuilder */
519   public JsonSchemaSerializerBuilder dictionary(Object...values) {
520      super.dictionary(values);
521      return this;
522   }
523
524   @Override /* GENERATED - BeanContextBuilder */
525   public JsonSchemaSerializerBuilder dictionaryOn(Class<?> on, java.lang.Class<?>...values) {
526      super.dictionaryOn(on, values);
527      return this;
528   }
529
530   @Override /* GENERATED - BeanContextBuilder */
531   public JsonSchemaSerializerBuilder dontIgnorePropertiesWithoutSetters() {
532      super.dontIgnorePropertiesWithoutSetters();
533      return this;
534   }
535
536   @Override /* GENERATED - BeanContextBuilder */
537   public JsonSchemaSerializerBuilder dontIgnoreTransientFields() {
538      super.dontIgnoreTransientFields();
539      return this;
540   }
541
542   @Override /* GENERATED - BeanContextBuilder */
543   public JsonSchemaSerializerBuilder dontIgnoreUnknownNullBeanProperties() {
544      super.dontIgnoreUnknownNullBeanProperties();
545      return this;
546   }
547
548   @Override /* GENERATED - BeanContextBuilder */
549   public JsonSchemaSerializerBuilder dontUseInterfaceProxies() {
550      super.dontUseInterfaceProxies();
551      return this;
552   }
553
554   @Override /* GENERATED - BeanContextBuilder */
555   public <T> JsonSchemaSerializerBuilder example(Class<T> pojoClass, T o) {
556      super.example(pojoClass, o);
557      return this;
558   }
559
560   @Override /* GENERATED - BeanContextBuilder */
561   public <T> JsonSchemaSerializerBuilder exampleJson(Class<T> pojoClass, String json) {
562      super.exampleJson(pojoClass, json);
563      return this;
564   }
565
566   @Override /* GENERATED - BeanContextBuilder */
567   public JsonSchemaSerializerBuilder fluentSetters() {
568      super.fluentSetters();
569      return this;
570   }
571
572   @Override /* GENERATED - BeanContextBuilder */
573   public JsonSchemaSerializerBuilder fluentSetters(Class<?> on) {
574      super.fluentSetters(on);
575      return this;
576   }
577
578   @Override /* GENERATED - BeanContextBuilder */
579   public JsonSchemaSerializerBuilder ignoreInvocationExceptionsOnGetters() {
580      super.ignoreInvocationExceptionsOnGetters();
581      return this;
582   }
583
584   @Override /* GENERATED - BeanContextBuilder */
585   public JsonSchemaSerializerBuilder ignoreInvocationExceptionsOnSetters() {
586      super.ignoreInvocationExceptionsOnSetters();
587      return this;
588   }
589
590   @Override /* GENERATED - BeanContextBuilder */
591   public JsonSchemaSerializerBuilder ignoreUnknownBeanProperties() {
592      super.ignoreUnknownBeanProperties();
593      return this;
594   }
595
596   @Override /* GENERATED - BeanContextBuilder */
597   public JsonSchemaSerializerBuilder implClass(Class<?> interfaceClass, Class<?> implClass) {
598      super.implClass(interfaceClass, implClass);
599      return this;
600   }
601
602   @Override /* GENERATED - BeanContextBuilder */
603   public JsonSchemaSerializerBuilder implClasses(Map<Class<?>,Class<?>> values) {
604      super.implClasses(values);
605      return this;
606   }
607
608   @Override /* GENERATED - BeanContextBuilder */
609   public JsonSchemaSerializerBuilder interfaceClass(Class<?> on, Class<?> value) {
610      super.interfaceClass(on, value);
611      return this;
612   }
613
614   @Override /* GENERATED - BeanContextBuilder */
615   public JsonSchemaSerializerBuilder interfaces(java.lang.Class<?>...value) {
616      super.interfaces(value);
617      return this;
618   }
619
620   @Override /* GENERATED - BeanContextBuilder */
621   public JsonSchemaSerializerBuilder notBeanClasses(Object...values) {
622      super.notBeanClasses(values);
623      return this;
624   }
625
626   @Override /* GENERATED - BeanContextBuilder */
627   public JsonSchemaSerializerBuilder notBeanPackages(Object...values) {
628      super.notBeanPackages(values);
629      return this;
630   }
631
632   @Override /* GENERATED - BeanContextBuilder */
633   public JsonSchemaSerializerBuilder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) {
634      super.propertyNamer(value);
635      return this;
636   }
637
638   @Override /* GENERATED - BeanContextBuilder */
639   public JsonSchemaSerializerBuilder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) {
640      super.propertyNamer(on, value);
641      return this;
642   }
643
644   @Override /* GENERATED - BeanContextBuilder */
645   public JsonSchemaSerializerBuilder sortProperties() {
646      super.sortProperties();
647      return this;
648   }
649
650   @Override /* GENERATED - BeanContextBuilder */
651   public JsonSchemaSerializerBuilder sortProperties(java.lang.Class<?>...on) {
652      super.sortProperties(on);
653      return this;
654   }
655
656   @Override /* GENERATED - BeanContextBuilder */
657   public JsonSchemaSerializerBuilder stopClass(Class<?> on, Class<?> value) {
658      super.stopClass(on, value);
659      return this;
660   }
661
662   @Override /* GENERATED - BeanContextBuilder */
663   public JsonSchemaSerializerBuilder swaps(Object...values) {
664      super.swaps(values);
665      return this;
666   }
667
668   @Override /* GENERATED - BeanContextBuilder */
669   public JsonSchemaSerializerBuilder typeName(Class<?> on, String value) {
670      super.typeName(on, value);
671      return this;
672   }
673
674   @Override /* GENERATED - BeanContextBuilder */
675   public JsonSchemaSerializerBuilder typePropertyName(String value) {
676      super.typePropertyName(value);
677      return this;
678   }
679
680   @Override /* GENERATED - BeanContextBuilder */
681   public JsonSchemaSerializerBuilder typePropertyName(Class<?> on, String value) {
682      super.typePropertyName(on, value);
683      return this;
684   }
685
686   @Override /* GENERATED - BeanContextBuilder */
687   public JsonSchemaSerializerBuilder useEnumNames() {
688      super.useEnumNames();
689      return this;
690   }
691
692   @Override /* GENERATED - BeanContextBuilder */
693   public JsonSchemaSerializerBuilder useJavaBeanIntrospector() {
694      super.useJavaBeanIntrospector();
695      return this;
696   }
697
698   @Override /* GENERATED - BeanTraverseBuilder */
699   public JsonSchemaSerializerBuilder detectRecursions() {
700      super.detectRecursions();
701      return this;
702   }
703
704   @Override /* GENERATED - BeanTraverseBuilder */
705   public JsonSchemaSerializerBuilder ignoreRecursions() {
706      super.ignoreRecursions();
707      return this;
708   }
709
710   @Override /* GENERATED - BeanTraverseBuilder */
711   public JsonSchemaSerializerBuilder initialDepth(int value) {
712      super.initialDepth(value);
713      return this;
714   }
715
716   @Override /* GENERATED - BeanTraverseBuilder */
717   public JsonSchemaSerializerBuilder maxDepth(int value) {
718      super.maxDepth(value);
719      return this;
720   }
721
722   @Override /* GENERATED - SerializerBuilder */
723   public JsonSchemaSerializerBuilder addBeanTypes() {
724      super.addBeanTypes();
725      return this;
726   }
727
728   @Override /* GENERATED - SerializerBuilder */
729   public JsonSchemaSerializerBuilder addRootType() {
730      super.addRootType();
731      return this;
732   }
733
734   @Override /* GENERATED - SerializerBuilder */
735   public JsonSchemaSerializerBuilder keepNullProperties() {
736      super.keepNullProperties();
737      return this;
738   }
739
740   @Override /* GENERATED - SerializerBuilder */
741   public JsonSchemaSerializerBuilder listener(Class<? extends org.apache.juneau.serializer.SerializerListener> value) {
742      super.listener(value);
743      return this;
744   }
745
746   @Override /* GENERATED - SerializerBuilder */
747   public JsonSchemaSerializerBuilder sortCollections() {
748      super.sortCollections();
749      return this;
750   }
751
752   @Override /* GENERATED - SerializerBuilder */
753   public JsonSchemaSerializerBuilder sortMaps() {
754      super.sortMaps();
755      return this;
756   }
757
758   @Override /* GENERATED - SerializerBuilder */
759   public JsonSchemaSerializerBuilder trimEmptyCollections() {
760      super.trimEmptyCollections();
761      return this;
762   }
763
764   @Override /* GENERATED - SerializerBuilder */
765   public JsonSchemaSerializerBuilder trimEmptyMaps() {
766      super.trimEmptyMaps();
767      return this;
768   }
769
770   @Override /* GENERATED - SerializerBuilder */
771   public JsonSchemaSerializerBuilder trimStrings() {
772      super.trimStrings();
773      return this;
774   }
775
776   @Override /* GENERATED - SerializerBuilder */
777   public JsonSchemaSerializerBuilder uriContext(UriContext value) {
778      super.uriContext(value);
779      return this;
780   }
781
782   @Override /* GENERATED - SerializerBuilder */
783   public JsonSchemaSerializerBuilder uriRelativity(UriRelativity value) {
784      super.uriRelativity(value);
785      return this;
786   }
787
788   @Override /* GENERATED - SerializerBuilder */
789   public JsonSchemaSerializerBuilder uriResolution(UriResolution value) {
790      super.uriResolution(value);
791      return this;
792   }
793
794   @Override /* GENERATED - WriterSerializerBuilder */
795   public JsonSchemaSerializerBuilder fileCharset(Charset value) {
796      super.fileCharset(value);
797      return this;
798   }
799
800   @Override /* GENERATED - WriterSerializerBuilder */
801   public JsonSchemaSerializerBuilder maxIndent(int value) {
802      super.maxIndent(value);
803      return this;
804   }
805
806   @Override /* GENERATED - WriterSerializerBuilder */
807   public JsonSchemaSerializerBuilder quoteChar(char value) {
808      super.quoteChar(value);
809      return this;
810   }
811
812   @Override /* GENERATED - WriterSerializerBuilder */
813   public JsonSchemaSerializerBuilder sq() {
814      super.sq();
815      return this;
816   }
817
818   @Override /* GENERATED - WriterSerializerBuilder */
819   public JsonSchemaSerializerBuilder streamCharset(Charset value) {
820      super.streamCharset(value);
821      return this;
822   }
823
824   @Override /* GENERATED - WriterSerializerBuilder */
825   public JsonSchemaSerializerBuilder useWhitespace() {
826      super.useWhitespace();
827      return this;
828   }
829
830   @Override /* GENERATED - WriterSerializerBuilder */
831   public JsonSchemaSerializerBuilder ws() {
832      super.ws();
833      return this;
834   }
835
836   @Override /* GENERATED - JsonSerializerBuilder */
837   public JsonSchemaSerializerBuilder escapeSolidus() {
838      super.escapeSolidus();
839      return this;
840   }
841
842   @Override /* GENERATED - JsonSerializerBuilder */
843   public JsonSchemaSerializerBuilder simple() {
844      super.simple();
845      return this;
846   }
847
848   @Override /* GENERATED - JsonSerializerBuilder */
849   public JsonSchemaSerializerBuilder ssq() {
850      super.ssq();
851      return this;
852   }
853
854   // </FluentSetters>
855}