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