// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.fasterxml.jackson.databind; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.Base64Variant; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.PrettyPrinter; import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; import com.fasterxml.jackson.core.util.Instantiatable; import com.fasterxml.jackson.databind.cfg.BaseSettings; import com.fasterxml.jackson.databind.cfg.ContextAttributes; import com.fasterxml.jackson.databind.cfg.HandlerInstantiator; import com.fasterxml.jackson.databind.cfg.MapperConfig; import com.fasterxml.jackson.databind.cfg.MapperConfigBase; import com.fasterxml.jackson.databind.introspect.ClassIntrospector; import com.fasterxml.jackson.databind.introspect.SimpleMixInResolver; import com.fasterxml.jackson.databind.introspect.VisibilityChecker; import com.fasterxml.jackson.databind.jsontype.SubtypeResolver; import com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder; import com.fasterxml.jackson.databind.ser.FilterProvider; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.databind.util.RootNameLookup; import java.io.Serializable; import java.text.DateFormat; import java.util.Locale; import java.util.TimeZone; // Referenced classes of package com.fasterxml.jackson.databind: // SerializationFeature, MapperFeature, AnnotationIntrospector, PropertyName, // JavaType, BeanDescription, PropertyNamingStrategy public final class SerializationConfig extends MapperConfigBase implements Serializable { protected static final PrettyPrinter DEFAULT_PRETTY_PRINTER = new DefaultPrettyPrinter(); private static final long serialVersionUID = 1L; protected final PrettyPrinter _defaultPrettyPrinter; protected final FilterProvider _filterProvider; protected final int _generatorFeatures; protected final int _generatorFeaturesToChange; protected final int _serFeatures; protected com.fasterxml.jackson.annotation.JsonInclude.Include _serializationInclusion; private SerializationConfig(SerializationConfig serializationconfig, int i, int j, int k, int l) { super(serializationconfig, i); _serializationInclusion = null; _serFeatures = j; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = k; _generatorFeaturesToChange = l; } private SerializationConfig(SerializationConfig serializationconfig, com.fasterxml.jackson.annotation.JsonInclude.Include include) { super(serializationconfig); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = include; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } protected SerializationConfig(SerializationConfig serializationconfig, PrettyPrinter prettyprinter) { super(serializationconfig); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = prettyprinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } private SerializationConfig(SerializationConfig serializationconfig, PropertyName propertyname) { super(serializationconfig, propertyname); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } private SerializationConfig(SerializationConfig serializationconfig, BaseSettings basesettings) { super(serializationconfig, basesettings); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } protected SerializationConfig(SerializationConfig serializationconfig, ContextAttributes contextattributes) { super(serializationconfig, contextattributes); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } protected SerializationConfig(SerializationConfig serializationconfig, SimpleMixInResolver simplemixinresolver) { super(serializationconfig, simplemixinresolver); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } protected SerializationConfig(SerializationConfig serializationconfig, SimpleMixInResolver simplemixinresolver, RootNameLookup rootnamelookup) { super(serializationconfig, simplemixinresolver, rootnamelookup); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } private SerializationConfig(SerializationConfig serializationconfig, SubtypeResolver subtyperesolver) { super(serializationconfig, subtyperesolver); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } private SerializationConfig(SerializationConfig serializationconfig, FilterProvider filterprovider) { super(serializationconfig); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = filterprovider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } private SerializationConfig(SerializationConfig serializationconfig, Class class1) { super(serializationconfig, class1); _serializationInclusion = null; _serFeatures = serializationconfig._serFeatures; _serializationInclusion = serializationconfig._serializationInclusion; _filterProvider = serializationconfig._filterProvider; _defaultPrettyPrinter = serializationconfig._defaultPrettyPrinter; _generatorFeatures = serializationconfig._generatorFeatures; _generatorFeaturesToChange = serializationconfig._generatorFeaturesToChange; } public SerializationConfig(BaseSettings basesettings, SubtypeResolver subtyperesolver, SimpleMixInResolver simplemixinresolver, RootNameLookup rootnamelookup) { super(basesettings, subtyperesolver, simplemixinresolver, rootnamelookup); _serializationInclusion = null; _serFeatures = collectFeatureDefaults(com/fasterxml/jackson/databind/SerializationFeature); _filterProvider = null; _defaultPrettyPrinter = DEFAULT_PRETTY_PRINTER; _generatorFeatures = 0; _generatorFeaturesToChange = 0; } private final SerializationConfig _withBase(BaseSettings basesettings) { if (_base == basesettings) { return this; } else { return new SerializationConfig(this, basesettings); } } public PrettyPrinter constructDefaultPrettyPrinter() { PrettyPrinter prettyprinter1 = _defaultPrettyPrinter; PrettyPrinter prettyprinter = prettyprinter1; if (prettyprinter1 instanceof Instantiatable) { prettyprinter = (PrettyPrinter)((Instantiatable)prettyprinter1).createInstance(); } return prettyprinter; } public AnnotationIntrospector getAnnotationIntrospector() { if (isEnabled(MapperFeature.USE_ANNOTATIONS)) { return super.getAnnotationIntrospector(); } else { return AnnotationIntrospector.nopInstance(); } } public PrettyPrinter getDefaultPrettyPrinter() { return _defaultPrettyPrinter; } public VisibilityChecker getDefaultVisibilityChecker() { VisibilityChecker visibilitychecker1 = super.getDefaultVisibilityChecker(); VisibilityChecker visibilitychecker = visibilitychecker1; if (!isEnabled(MapperFeature.AUTO_DETECT_GETTERS)) { visibilitychecker = visibilitychecker1.withGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE); } visibilitychecker1 = visibilitychecker; if (!isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)) { visibilitychecker1 = visibilitychecker.withIsGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE); } visibilitychecker = visibilitychecker1; if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) { visibilitychecker = visibilitychecker1.withFieldVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE); } return visibilitychecker; } public FilterProvider getFilterProvider() { return _filterProvider; } public final int getSerializationFeatures() { return _serFeatures; } public com.fasterxml.jackson.annotation.JsonInclude.Include getSerializationInclusion() { if (_serializationInclusion != null) { return _serializationInclusion; } else { return com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS; } } public final boolean hasSerializationFeatures(int i) { return (_serFeatures & i) == i; } public void initialize(JsonGenerator jsongenerator) { if (SerializationFeature.INDENT_OUTPUT.enabledIn(_serFeatures) && jsongenerator.getPrettyPrinter() == null) { PrettyPrinter prettyprinter = constructDefaultPrettyPrinter(); if (prettyprinter != null) { jsongenerator.setPrettyPrinter(prettyprinter); } } boolean flag = SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN.enabledIn(_serFeatures); if (_generatorFeaturesToChange != 0 || flag) { int k = jsongenerator.getFeatureMask(); int j = ~_generatorFeaturesToChange & k | _generatorFeatures; int i = j; if (flag) { i = j | com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN.getMask(); } if (k != i) { jsongenerator.setFeatureMask(i); } } } public BeanDescription introspect(JavaType javatype) { return getClassIntrospector().forSerialization(this, javatype, this); } public BeanDescription introspectClassAnnotations(JavaType javatype) { return getClassIntrospector().forClassAnnotations(this, javatype, this); } public BeanDescription introspectDirectClassAnnotations(JavaType javatype) { return getClassIntrospector().forDirectClassAnnotations(this, javatype, this); } public final boolean isEnabled(com.fasterxml.jackson.core.JsonGenerator.Feature feature, JsonFactory jsonfactory) { int i = feature.getMask(); if ((_generatorFeaturesToChange & i) != 0) { return (_generatorFeatures & feature.getMask()) != 0; } else { return jsonfactory.isEnabled(feature); } } public final boolean isEnabled(SerializationFeature serializationfeature) { return (_serFeatures & serializationfeature.getMask()) != 0; } public String toString() { return (new StringBuilder()).append("[SerializationConfig: flags=0x").append(Integer.toHexString(_serFeatures)).append("]").toString(); } public boolean useRootWrapping() { if (_rootName != null) { return !_rootName.isEmpty(); } else { return isEnabled(SerializationFeature.WRAP_ROOT_VALUE); } } public SerializationConfig with(Base64Variant base64variant) { return _withBase(_base.with(base64variant)); } public SerializationConfig with(com.fasterxml.jackson.core.JsonGenerator.Feature feature) { int i = _generatorFeatures | feature.getMask(); int j = _generatorFeaturesToChange | feature.getMask(); if (_generatorFeatures == i && _generatorFeaturesToChange == j) { return this; } else { return new SerializationConfig(this, _mapperFeatures, _serFeatures, i, j); } } public SerializationConfig with(AnnotationIntrospector annotationintrospector) { return _withBase(_base.withAnnotationIntrospector(annotationintrospector)); } public SerializationConfig with(MapperFeature mapperfeature, boolean flag) { int i; if (flag) { i = _mapperFeatures | mapperfeature.getMask(); } else { i = _mapperFeatures & ~mapperfeature.getMask(); } if (i == _mapperFeatures) { return this; } else { return new SerializationConfig(this, i, _serFeatures, _generatorFeatures, _generatorFeaturesToChange); } } public SerializationConfig with(PropertyNamingStrategy propertynamingstrategy) { return _withBase(_base.withPropertyNamingStrategy(propertynamingstrategy)); } public SerializationConfig with(SerializationFeature serializationfeature) { int i = _serFeatures | serializationfeature.getMask(); if (i == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, i, _generatorFeatures, _generatorFeaturesToChange); } } public transient SerializationConfig with(SerializationFeature serializationfeature, SerializationFeature aserializationfeature[]) { int j = _serFeatures | serializationfeature.getMask(); int k = aserializationfeature.length; for (int i = 0; i < k; i++) { j |= aserializationfeature[i].getMask(); } if (j == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, j, _generatorFeatures, _generatorFeaturesToChange); } } public SerializationConfig with(ContextAttributes contextattributes) { if (contextattributes == _attributes) { return this; } else { return new SerializationConfig(this, contextattributes); } } public SerializationConfig with(HandlerInstantiator handlerinstantiator) { return _withBase(_base.withHandlerInstantiator(handlerinstantiator)); } public SerializationConfig with(ClassIntrospector classintrospector) { return _withBase(_base.withClassIntrospector(classintrospector)); } public SerializationConfig with(VisibilityChecker visibilitychecker) { return _withBase(_base.withVisibilityChecker(visibilitychecker)); } public SerializationConfig with(SubtypeResolver subtyperesolver) { if (subtyperesolver == _subtypeResolver) { return this; } else { return new SerializationConfig(this, subtyperesolver); } } public SerializationConfig with(TypeResolverBuilder typeresolverbuilder) { return _withBase(_base.withTypeResolverBuilder(typeresolverbuilder)); } public SerializationConfig with(TypeFactory typefactory) { return _withBase(_base.withTypeFactory(typefactory)); } public SerializationConfig with(DateFormat dateformat) { SerializationConfig serializationconfig = new SerializationConfig(this, _base.withDateFormat(dateformat)); if (dateformat == null) { return serializationconfig.with(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); } else { return serializationconfig.without(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); } } public SerializationConfig with(Locale locale) { return _withBase(_base.with(locale)); } public SerializationConfig with(TimeZone timezone) { return _withBase(_base.with(timezone)); } public transient SerializationConfig with(MapperFeature amapperfeature[]) { int j = _mapperFeatures; int k = amapperfeature.length; for (int i = 0; i < k; i++) { j |= amapperfeature[i].getMask(); } if (j == _mapperFeatures) { return this; } else { return new SerializationConfig(this, j, _serFeatures, _generatorFeatures, _generatorFeaturesToChange); } } public volatile MapperConfig with(MapperFeature mapperfeature, boolean flag) { return with(mapperfeature, flag); } public volatile MapperConfig with(MapperFeature amapperfeature[]) { return with(amapperfeature); } public volatile MapperConfigBase with(Base64Variant base64variant) { return with(base64variant); } public volatile MapperConfigBase with(AnnotationIntrospector annotationintrospector) { return with(annotationintrospector); } public volatile MapperConfigBase with(PropertyNamingStrategy propertynamingstrategy) { return with(propertynamingstrategy); } public volatile MapperConfigBase with(ContextAttributes contextattributes) { return with(contextattributes); } public volatile MapperConfigBase with(HandlerInstantiator handlerinstantiator) { return with(handlerinstantiator); } public volatile MapperConfigBase with(ClassIntrospector classintrospector) { return with(classintrospector); } public volatile MapperConfigBase with(VisibilityChecker visibilitychecker) { return with(visibilitychecker); } public volatile MapperConfigBase with(SubtypeResolver subtyperesolver) { return with(subtyperesolver); } public volatile MapperConfigBase with(TypeResolverBuilder typeresolverbuilder) { return with(typeresolverbuilder); } public volatile MapperConfigBase with(TypeFactory typefactory) { return with(typefactory); } public volatile MapperConfigBase with(DateFormat dateformat) { return with(dateformat); } public volatile MapperConfigBase with(Locale locale) { return with(locale); } public volatile MapperConfigBase with(TimeZone timezone) { return with(timezone); } public SerializationConfig withAppendedAnnotationIntrospector(AnnotationIntrospector annotationintrospector) { return _withBase(_base.withAppendedAnnotationIntrospector(annotationintrospector)); } public volatile MapperConfigBase withAppendedAnnotationIntrospector(AnnotationIntrospector annotationintrospector) { return withAppendedAnnotationIntrospector(annotationintrospector); } public SerializationConfig withDefaultPrettyPrinter(PrettyPrinter prettyprinter) { if (_defaultPrettyPrinter == prettyprinter) { return this; } else { return new SerializationConfig(this, prettyprinter); } } public transient SerializationConfig withFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature afeature[]) { int k = _generatorFeatures; int j = _generatorFeaturesToChange; int l = afeature.length; for (int i = 0; i < l; i++) { int i1 = afeature[i].getMask(); k |= i1; j |= i1; } if (_generatorFeatures == k && _generatorFeaturesToChange == j) { return this; } else { return new SerializationConfig(this, _mapperFeatures, _serFeatures, k, j); } } public transient SerializationConfig withFeatures(SerializationFeature aserializationfeature[]) { int j = _serFeatures; int k = aserializationfeature.length; for (int i = 0; i < k; i++) { j |= aserializationfeature[i].getMask(); } if (j == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, j, _generatorFeatures, _generatorFeaturesToChange); } } public SerializationConfig withFilters(FilterProvider filterprovider) { if (filterprovider == _filterProvider) { return this; } else { return new SerializationConfig(this, filterprovider); } } public SerializationConfig withInsertedAnnotationIntrospector(AnnotationIntrospector annotationintrospector) { return _withBase(_base.withInsertedAnnotationIntrospector(annotationintrospector)); } public volatile MapperConfigBase withInsertedAnnotationIntrospector(AnnotationIntrospector annotationintrospector) { return withInsertedAnnotationIntrospector(annotationintrospector); } public SerializationConfig withRootName(PropertyName propertyname) { if (propertyname != null ? propertyname.equals(_rootName) : _rootName == null) { return this; } else { return new SerializationConfig(this, propertyname); } } public volatile MapperConfigBase withRootName(PropertyName propertyname) { return withRootName(propertyname); } public SerializationConfig withSerializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include include) { if (_serializationInclusion == include) { return this; } else { return new SerializationConfig(this, include); } } public SerializationConfig withView(Class class1) { if (_view == class1) { return this; } else { return new SerializationConfig(this, class1); } } public volatile MapperConfigBase withView(Class class1) { return withView(class1); } public SerializationConfig withVisibility(PropertyAccessor propertyaccessor, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility visibility) { return _withBase(_base.withVisibility(propertyaccessor, visibility)); } public volatile MapperConfigBase withVisibility(PropertyAccessor propertyaccessor, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility visibility) { return withVisibility(propertyaccessor, visibility); } public SerializationConfig without(com.fasterxml.jackson.core.JsonGenerator.Feature feature) { int i = _generatorFeatures & ~feature.getMask(); int j = _generatorFeaturesToChange | feature.getMask(); if (_generatorFeatures == i && _generatorFeaturesToChange == j) { return this; } else { return new SerializationConfig(this, _mapperFeatures, _serFeatures, i, j); } } public SerializationConfig without(SerializationFeature serializationfeature) { int i = _serFeatures & ~serializationfeature.getMask(); if (i == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, i, _generatorFeatures, _generatorFeaturesToChange); } } public transient SerializationConfig without(SerializationFeature serializationfeature, SerializationFeature aserializationfeature[]) { int j = _serFeatures & ~serializationfeature.getMask(); int k = aserializationfeature.length; for (int i = 0; i < k; i++) { j &= ~aserializationfeature[i].getMask(); } if (j == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, j, _generatorFeatures, _generatorFeaturesToChange); } } public transient SerializationConfig without(MapperFeature amapperfeature[]) { int j = _mapperFeatures; int k = amapperfeature.length; for (int i = 0; i < k; i++) { j &= ~amapperfeature[i].getMask(); } if (j == _mapperFeatures) { return this; } else { return new SerializationConfig(this, j, _serFeatures, _generatorFeatures, _generatorFeaturesToChange); } } public volatile MapperConfig without(MapperFeature amapperfeature[]) { return without(amapperfeature); } public transient SerializationConfig withoutFeatures(com.fasterxml.jackson.core.JsonGenerator.Feature afeature[]) { int k = _generatorFeatures; int j = _generatorFeaturesToChange; int l = afeature.length; for (int i = 0; i < l; i++) { int i1 = afeature[i].getMask(); k &= ~i1; j |= i1; } if (_generatorFeatures == k && _generatorFeaturesToChange == j) { return this; } else { return new SerializationConfig(this, _mapperFeatures, _serFeatures, k, j); } } public transient SerializationConfig withoutFeatures(SerializationFeature aserializationfeature[]) { int j = _serFeatures; int k = aserializationfeature.length; for (int i = 0; i < k; i++) { j &= ~aserializationfeature[i].getMask(); } if (j == _serFeatures) { return this; } else { return new SerializationConfig(this, _mapperFeatures, j, _generatorFeatures, _generatorFeaturesToChange); } } }