下面列出了com.fasterxml.jackson.annotation.JsonAutoDetect#Value ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override // since 2.9
public Std withOverrides(JsonAutoDetect.Value vis)
{
Std curr = this;
if (vis != null) {
return _with(
_defaultOrOverride(_getterMinLevel, vis.getGetterVisibility()),
_defaultOrOverride(_isGetterMinLevel, vis.getIsGetterVisibility()),
_defaultOrOverride(_setterMinLevel, vis.getSetterVisibility()),
_defaultOrOverride(_creatorMinLevel, vis.getCreatorVisibility()),
_defaultOrOverride(_fieldMinLevel, vis.getFieldVisibility())
);
}
return curr;
}
protected AnnotationBasedIntrospector(Class<?> type, boolean serialization,
JsonAutoDetect.Value visibility) {
_type = type;
_forSerialization = serialization;
_ignorableNames = serialization ? null : new HashSet<String>();
// First things first: find possible `@JsonAutoDetect` to override
// default visibility settings
JsonAutoDetect ann = _find(type, JsonAutoDetect.class); // bad form but...
if (ann == null) {
_visibility = visibility;
} else {
_visibility = visibility.withOverrides(JsonAutoDetect.Value.from(ann));
}
}
private JSON jsonWithVisibility(JsonAutoDetect.Value vis) {
return JSON.builder()
.register(JacksonAnnotationExtension.builder()
.withVisibility(vis)
.build())
.build();
}
/**
* @since 2.9
*/
public MutableConfigOverride setVisibility(JsonAutoDetect.Value v) {
_visibility = v;
return this;
}
/**
* @since 2.9
*/
public static Std construct(JsonAutoDetect.Value vis) {
return DEFAULT.withOverrides(vis);
}
public static POJODefinition pojoDefinitionForDeserialization(JSONReader r,
Class<?> pojoType, JsonAutoDetect.Value visibility) {
return new AnnotationBasedIntrospector(pojoType, false, visibility)
.introspectDefinition();
}
public static POJODefinition pojoDefinitionForSerialization(JSONWriter w,
Class<?> pojoType, JsonAutoDetect.Value visibility) {
return new AnnotationBasedIntrospector(pojoType, true, visibility)
.introspectDefinition();
}
public AnnotationBasedValueRWModifier(JsonAutoDetect.Value visibility) {
_visibility = visibility;
}
/**
* @since 2.9
*/
public JsonAutoDetect.Value getVisibility() { return _visibility; }
/**
* Method that can be used for merging default values from `this`
* instance with specified overrides; and either return `this`
* if overrides had no effect (that is, result would be equal),
* or a new instance with merged visibility settings.
*
* @since 2.9
*/
public T withOverrides(JsonAutoDetect.Value vis);
/**
* Method for setting visibility settings to specified parameter and returning
* resulting builder instance.
*
* @param allVisibility Visibility settings to use, or {@code null} to indicate
* "use default visibility" (see {@link JacksonAnnotationExtension#DEFAULT_VISIBILITY}).
*
* @return Builder with specified visibility settings
*/
public Builder withVisibility(JsonAutoDetect.Value allVisibility) {
visibility = (allVisibility == null) ? DEFAULT_VISIBILITY : allVisibility;
return this;
}