| // *************************************************************************************************************************** |
| // * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * |
| // * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * |
| // * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * |
| // * with the License. You may obtain a copy of the License at * |
| // * * |
| // * http://www.apache.org/licenses/LICENSE-2.0 * |
| // * * |
| // * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * |
| // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * |
| // * specific language governing permissions and limitations under the License. * |
| // *************************************************************************************************************************** |
| package org.apache.juneau.serializer; |
| |
| import static org.apache.juneau.serializer.WriterSerializer.*; |
| |
| import java.lang.reflect.*; |
| import java.nio.charset.*; |
| import java.util.*; |
| |
| import org.apache.juneau.*; |
| import org.apache.juneau.http.*; |
| import org.apache.juneau.reflect.*; |
| import org.apache.juneau.svl.*; |
| |
| /** |
| * Base class for all writer-based serializer builders. |
| */ |
| public class WriterSerializerBuilder extends SerializerBuilder { |
| |
| /** |
| * Constructor, default settings. |
| */ |
| public WriterSerializerBuilder() { |
| super(); |
| } |
| |
| /** |
| * Constructor. |
| * |
| * @param ps The initial configuration settings for this builder. |
| */ |
| public WriterSerializerBuilder(PropertyStore ps) { |
| super(ps); |
| } |
| |
| //----------------------------------------------------------------------------------------------------------------- |
| // Properties |
| //----------------------------------------------------------------------------------------------------------------- |
| |
| /** |
| * Configuration property: File charset. |
| * |
| * <p> |
| * The character set to use for writing Files to the file system. |
| * |
| * <p> |
| * Used when passing in files to {@link Serializer#serialize(Object, Object)}. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_fileCharset} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is the system JVM setting. |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder fileCharset(Charset value) { |
| return set(WSERIALIZER_fileCharset, value); |
| } |
| |
| /** |
| * Configuration property: Maximum indentation. |
| * |
| * <p> |
| * Specifies the maximum indentation level in the serialized document. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_maxIndent} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <c>100</c>. |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder maxIndent(int value) { |
| return set(WSERIALIZER_maxIndent, value); |
| } |
| |
| /** |
| * Configuration property: Quote character. |
| * |
| * <p> |
| * This is the character used for quoting attributes and values. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <js>'"'</js>. |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder quoteChar(char value) { |
| return set(WSERIALIZER_quoteChar, value); |
| } |
| |
| /** |
| * Configuration property: Quote character. |
| * |
| * <p> |
| * Shortcut for calling <code>quoteChar(<js>'\''</js>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder sq() { |
| return quoteChar('\''); |
| } |
| |
| /** |
| * Configuration property: Output stream charset. |
| * |
| * <p> |
| * The character set to use when writing to OutputStreams. |
| * |
| * <p> |
| * Used when passing in output streams and byte arrays to {@link WriterSerializer#serialize(Object, Object)}. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_streamCharset} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is the system JVM setting. |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder streamCharset(Charset value) { |
| return set(WSERIALIZER_streamCharset, value); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * If <jk>true</jk>, newlines and indentation and spaces are added to the output to improve readability. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder useWhitespace(boolean value) { |
| return set(WSERIALIZER_useWhitespace, value); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * @return This object (for method chaining). |
| */ |
| public WriterSerializerBuilder useWhitespace() { |
| return set(WSERIALIZER_useWhitespace, true); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public SerializerBuilder ws() { |
| return useWhitespace(); |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanClassVisibility(Visibility value) { |
| super.beanClassVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanConstructorVisibility(Visibility value) { |
| super.beanConstructorVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionary(Class<?>...values) { |
| super.beanDictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionary(Object...values) { |
| super.beanDictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionaryReplace(Class<?>...values) { |
| super.beanDictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionaryReplace(Object...values) { |
| super.beanDictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionaryRemove(Class<?>...values) { |
| super.beanDictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public WriterSerializerBuilder beanDictionaryRemove(Object...values) { |
| super.beanDictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFieldVisibility(Visibility value) { |
| super.beanFieldVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFilters(Class<?>...values) { |
| super.beanFilters(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFilters(Object...values) { |
| super.beanFilters(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFiltersReplace(Class<?>...values) { |
| super.beanFiltersReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFiltersReplace(Object...values) { |
| super.beanFiltersReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFiltersRemove(Class<?>...values) { |
| super.beanFiltersRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanFiltersRemove(Object...values) { |
| super.beanFiltersRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanMapPutReturnsOldValue(boolean value) { |
| super.beanMapPutReturnsOldValue(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanMapPutReturnsOldValue() { |
| super.beanMapPutReturnsOldValue(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanMethodVisibility(Visibility value) { |
| super.beanMethodVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireDefaultConstructor(boolean value) { |
| super.beansRequireDefaultConstructor(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireDefaultConstructor() { |
| super.beansRequireDefaultConstructor(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireSerializable(boolean value) { |
| super.beansRequireSerializable(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireSerializable() { |
| super.beansRequireSerializable(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireSettersForGetters(boolean value) { |
| super.beansRequireSettersForGetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireSettersForGetters() { |
| super.beansRequireSettersForGetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beansRequireSomeProperties(boolean value) { |
| super.beansRequireSomeProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder beanTypePropertyName(String value) { |
| super.beanTypePropertyName(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder debug() { |
| super.debug(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionary(Class<?>...values) { |
| super.dictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionary(Object...values) { |
| super.dictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionaryReplace(Class<?>...values) { |
| super.dictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionaryReplace(Object...values) { |
| super.dictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionaryRemove(Class<?>...values) { |
| super.dictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder dictionaryRemove(Object...values) { |
| super.dictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public <T> WriterSerializerBuilder example(Class<T> c, T o) { |
| super.example(c, o); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public <T> WriterSerializerBuilder exampleJson(Class<T> c, String value) { |
| super.exampleJson(c, value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { |
| super.ignoreInvocationExceptionsOnGetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreInvocationExceptionsOnGetters() { |
| super.ignoreInvocationExceptionsOnGetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { |
| super.ignoreInvocationExceptionsOnSetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreInvocationExceptionsOnSetters() { |
| super.ignoreInvocationExceptionsOnSetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { |
| super.ignorePropertiesWithoutSetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreUnknownBeanProperties(boolean value) { |
| super.ignoreUnknownBeanProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreUnknownBeanProperties() { |
| super.ignoreUnknownBeanProperties(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { |
| super.ignoreUnknownNullBeanProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder implClass(Class<?> interfaceClass, Class<?> implClass) { |
| super.implClass(interfaceClass, implClass); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder implClasses(Map<String,Class<?>> values) { |
| super.implClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder locale(Locale value) { |
| super.locale(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder mediaType(MediaType value) { |
| super.mediaType(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClasses(Class<?>...values) { |
| super.notBeanClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClasses(Object...values) { |
| super.notBeanClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClassesReplace(Class<?>...values) { |
| super.notBeanClassesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClassesReplace(Object...values) { |
| super.notBeanClassesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClassesRemove(Class<?>...values) { |
| super.notBeanClassesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanClassesRemove(Object...values) { |
| super.notBeanClassesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackages(Object...values) { |
| super.notBeanPackages(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackages(String...values) { |
| super.notBeanPackages(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackagesReplace(String...values) { |
| super.notBeanPackagesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackagesReplace(Object...values) { |
| super.notBeanPackagesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackagesRemove(String...values) { |
| super.notBeanPackagesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder notBeanPackagesRemove(Object...values) { |
| super.notBeanPackagesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwaps(Class<?>...values) { |
| super.pojoSwaps(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwaps(Object...values) { |
| super.pojoSwaps(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwapsReplace(Class<?>...values) { |
| super.pojoSwapsReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwapsReplace(Object...values) { |
| super.pojoSwapsReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwapsRemove(Class<?>...values) { |
| super.pojoSwapsRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder pojoSwapsRemove(Object...values) { |
| super.pojoSwapsRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder sortProperties(boolean value) { |
| super.sortProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder sortProperties() { |
| super.sortProperties(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder timeZone(TimeZone value) { |
| super.timeZone(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder useEnumNames(boolean value) { |
| super.useEnumNames(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder useEnumNames() { |
| super.useEnumNames(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder useInterfaceProxies(boolean value) { |
| super.useInterfaceProxies(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder useJavaBeanIntrospector(boolean value) { |
| super.useJavaBeanIntrospector(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public WriterSerializerBuilder useJavaBeanIntrospector() { |
| super.useJavaBeanIntrospector(); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder set(String name, Object value) { |
| super.set(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder set(Map<String,Object> properties) { |
| super.set(properties); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder add(Map<String,Object> properties) { |
| super.add(properties); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder addTo(String name, Object value) { |
| super.addTo(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder addTo(String name, String key, Object value) { |
| super.addTo(name, key, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder removeFrom(String name, Object value) { |
| super.removeFrom(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder apply(PropertyStore copyFrom) { |
| super.apply(copyFrom); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) { |
| super.applyAnnotations(al, vrs); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder applyAnnotations(Class<?> fromClass) { |
| super.applyAnnotations(fromClass); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public WriterSerializerBuilder applyAnnotations(Method fromMethod) { |
| super.applyAnnotations(fromMethod); |
| return this; |
| } |
| |
| @Override /* Context */ |
| public WriterSerializer build() { |
| return null; |
| } |
| } |