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