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