diff options
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java b/src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java index e3cc63244..3c7c6b0a5 100644 --- a/src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java +++ b/src/main/java/com/fasterxml/jackson/databind/SerializationConfig.java @@ -5,10 +5,7 @@ import java.util.*; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.databind.cfg.BaseSettings; -import com.fasterxml.jackson.databind.cfg.ConfigFeature; -import com.fasterxml.jackson.databind.cfg.MapperConfig; -import com.fasterxml.jackson.databind.cfg.MapperConfigBase; +import com.fasterxml.jackson.databind.cfg.*; import com.fasterxml.jackson.databind.introspect.Annotated; import com.fasterxml.jackson.databind.introspect.ClassIntrospector; import com.fasterxml.jackson.databind.introspect.VisibilityChecker; @@ -32,7 +29,7 @@ import com.fasterxml.jackson.databind.util.ClassUtil; * with respect to mix-in annotations; where this is guaranteed as * long as caller follow "copy-then-use" pattern) */ -public class SerializationConfig +public final class SerializationConfig extends MapperConfigBase<SerializationConfig.Feature, SerializationConfig> { /** @@ -384,6 +381,15 @@ public class SerializationConfig _serializationView = src._serializationView; _filterProvider = src._filterProvider; } + + private SerializationConfig(SerializationConfig src, String rootName) + { + super(src, rootName); + _serFeatures = src._serFeatures; + _serializationInclusion = src._serializationInclusion; + _serializationView = src._serializationView; + _filterProvider = src._filterProvider; + } /* /********************************************************** @@ -465,6 +471,18 @@ public class SerializationConfig public SerializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns) { return _withBase(_base.withPropertyNamingStrategy(pns)); } + + @Override + public SerializationConfig withRootName(String rootName) { + if (rootName == null) { + if (_rootName == null) { + return this; + } + } else if (rootName.equals(_rootName)) { + return this; + } + return new SerializationConfig(this, rootName); + } @Override public SerializationConfig withTypeFactory(TypeFactory tf) { @@ -577,6 +595,15 @@ public class SerializationConfig } @Override + public boolean useRootWrapping() + { + if (_rootName != null) { // empty String disables wrapping; non-empty enables + return (_rootName.length() > 0); + } + return isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE); + } + + @Override public AnnotationIntrospector getAnnotationIntrospector() { /* 29-Jul-2009, tatu: it's now possible to disable use of |