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.WriterSerializer.*;
016
017import java.util.*;
018
019import org.apache.juneau.*;
020import org.apache.juneau.http.*;
021
022/**
023 * Base class for all writer-based serializer builders.
024 */
025public class WriterSerializerBuilder extends SerializerBuilder {
026
027   /**
028    * Constructor, default settings.
029    */
030   public WriterSerializerBuilder() {
031      super();
032   }
033
034   /**
035    * Constructor.
036    *
037    * @param ps The initial configuration settings for this builder.
038    */
039   public WriterSerializerBuilder(PropertyStore ps) {
040      super(ps);
041   }
042
043
044   //-----------------------------------------------------------------------------------------------------------------
045   // Properties
046   //-----------------------------------------------------------------------------------------------------------------
047
048   /**
049    * Configuration property:  Maximum indentation.
050    *
051    * <p>
052    * Specifies the maximum indentation level in the serialized document.
053    *
054    * <h5 class='section'>See Also:</h5>
055    * <ul>
056    *    <li class='jf'>{@link WriterSerializer#WSERIALIZER_maxIndent}
057    * </ul>
058    *
059    * @param value
060    *    The new value for this property.
061    *    <br>The default is <code>100</code>.
062    * @return This object (for method chaining).
063    */
064   public WriterSerializerBuilder maxIndent(int value) {
065      return set(WSERIALIZER_maxIndent, value);
066   }
067
068   /**
069    * Configuration property:  Quote character.
070    *
071    * <p>
072    * This is the character used for quoting attributes and values.
073    *
074    * <h5 class='section'>See Also:</h5>
075    * <ul>
076    *    <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar}
077    * </ul>
078    *
079    * @param value
080    *    The new value for this property.
081    *    <br>The default is <js>'"'</js>.
082    * @return This object (for method chaining).
083    */
084   public WriterSerializerBuilder quoteChar(char value) {
085      return set(WSERIALIZER_quoteChar, value);
086   }
087
088   /**
089    * Configuration property:  Quote character.
090    *
091    * <p>
092    * Shortcut for calling <code>quoteChar(<js>'\''</js>)</code>.
093    *
094    * <h5 class='section'>See Also:</h5>
095    * <ul>
096    *    <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar}
097    * </ul>
098    *
099    * @return This object (for method chaining).
100    */
101   public WriterSerializerBuilder sq() {
102      return quoteChar('\'');
103   }
104
105   @Override /* BeanContextBuilder */
106   public WriterSerializerBuilder beanClassVisibility(Visibility value) {
107      super.beanClassVisibility(value);
108      return this;
109   }
110
111   @Override /* BeanContextBuilder */
112   public WriterSerializerBuilder beanConstructorVisibility(Visibility value) {
113      super.beanConstructorVisibility(value);
114      return this;
115   }
116
117   @Override /* BeanContextBuilder */
118   public WriterSerializerBuilder beanDictionary(boolean append, Object...values) {
119      super.beanDictionary(append, values);
120      return this;
121   }
122
123   @Override /* BeanContextBuilder */
124   public WriterSerializerBuilder beanDictionary(Class<?>...values) {
125      super.beanDictionary(values);
126      return this;
127   }
128
129   @Override /* BeanContextBuilder */
130   public WriterSerializerBuilder beanDictionary(Object...values) {
131      super.beanDictionary(values);
132      return this;
133   }
134
135   @Override /* BeanContextBuilder */
136   public WriterSerializerBuilder beanDictionaryRemove(Object...values) {
137      super.beanDictionaryRemove(values);
138      return this;
139   }
140
141   @Override /* BeanContextBuilder */
142   public WriterSerializerBuilder beanFieldVisibility(Visibility value) {
143      super.beanFieldVisibility(value);
144      return this;
145   }
146
147   @Override /* BeanContextBuilder */
148   public WriterSerializerBuilder beanFilters(boolean append, Object...values) {
149      super.beanFilters(append, values);
150      return this;
151   }
152
153   @Override /* BeanContextBuilder */
154   public WriterSerializerBuilder beanFilters(Class<?>...values) {
155      super.beanFilters(values);
156      return this;
157   }
158
159   @Override /* BeanContextBuilder */
160   public WriterSerializerBuilder beanFilters(Object...values) {
161      super.beanFilters(values);
162      return this;
163   }
164
165   @Override /* BeanContextBuilder */
166   public WriterSerializerBuilder beanFiltersRemove(Object...values) {
167      super.beanFiltersRemove(values);
168      return this;
169   }
170
171   @Override /* BeanContextBuilder */
172   public WriterSerializerBuilder beanMapPutReturnsOldValue(boolean value) {
173      super.beanMapPutReturnsOldValue(value);
174      return this;
175   }
176
177   @Override /* BeanContextBuilder */
178   public WriterSerializerBuilder beanMapPutReturnsOldValue() {
179      super.beanMapPutReturnsOldValue();
180      return this;
181   }
182
183   @Override /* BeanContextBuilder */
184   public WriterSerializerBuilder beanMethodVisibility(Visibility value) {
185      super.beanMethodVisibility(value);
186      return this;
187   }
188
189   @Override /* BeanContextBuilder */
190   public WriterSerializerBuilder beansRequireDefaultConstructor(boolean value) {
191      super.beansRequireDefaultConstructor(value);
192      return this;
193   }
194
195   @Override /* BeanContextBuilder */
196   public WriterSerializerBuilder beansRequireDefaultConstructor() {
197      super.beansRequireDefaultConstructor();
198      return this;
199   }
200
201   @Override /* BeanContextBuilder */
202   public WriterSerializerBuilder beansRequireSerializable(boolean value) {
203      super.beansRequireSerializable(value);
204      return this;
205   }
206
207   @Override /* BeanContextBuilder */
208   public WriterSerializerBuilder beansRequireSerializable() {
209      super.beansRequireSerializable();
210      return this;
211   }
212
213   @Override /* BeanContextBuilder */
214   public WriterSerializerBuilder beansRequireSettersForGetters(boolean value) {
215      super.beansRequireSettersForGetters(value);
216      return this;
217   }
218
219   @Override /* BeanContextBuilder */
220   public WriterSerializerBuilder beansRequireSettersForGetters() {
221      super.beansRequireSettersForGetters();
222      return this;
223   }
224
225   @Override /* BeanContextBuilder */
226   public WriterSerializerBuilder beansRequireSomeProperties(boolean value) {
227      super.beansRequireSomeProperties(value);
228      return this;
229   }
230
231   @Override /* BeanContextBuilder */
232   public WriterSerializerBuilder beanTypePropertyName(String value) {
233      super.beanTypePropertyName(value);
234      return this;
235   }
236
237   @Override /* BeanContextBuilder */
238   public WriterSerializerBuilder debug() {
239      super.debug();
240      return this;
241   }
242
243   @Override /* BeanContextBuilder */
244   public <T> WriterSerializerBuilder example(Class<T> c, T o) {
245      super.example(c, o);
246      return this;
247   }
248
249   @Override /* BeanContextBuilder */
250   public WriterSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) {
251      super.ignoreInvocationExceptionsOnGetters(value);
252      return this;
253   }
254
255   @Override /* BeanContextBuilder */
256   public WriterSerializerBuilder ignoreInvocationExceptionsOnGetters() {
257      super.ignoreInvocationExceptionsOnGetters();
258      return this;
259   }
260
261   @Override /* BeanContextBuilder */
262   public WriterSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) {
263      super.ignoreInvocationExceptionsOnSetters(value);
264      return this;
265   }
266
267   @Override /* BeanContextBuilder */
268   public WriterSerializerBuilder ignoreInvocationExceptionsOnSetters() {
269      super.ignoreInvocationExceptionsOnSetters();
270      return this;
271   }
272
273   @Override /* BeanContextBuilder */
274   public WriterSerializerBuilder ignorePropertiesWithoutSetters(boolean value) {
275      super.ignorePropertiesWithoutSetters(value);
276      return this;
277   }
278
279   @Override /* BeanContextBuilder */
280   public WriterSerializerBuilder ignoreUnknownBeanProperties(boolean value) {
281      super.ignoreUnknownBeanProperties(value);
282      return this;
283   }
284
285   @Override /* BeanContextBuilder */
286   public WriterSerializerBuilder ignoreUnknownBeanProperties() {
287      super.ignoreUnknownBeanProperties();
288      return this;
289   }
290
291   @Override /* BeanContextBuilder */
292   public WriterSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) {
293      super.ignoreUnknownNullBeanProperties(value);
294      return this;
295   }
296
297   @Override /* BeanContextBuilder */
298   public <T> WriterSerializerBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
299      super.implClass(interfaceClass, implClass);
300      return this;
301   }
302
303   @Override /* BeanContextBuilder */
304   public WriterSerializerBuilder implClasses(Map<String,Class<?>> values) {
305      super.implClasses(values);
306      return this;
307   }
308
309   @Override /* BeanContextBuilder */
310   public WriterSerializerBuilder locale(Locale value) {
311      super.locale(value);
312      return this;
313   }
314
315   @Override /* BeanContextBuilder */
316   public WriterSerializerBuilder mediaType(MediaType value) {
317      super.mediaType(value);
318      return this;
319   }
320
321   @Override /* BeanContextBuilder */
322   public WriterSerializerBuilder notBeanClasses(boolean append, Object...values) {
323      super.notBeanClasses(append, values);
324      return this;
325   }
326
327   @Override /* BeanContextBuilder */
328   public WriterSerializerBuilder notBeanClasses(Class<?>...values) {
329      super.notBeanClasses(values);
330      return this;
331   }
332
333   @Override /* BeanContextBuilder */
334   public WriterSerializerBuilder notBeanClasses(Object...values) {
335      super.notBeanClasses(values);
336      return this;
337   }
338
339   @Override /* BeanContextBuilder */
340   public WriterSerializerBuilder notBeanClassesRemove(Object...values) {
341      super.notBeanClassesRemove(values);
342      return this;
343   }
344
345   @Override /* BeanContextBuilder */
346   public WriterSerializerBuilder notBeanPackages(boolean append, Object...values) {
347      super.notBeanPackages(append, values);
348      return this;
349   }
350
351   @Override /* BeanContextBuilder */
352   public WriterSerializerBuilder notBeanPackages(Object...values) {
353      super.notBeanPackages(values);
354      return this;
355   }
356
357   @Override /* BeanContextBuilder */
358   public WriterSerializerBuilder notBeanPackages(String...values) {
359      super.notBeanPackages(values);
360      return this;
361   }
362
363   @Override /* BeanContextBuilder */
364   public WriterSerializerBuilder notBeanPackagesRemove(Object...values) {
365      super.notBeanPackagesRemove(values);
366      return this;
367   }
368
369   @Override /* BeanContextBuilder */
370   public WriterSerializerBuilder pojoSwaps(boolean append, Object...values) {
371      super.pojoSwaps(append, values);
372      return this;
373   }
374
375   @Override /* BeanContextBuilder */
376   public WriterSerializerBuilder pojoSwaps(Class<?>...values) {
377      super.pojoSwaps(values);
378      return this;
379   }
380
381   @Override /* BeanContextBuilder */
382   public WriterSerializerBuilder pojoSwaps(Object...values) {
383      super.pojoSwaps(values);
384      return this;
385   }
386
387   @Override /* BeanContextBuilder */
388   public WriterSerializerBuilder pojoSwapsRemove(Object...values) {
389      super.pojoSwapsRemove(values);
390      return this;
391   }
392
393   @Override /* BeanContextBuilder */
394   public WriterSerializerBuilder sortProperties(boolean value) {
395      super.sortProperties(value);
396      return this;
397   }
398
399   @Override /* BeanContextBuilder */
400   public WriterSerializerBuilder sortProperties() {
401      super.sortProperties();
402      return this;
403   }
404
405   @Override /* BeanContextBuilder */
406   public WriterSerializerBuilder timeZone(TimeZone value) {
407      super.timeZone(value);
408      return this;
409   }
410
411   @Override /* BeanContextBuilder */
412   public WriterSerializerBuilder useEnumNames() {
413      super.useEnumNames();
414      return this;
415   }
416
417   @Override /* BeanContextBuilder */
418   public WriterSerializerBuilder useInterfaceProxies(boolean value) {
419      super.useInterfaceProxies(value);
420      return this;
421   }
422
423   @Override /* BeanContextBuilder */
424   public WriterSerializerBuilder useJavaBeanIntrospector(boolean value) {
425      super.useJavaBeanIntrospector(value);
426      return this;
427   }
428
429   @Override /* BeanContextBuilder */
430   public WriterSerializerBuilder useJavaBeanIntrospector() {
431      super.useJavaBeanIntrospector();
432      return this;
433   }
434
435   @Override /* ContextBuilder */
436   public WriterSerializerBuilder set(String name, Object value) {
437      super.set(name, value);
438      return this;
439   }
440
441   @Override /* ContextBuilder */
442   public WriterSerializerBuilder set(boolean append, String name, Object value) {
443      super.set(append, name, value);
444      return this;
445   }
446
447   @Override /* ContextBuilder */
448   public WriterSerializerBuilder set(Map<String,Object> properties) {
449      super.set(properties);
450      return this;
451   }
452
453   @Override /* ContextBuilder */
454   public WriterSerializerBuilder add(Map<String,Object> properties) {
455      super.add(properties);
456      return this;
457   }
458
459   @Override /* ContextBuilder */
460   public WriterSerializerBuilder addTo(String name, Object value) {
461      super.addTo(name, value);
462      return this;
463   }
464
465   @Override /* ContextBuilder */
466   public WriterSerializerBuilder addTo(String name, String key, Object value) {
467      super.addTo(name, key, value);
468      return this;
469   }
470
471   @Override /* ContextBuilder */
472   public WriterSerializerBuilder removeFrom(String name, Object value) {
473      super.removeFrom(name, value);
474      return this;
475   }
476
477   @Override /* ContextBuilder */
478   public WriterSerializerBuilder apply(PropertyStore copyFrom) {
479      super.apply(copyFrom);
480      return this;
481   }
482
483   @Override /* Context */
484   public WriterSerializer build() {
485      return null;
486   }
487}