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.OutputStreamSerializer.*;
016
017import java.lang.annotation.*;
018import java.lang.reflect.*;
019import java.util.*;
020
021import org.apache.juneau.*;
022import org.apache.juneau.http.*;
023import org.apache.juneau.internal.*;
024import org.apache.juneau.reflect.*;
025import org.apache.juneau.svl.*;
026
027/**
028 * Base class for all stream-based serializer builders.
029 */
030public class OutputStreamSerializerBuilder extends SerializerBuilder {
031
032   /**
033    * Constructor, default settings.
034    */
035   public OutputStreamSerializerBuilder() {
036      super();
037   }
038
039   /**
040    * Constructor.
041    *
042    * @param ps The initial configuration settings for this builder.
043    */
044   public OutputStreamSerializerBuilder(PropertyStore ps) {
045      super(ps);
046   }
047
048   //-----------------------------------------------------------------------------------------------------------------
049   // Properties
050   //-----------------------------------------------------------------------------------------------------------------
051
052   /**
053    * <i><l>OutputStreamSerializer</l> configuration property:&emsp;</i>  Binary output format.
054    *
055    * <p>
056    * When using the {@link OutputStreamSerializer#serializeToString(Object)} method on stream-based serializers, this defines the format to use
057    * when converting the resulting byte array to a string.
058    *
059    *
060    * <h5 class='section'>Example:</h5>
061    * <p class='bcode w800'>
062    *    <jc>// Create a serializer that serializes to BASE64.</jc>
063    *    OutputStreamSerializer s = MsgPackSerializer
064    *       .<jsm>create</jsm>()
065    *       .binaryFormat(<jsf>BASE64</jsf>)
066    *       .build();
067    *
068    *    <jc>// The bean we want to serialize.</jc>
069    *    <jk>public class</jk> MyBean {...}
070    *
071    *    <jc>// MessagePack will generate BASE64-encoded string.</jc>
072    *    String msgPack = s.serializeToString(<jk>new</jk> MyBean());
073    * </p>
074    *
075    * <ul class='seealso'>
076    *    <li class='jf'>{@link OutputStreamSerializer#OSSERIALIZER_binaryFormat}
077    * </ul>
078    *
079    * @param value
080    *    The new value for this property.
081    *    <br>The default is {@link BinaryFormat#HEX}.
082    * @return This object (for method chaining).
083    */
084   @FluentSetter
085   public OutputStreamSerializerBuilder binaryFormat(BinaryFormat value) {
086      return set(OSSERIALIZER_binaryFormat, value);
087   }
088
089   /**
090    * <i><l>OutputStreamSerializer</l> configuration property:&emsp;</i>  Binary output format.
091    *
092    * <div class='warn'>
093    *    <b>Deprecated</b> - Use {@link #binaryFormat(BinaryFormat)}
094    * </div>
095    */
096   @SuppressWarnings("javadoc")
097   @FluentSetter
098   @Deprecated
099   public OutputStreamSerializerBuilder binaryFormat(String value) {
100      return set(OSSERIALIZER_binaryFormat, BinaryFormat.valueOf(value));
101   }
102
103   // <FluentSetters>
104
105   @Override /* GENERATED - ContextBuilder */
106   public OutputStreamSerializerBuilder add(Map<String,Object> properties) {
107      super.add(properties);
108      return this;
109   }
110
111   @Override /* GENERATED - ContextBuilder */
112   public OutputStreamSerializerBuilder addTo(String name, Object value) {
113      super.addTo(name, value);
114      return this;
115   }
116
117   @Override /* GENERATED - ContextBuilder */
118   public OutputStreamSerializerBuilder appendTo(String name, Object value) {
119      super.appendTo(name, value);
120      return this;
121   }
122
123   @Override /* GENERATED - ContextBuilder */
124   public OutputStreamSerializerBuilder apply(PropertyStore copyFrom) {
125      super.apply(copyFrom);
126      return this;
127   }
128
129   @Override /* GENERATED - ContextBuilder */
130   public OutputStreamSerializerBuilder applyAnnotations(java.lang.Class<?>...fromClasses) {
131      super.applyAnnotations(fromClasses);
132      return this;
133   }
134
135   @Override /* GENERATED - ContextBuilder */
136   public OutputStreamSerializerBuilder applyAnnotations(Method...fromMethods) {
137      super.applyAnnotations(fromMethods);
138      return this;
139   }
140
141   @Override /* GENERATED - ContextBuilder */
142   public OutputStreamSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
143      super.applyAnnotations(al, r);
144      return this;
145   }
146
147   @Override /* GENERATED - ContextBuilder */
148   public OutputStreamSerializerBuilder debug() {
149      super.debug();
150      return this;
151   }
152
153   @Override /* GENERATED - ContextBuilder */
154   public OutputStreamSerializerBuilder locale(Locale value) {
155      super.locale(value);
156      return this;
157   }
158
159   @Override /* GENERATED - ContextBuilder */
160   public OutputStreamSerializerBuilder mediaType(MediaType value) {
161      super.mediaType(value);
162      return this;
163   }
164
165   @Override /* GENERATED - ContextBuilder */
166   public OutputStreamSerializerBuilder prependTo(String name, Object value) {
167      super.prependTo(name, value);
168      return this;
169   }
170
171   @Override /* GENERATED - ContextBuilder */
172   public OutputStreamSerializerBuilder putAllTo(String name, Object value) {
173      super.putAllTo(name, value);
174      return this;
175   }
176
177   @Override /* GENERATED - ContextBuilder */
178   public OutputStreamSerializerBuilder putTo(String name, String key, Object value) {
179      super.putTo(name, key, value);
180      return this;
181   }
182
183   @Override /* GENERATED - ContextBuilder */
184   public OutputStreamSerializerBuilder removeFrom(String name, Object value) {
185      super.removeFrom(name, value);
186      return this;
187   }
188
189   @Override /* GENERATED - ContextBuilder */
190   public OutputStreamSerializerBuilder set(Map<String,Object> properties) {
191      super.set(properties);
192      return this;
193   }
194
195   @Override /* GENERATED - ContextBuilder */
196   public OutputStreamSerializerBuilder set(String name, Object value) {
197      super.set(name, value);
198      return this;
199   }
200
201   @Override /* GENERATED - ContextBuilder */
202   public OutputStreamSerializerBuilder timeZone(TimeZone value) {
203      super.timeZone(value);
204      return this;
205   }
206
207   @Override /* GENERATED - BeanContextBuilder */
208   public OutputStreamSerializerBuilder annotations(Annotation...values) {
209      super.annotations(values);
210      return this;
211   }
212
213   @Override /* GENERATED - BeanContextBuilder */
214   public OutputStreamSerializerBuilder beanClassVisibility(Visibility value) {
215      super.beanClassVisibility(value);
216      return this;
217   }
218
219   @Override /* GENERATED - BeanContextBuilder */
220   public OutputStreamSerializerBuilder beanConstructorVisibility(Visibility value) {
221      super.beanConstructorVisibility(value);
222      return this;
223   }
224
225   @Override /* GENERATED - BeanContextBuilder */
226   public OutputStreamSerializerBuilder beanFieldVisibility(Visibility value) {
227      super.beanFieldVisibility(value);
228      return this;
229   }
230
231   @Override /* GENERATED - BeanContextBuilder */
232   public OutputStreamSerializerBuilder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
233      super.beanInterceptor(on, value);
234      return this;
235   }
236
237   @Override /* GENERATED - BeanContextBuilder */
238   public OutputStreamSerializerBuilder beanMapPutReturnsOldValue() {
239      super.beanMapPutReturnsOldValue();
240      return this;
241   }
242
243   @Override /* GENERATED - BeanContextBuilder */
244   public OutputStreamSerializerBuilder beanMethodVisibility(Visibility value) {
245      super.beanMethodVisibility(value);
246      return this;
247   }
248
249   @Override /* GENERATED - BeanContextBuilder */
250   public OutputStreamSerializerBuilder beansDontRequireSomeProperties() {
251      super.beansDontRequireSomeProperties();
252      return this;
253   }
254
255   @Override /* GENERATED - BeanContextBuilder */
256   public OutputStreamSerializerBuilder beansRequireDefaultConstructor() {
257      super.beansRequireDefaultConstructor();
258      return this;
259   }
260
261   @Override /* GENERATED - BeanContextBuilder */
262   public OutputStreamSerializerBuilder beansRequireSerializable() {
263      super.beansRequireSerializable();
264      return this;
265   }
266
267   @Override /* GENERATED - BeanContextBuilder */
268   public OutputStreamSerializerBuilder beansRequireSettersForGetters() {
269      super.beansRequireSettersForGetters();
270      return this;
271   }
272
273   @Override /* GENERATED - BeanContextBuilder */
274   public OutputStreamSerializerBuilder bpi(Map<String,Object> values) {
275      super.bpi(values);
276      return this;
277   }
278
279   @Override /* GENERATED - BeanContextBuilder */
280   public OutputStreamSerializerBuilder bpi(Class<?> beanClass, String properties) {
281      super.bpi(beanClass, properties);
282      return this;
283   }
284
285   @Override /* GENERATED - BeanContextBuilder */
286   public OutputStreamSerializerBuilder bpi(String beanClassName, String properties) {
287      super.bpi(beanClassName, properties);
288      return this;
289   }
290
291   @Override /* GENERATED - BeanContextBuilder */
292   public OutputStreamSerializerBuilder bpro(Map<String,Object> values) {
293      super.bpro(values);
294      return this;
295   }
296
297   @Override /* GENERATED - BeanContextBuilder */
298   public OutputStreamSerializerBuilder bpro(Class<?> beanClass, String properties) {
299      super.bpro(beanClass, properties);
300      return this;
301   }
302
303   @Override /* GENERATED - BeanContextBuilder */
304   public OutputStreamSerializerBuilder bpro(String beanClassName, String properties) {
305      super.bpro(beanClassName, properties);
306      return this;
307   }
308
309   @Override /* GENERATED - BeanContextBuilder */
310   public OutputStreamSerializerBuilder bpwo(Map<String,Object> values) {
311      super.bpwo(values);
312      return this;
313   }
314
315   @Override /* GENERATED - BeanContextBuilder */
316   public OutputStreamSerializerBuilder bpwo(Class<?> beanClass, String properties) {
317      super.bpwo(beanClass, properties);
318      return this;
319   }
320
321   @Override /* GENERATED - BeanContextBuilder */
322   public OutputStreamSerializerBuilder bpwo(String beanClassName, String properties) {
323      super.bpwo(beanClassName, properties);
324      return this;
325   }
326
327   @Override /* GENERATED - BeanContextBuilder */
328   public OutputStreamSerializerBuilder bpx(Map<String,Object> values) {
329      super.bpx(values);
330      return this;
331   }
332
333   @Override /* GENERATED - BeanContextBuilder */
334   public OutputStreamSerializerBuilder bpx(Class<?> beanClass, String properties) {
335      super.bpx(beanClass, properties);
336      return this;
337   }
338
339   @Override /* GENERATED - BeanContextBuilder */
340   public OutputStreamSerializerBuilder bpx(String beanClassName, String properties) {
341      super.bpx(beanClassName, properties);
342      return this;
343   }
344
345   @Override /* GENERATED - BeanContextBuilder */
346   public OutputStreamSerializerBuilder dictionary(Object...values) {
347      super.dictionary(values);
348      return this;
349   }
350
351   @Override /* GENERATED - BeanContextBuilder */
352   public OutputStreamSerializerBuilder dictionaryOn(Class<?> on, java.lang.Class<?>...values) {
353      super.dictionaryOn(on, values);
354      return this;
355   }
356
357   @Override /* GENERATED - BeanContextBuilder */
358   public OutputStreamSerializerBuilder dontIgnorePropertiesWithoutSetters() {
359      super.dontIgnorePropertiesWithoutSetters();
360      return this;
361   }
362
363   @Override /* GENERATED - BeanContextBuilder */
364   public OutputStreamSerializerBuilder dontIgnoreTransientFields() {
365      super.dontIgnoreTransientFields();
366      return this;
367   }
368
369   @Override /* GENERATED - BeanContextBuilder */
370   public OutputStreamSerializerBuilder dontIgnoreUnknownNullBeanProperties() {
371      super.dontIgnoreUnknownNullBeanProperties();
372      return this;
373   }
374
375   @Override /* GENERATED - BeanContextBuilder */
376   public OutputStreamSerializerBuilder dontUseInterfaceProxies() {
377      super.dontUseInterfaceProxies();
378      return this;
379   }
380
381   @Override /* GENERATED - BeanContextBuilder */
382   public <T> OutputStreamSerializerBuilder example(Class<T> pojoClass, T o) {
383      super.example(pojoClass, o);
384      return this;
385   }
386
387   @Override /* GENERATED - BeanContextBuilder */
388   public <T> OutputStreamSerializerBuilder exampleJson(Class<T> pojoClass, String json) {
389      super.exampleJson(pojoClass, json);
390      return this;
391   }
392
393   @Override /* GENERATED - BeanContextBuilder */
394   public OutputStreamSerializerBuilder fluentSetters() {
395      super.fluentSetters();
396      return this;
397   }
398
399   @Override /* GENERATED - BeanContextBuilder */
400   public OutputStreamSerializerBuilder fluentSetters(Class<?> on) {
401      super.fluentSetters(on);
402      return this;
403   }
404
405   @Override /* GENERATED - BeanContextBuilder */
406   public OutputStreamSerializerBuilder ignoreInvocationExceptionsOnGetters() {
407      super.ignoreInvocationExceptionsOnGetters();
408      return this;
409   }
410
411   @Override /* GENERATED - BeanContextBuilder */
412   public OutputStreamSerializerBuilder ignoreInvocationExceptionsOnSetters() {
413      super.ignoreInvocationExceptionsOnSetters();
414      return this;
415   }
416
417   @Override /* GENERATED - BeanContextBuilder */
418   public OutputStreamSerializerBuilder ignoreUnknownBeanProperties() {
419      super.ignoreUnknownBeanProperties();
420      return this;
421   }
422
423   @Override /* GENERATED - BeanContextBuilder */
424   public OutputStreamSerializerBuilder implClass(Class<?> interfaceClass, Class<?> implClass) {
425      super.implClass(interfaceClass, implClass);
426      return this;
427   }
428
429   @Override /* GENERATED - BeanContextBuilder */
430   public OutputStreamSerializerBuilder implClasses(Map<Class<?>,Class<?>> values) {
431      super.implClasses(values);
432      return this;
433   }
434
435   @Override /* GENERATED - BeanContextBuilder */
436   public OutputStreamSerializerBuilder interfaceClass(Class<?> on, Class<?> value) {
437      super.interfaceClass(on, value);
438      return this;
439   }
440
441   @Override /* GENERATED - BeanContextBuilder */
442   public OutputStreamSerializerBuilder interfaces(java.lang.Class<?>...value) {
443      super.interfaces(value);
444      return this;
445   }
446
447   @Override /* GENERATED - BeanContextBuilder */
448   public OutputStreamSerializerBuilder notBeanClasses(Object...values) {
449      super.notBeanClasses(values);
450      return this;
451   }
452
453   @Override /* GENERATED - BeanContextBuilder */
454   public OutputStreamSerializerBuilder notBeanPackages(Object...values) {
455      super.notBeanPackages(values);
456      return this;
457   }
458
459   @Override /* GENERATED - BeanContextBuilder */
460   public OutputStreamSerializerBuilder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) {
461      super.propertyNamer(value);
462      return this;
463   }
464
465   @Override /* GENERATED - BeanContextBuilder */
466   public OutputStreamSerializerBuilder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) {
467      super.propertyNamer(on, value);
468      return this;
469   }
470
471   @Override /* GENERATED - BeanContextBuilder */
472   public OutputStreamSerializerBuilder sortProperties() {
473      super.sortProperties();
474      return this;
475   }
476
477   @Override /* GENERATED - BeanContextBuilder */
478   public OutputStreamSerializerBuilder sortProperties(java.lang.Class<?>...on) {
479      super.sortProperties(on);
480      return this;
481   }
482
483   @Override /* GENERATED - BeanContextBuilder */
484   public OutputStreamSerializerBuilder stopClass(Class<?> on, Class<?> value) {
485      super.stopClass(on, value);
486      return this;
487   }
488
489   @Override /* GENERATED - BeanContextBuilder */
490   public OutputStreamSerializerBuilder swaps(Object...values) {
491      super.swaps(values);
492      return this;
493   }
494
495   @Override /* GENERATED - BeanContextBuilder */
496   public OutputStreamSerializerBuilder typeName(Class<?> on, String value) {
497      super.typeName(on, value);
498      return this;
499   }
500
501   @Override /* GENERATED - BeanContextBuilder */
502   public OutputStreamSerializerBuilder typePropertyName(String value) {
503      super.typePropertyName(value);
504      return this;
505   }
506
507   @Override /* GENERATED - BeanContextBuilder */
508   public OutputStreamSerializerBuilder typePropertyName(Class<?> on, String value) {
509      super.typePropertyName(on, value);
510      return this;
511   }
512
513   @Override /* GENERATED - BeanContextBuilder */
514   public OutputStreamSerializerBuilder useEnumNames() {
515      super.useEnumNames();
516      return this;
517   }
518
519   @Override /* GENERATED - BeanContextBuilder */
520   public OutputStreamSerializerBuilder useJavaBeanIntrospector() {
521      super.useJavaBeanIntrospector();
522      return this;
523   }
524
525   @Override /* GENERATED - BeanTraverseBuilder */
526   public OutputStreamSerializerBuilder detectRecursions() {
527      super.detectRecursions();
528      return this;
529   }
530
531   @Override /* GENERATED - BeanTraverseBuilder */
532   public OutputStreamSerializerBuilder ignoreRecursions() {
533      super.ignoreRecursions();
534      return this;
535   }
536
537   @Override /* GENERATED - BeanTraverseBuilder */
538   public OutputStreamSerializerBuilder initialDepth(int value) {
539      super.initialDepth(value);
540      return this;
541   }
542
543   @Override /* GENERATED - BeanTraverseBuilder */
544   public OutputStreamSerializerBuilder maxDepth(int value) {
545      super.maxDepth(value);
546      return this;
547   }
548
549   @Override /* GENERATED - SerializerBuilder */
550   public OutputStreamSerializerBuilder addBeanTypes() {
551      super.addBeanTypes();
552      return this;
553   }
554
555   @Override /* GENERATED - SerializerBuilder */
556   public OutputStreamSerializerBuilder addRootType() {
557      super.addRootType();
558      return this;
559   }
560
561   @Override /* GENERATED - SerializerBuilder */
562   public OutputStreamSerializerBuilder keepNullProperties() {
563      super.keepNullProperties();
564      return this;
565   }
566
567   @Override /* GENERATED - SerializerBuilder */
568   public OutputStreamSerializerBuilder listener(Class<? extends org.apache.juneau.serializer.SerializerListener> value) {
569      super.listener(value);
570      return this;
571   }
572
573   @Override /* GENERATED - SerializerBuilder */
574   public OutputStreamSerializerBuilder sortCollections() {
575      super.sortCollections();
576      return this;
577   }
578
579   @Override /* GENERATED - SerializerBuilder */
580   public OutputStreamSerializerBuilder sortMaps() {
581      super.sortMaps();
582      return this;
583   }
584
585   @Override /* GENERATED - SerializerBuilder */
586   public OutputStreamSerializerBuilder trimEmptyCollections() {
587      super.trimEmptyCollections();
588      return this;
589   }
590
591   @Override /* GENERATED - SerializerBuilder */
592   public OutputStreamSerializerBuilder trimEmptyMaps() {
593      super.trimEmptyMaps();
594      return this;
595   }
596
597   @Override /* GENERATED - SerializerBuilder */
598   public OutputStreamSerializerBuilder trimStrings() {
599      super.trimStrings();
600      return this;
601   }
602
603   @Override /* GENERATED - SerializerBuilder */
604   public OutputStreamSerializerBuilder uriContext(UriContext value) {
605      super.uriContext(value);
606      return this;
607   }
608
609   @Override /* GENERATED - SerializerBuilder */
610   public OutputStreamSerializerBuilder uriRelativity(UriRelativity value) {
611      super.uriRelativity(value);
612      return this;
613   }
614
615   @Override /* GENERATED - SerializerBuilder */
616   public OutputStreamSerializerBuilder uriResolution(UriResolution value) {
617      super.uriResolution(value);
618      return this;
619   }
620
621   // </FluentSetters>
622
623   @Override /* Context */
624   public OutputStreamSerializer build() {
625      return null;
626   }
627}