@@ -31,6 +31,17 @@ public abstract class MapperConfigBase<CFG extends ConfigFeature,
31
31
32
32
private final static int DEFAULT_MAPPER_FEATURES = collectFeatureDefaults (MapperFeature .class );
33
33
34
+ /**
35
+ * @since 2.9
36
+ */
37
+ private final static int AUTO_DETECT_MASK =
38
+ MapperFeature .AUTO_DETECT_FIELDS .getMask ()
39
+ | MapperFeature .AUTO_DETECT_GETTERS .getMask ()
40
+ | MapperFeature .AUTO_DETECT_IS_GETTERS .getMask ()
41
+ | MapperFeature .AUTO_DETECT_SETTERS .getMask ()
42
+ | MapperFeature .AUTO_DETECT_CREATORS .getMask ()
43
+ ;
44
+
34
45
/*
35
46
/**********************************************************
36
47
/* Immutable config
@@ -576,29 +587,6 @@ public final ContextAttributes getAttributes() {
576
587
return _attributes ;
577
588
}
578
589
579
- @ Override
580
- public VisibilityChecker <?> getDefaultVisibilityChecker ()
581
- {
582
- VisibilityChecker <?> vchecker = _configOverrides .getDefaultVisibility ();
583
- // then global overrides (disabling)
584
- if (!isEnabled (MapperFeature .AUTO_DETECT_SETTERS )) {
585
- vchecker = vchecker .withSetterVisibility (Visibility .NONE );
586
- }
587
- if (!isEnabled (MapperFeature .AUTO_DETECT_CREATORS )) {
588
- vchecker = vchecker .withCreatorVisibility (Visibility .NONE );
589
- }
590
- if (!isEnabled (MapperFeature .AUTO_DETECT_GETTERS )) {
591
- vchecker = vchecker .withGetterVisibility (Visibility .NONE );
592
- }
593
- if (!isEnabled (MapperFeature .AUTO_DETECT_IS_GETTERS )) {
594
- vchecker = vchecker .withIsGetterVisibility (Visibility .NONE );
595
- }
596
- if (!isEnabled (MapperFeature .AUTO_DETECT_FIELDS )) {
597
- vchecker = vchecker .withFieldVisibility (Visibility .NONE );
598
- }
599
- return vchecker ;
600
- }
601
-
602
590
/*
603
591
/**********************************************************
604
592
/* Configuration access; default/overrides
@@ -669,7 +657,47 @@ public final JsonIgnoreProperties.Value getDefaultPropertyIgnorals(Class<?> base
669
657
}
670
658
671
659
@ Override
672
- public JsonSetter .Value getDefaultSetterInfo () {
660
+ public final VisibilityChecker <?> getDefaultVisibilityChecker ()
661
+ {
662
+ VisibilityChecker <?> vchecker = _configOverrides .getDefaultVisibility ();
663
+ // then global overrides (disabling)
664
+ if ((_mapperFeatures & AUTO_DETECT_MASK ) != 0 ) {
665
+ if (!isEnabled (MapperFeature .AUTO_DETECT_FIELDS )) {
666
+ vchecker = vchecker .withFieldVisibility (Visibility .NONE );
667
+ }
668
+ if (!isEnabled (MapperFeature .AUTO_DETECT_GETTERS )) {
669
+ vchecker = vchecker .withGetterVisibility (Visibility .NONE );
670
+ }
671
+ if (!isEnabled (MapperFeature .AUTO_DETECT_IS_GETTERS )) {
672
+ vchecker = vchecker .withIsGetterVisibility (Visibility .NONE );
673
+ }
674
+ if (!isEnabled (MapperFeature .AUTO_DETECT_SETTERS )) {
675
+ vchecker = vchecker .withSetterVisibility (Visibility .NONE );
676
+ }
677
+ if (!isEnabled (MapperFeature .AUTO_DETECT_CREATORS )) {
678
+ vchecker = vchecker .withCreatorVisibility (Visibility .NONE );
679
+ }
680
+ }
681
+ return vchecker ;
682
+ }
683
+
684
+ @ Override // since 2.9
685
+ public final VisibilityChecker <?> getDefaultVisibilityChecker (Class <?> baseType ,
686
+ AnnotatedClass actualClass ) {
687
+ VisibilityChecker <?> vc = getDefaultVisibilityChecker ();
688
+ AnnotationIntrospector intr = getAnnotationIntrospector ();
689
+ if (intr != null ) {
690
+ vc = intr .findAutoDetectVisibility (actualClass , vc );
691
+ }
692
+ ConfigOverride overrides = _configOverrides .findOverride (baseType );
693
+ if (overrides != null ) {
694
+ vc = vc .withOverrides (overrides .getVisibility ()); // ok to pass null
695
+ }
696
+ return vc ;
697
+ }
698
+
699
+ @ Override
700
+ public final JsonSetter .Value getDefaultSetterInfo () {
673
701
return _configOverrides .getDefaultSetterInfo ();
674
702
}
675
703
0 commit comments