aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2016-11-28 08:01:09 -0800
committerTatu Saloranta <tatu.saloranta@iki.fi>2016-11-28 08:01:09 -0800
commitd121d969490df51699039357506d6e0ea270f17d (patch)
tree6137185b25f238b0a3c19b17fbf6c24254ae5415 /src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java
parentc0ceefd758990b32a16b06f53b690ab231ab7a04 (diff)
downloadjackson-databind-d121d969490df51699039357506d6e0ea270f17d.tar.gz
Fixed #1347
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java76
1 files changed, 52 insertions, 24 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java b/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java
index 9a3111092..c5e9362d1 100644
--- a/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java
+++ b/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java
@@ -31,6 +31,17 @@ public abstract class MapperConfigBase<CFG extends ConfigFeature,
private final static int DEFAULT_MAPPER_FEATURES = collectFeatureDefaults(MapperFeature.class);
+ /**
+ * @since 2.9
+ */
+ private final static int AUTO_DETECT_MASK =
+ MapperFeature.AUTO_DETECT_FIELDS.getMask()
+ | MapperFeature.AUTO_DETECT_GETTERS.getMask()
+ | MapperFeature.AUTO_DETECT_IS_GETTERS.getMask()
+ | MapperFeature.AUTO_DETECT_SETTERS.getMask()
+ | MapperFeature.AUTO_DETECT_CREATORS.getMask()
+ ;
+
/*
/**********************************************************
/* Immutable config
@@ -576,29 +587,6 @@ public abstract class MapperConfigBase<CFG extends ConfigFeature,
return _attributes;
}
- @Override
- public VisibilityChecker<?> getDefaultVisibilityChecker()
- {
- VisibilityChecker<?> vchecker = _configOverrides.getDefaultVisibility();
- // then global overrides (disabling)
- if (!isEnabled(MapperFeature.AUTO_DETECT_SETTERS)) {
- vchecker = vchecker.withSetterVisibility(Visibility.NONE);
- }
- if (!isEnabled(MapperFeature.AUTO_DETECT_CREATORS)) {
- vchecker = vchecker.withCreatorVisibility(Visibility.NONE);
- }
- if (!isEnabled(MapperFeature.AUTO_DETECT_GETTERS)) {
- vchecker = vchecker.withGetterVisibility(Visibility.NONE);
- }
- if (!isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)) {
- vchecker = vchecker.withIsGetterVisibility(Visibility.NONE);
- }
- if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) {
- vchecker = vchecker.withFieldVisibility(Visibility.NONE);
- }
- return vchecker;
- }
-
/*
/**********************************************************
/* Configuration access; default/overrides
@@ -669,7 +657,47 @@ public abstract class MapperConfigBase<CFG extends ConfigFeature,
}
@Override
- public JsonSetter.Value getDefaultSetterInfo() {
+ public final VisibilityChecker<?> getDefaultVisibilityChecker()
+ {
+ VisibilityChecker<?> vchecker = _configOverrides.getDefaultVisibility();
+ // then global overrides (disabling)
+ if ((_mapperFeatures & AUTO_DETECT_MASK) != 0) {
+ if (!isEnabled(MapperFeature.AUTO_DETECT_FIELDS)) {
+ vchecker = vchecker.withFieldVisibility(Visibility.NONE);
+ }
+ if (!isEnabled(MapperFeature.AUTO_DETECT_GETTERS)) {
+ vchecker = vchecker.withGetterVisibility(Visibility.NONE);
+ }
+ if (!isEnabled(MapperFeature.AUTO_DETECT_IS_GETTERS)) {
+ vchecker = vchecker.withIsGetterVisibility(Visibility.NONE);
+ }
+ if (!isEnabled(MapperFeature.AUTO_DETECT_SETTERS)) {
+ vchecker = vchecker.withSetterVisibility(Visibility.NONE);
+ }
+ if (!isEnabled(MapperFeature.AUTO_DETECT_CREATORS)) {
+ vchecker = vchecker.withCreatorVisibility(Visibility.NONE);
+ }
+ }
+ return vchecker;
+ }
+
+ @Override // since 2.9
+ public final VisibilityChecker<?> getDefaultVisibilityChecker(Class<?> baseType,
+ AnnotatedClass actualClass) {
+ VisibilityChecker<?> vc = getDefaultVisibilityChecker();
+ AnnotationIntrospector intr = getAnnotationIntrospector();
+ if (intr != null) {
+ vc = intr.findAutoDetectVisibility(actualClass, vc);
+ }
+ ConfigOverride overrides = _configOverrides.findOverride(baseType);
+ if (overrides != null) {
+ vc = vc.withOverrides(overrides.getVisibility()); // ok to pass null
+ }
+ return vc;
+ }
+
+ @Override
+ public final JsonSetter.Value getDefaultSetterInfo() {
return _configOverrides.getDefaultSetterInfo();
}