com.fasterxml.jackson.databind.introspect

## Interface VisibilityChecker<T extends VisibilityChecker<T>>

All Known Implementing Classes:
  VisibilityChecker.Std

    public interface VisibilityChecker<T extends VisibilityChecker<T>>

Interface for object used for determine which property elements (methods, fields, constructors) can be auto-detected, with respect to their visibility modifiers.

Note on type declaration: funky recursive type is necessary to support builder/fluent pattern.

### Nested Class Summary

Nested Classes
`static class` `VisibilityChecker.Std` Default standard implementation is purely based on visibility modifier of given class members, and its configured minimum levels.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `isCreatorVisible(AnnotatedMember m)`
`boolean` `isCreatorVisible(Member m)` Method for checking whether given method is auto-detectable as Creator, with respect to its visibility (not considering method signature or name, just visibility)
`boolean` `isFieldVisible(AnnotatedField f)`
`boolean` `isFieldVisible(Field f)` Method for checking whether given field is auto-detectable as property, with respect to its visibility (not considering method signature or name, just visibility)
`boolean` `isGetterVisible(AnnotatedMethod m)`
`boolean` `isGetterVisible(Method m)` Method for checking whether given method is auto-detectable as regular getter, with respect to its visibility (not considering method signature or name, just visibility)
`boolean` `isIsGetterVisible(AnnotatedMethod m)`
`boolean` `isIsGetterVisible(Method m)` Method for checking whether given method is auto-detectable as is-getter, with respect to its visibility (not considering method signature or name, just visibility)
`boolean` `isSetterVisible(AnnotatedMethod m)`
`boolean` `isSetterVisible(Method m)` Method for checking whether given method is auto-detectable as setter, with respect to its visibility (not considering method signature or name, just visibility)
`T` `with(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will create and return an instance that has specified `JsonAutoDetect.Visibility` value to use for all property elements.
`T` `with(com.fasterxml.jackson.annotation.JsonAutoDetect ann)` Builder method that will return an instance that has same settings as this instance has, except for values that given annotation overrides.
`T` `withCreatorVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for creator methods (constructors, factory methods)
`T` `withFieldVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for fields.
`T` `withGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for regular ("getXxx") getters.
`T` `withIsGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for "is-getters" ("isXxx").
`T` `withOverrides(com.fasterxml.jackson.annotation.JsonAutoDetect.Value vis)` 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.
`T` `withSetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for setters.
`T` `withVisibility(com.fasterxml.jackson.annotation.PropertyAccessor method, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will create and return an instance that has specified `JsonAutoDetect.Visibility` value to use for specified property.

### Method Detail

#### with

    T with(com.fasterxml.jackson.annotation.JsonAutoDetect ann)

Builder method that will return an instance that has same settings as this instance has, except for values that given annotation overrides.

#### withOverrides

    T withOverrides(com.fasterxml.jackson.annotation.JsonAutoDetect.Value vis)

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

#### with

    T with(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will create and return an instance that has specified `JsonAutoDetect.Visibility` value to use for all property elements. Typical usage would be something like:

      mapper.setVisibilityChecker(
         mapper.getVisibilityChecker().with(Visibility.NONE));

(which would basically disable all auto-detection)

#### withVisibility

    T withVisibility(com.fasterxml.jackson.annotation.PropertyAccessor method,
                     com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will create and return an instance that has specified `JsonAutoDetect.Visibility` value to use for specified property. Typical usage would be:

      mapper.setVisibilityChecker(
         mapper.getVisibilityChecker().withVisibility(JsonMethod.FIELD, Visibility.ANY));

(which would basically enable auto-detection for all member fields)

#### withGetterVisibility

    T withGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will return a checker instance that has specified minimum visibility level for regular ("getXxx") getters.

#### withIsGetterVisibility

    T withIsGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will return a checker instance that has specified minimum visibility level for "is-getters" ("isXxx").

#### withSetterVisibility

    T withSetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will return a checker instance that has specified minimum visibility level for setters.

#### withCreatorVisibility

    T withCreatorVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will return a checker instance that has specified minimum visibility level for creator methods (constructors, factory methods)

#### withFieldVisibility

    T withFieldVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

Builder method that will return a checker instance that has specified minimum visibility level for fields.

#### isGetterVisible

    boolean isGetterVisible(Method m)

Method for checking whether given method is auto-detectable as regular getter, with respect to its visibility (not considering method signature or name, just visibility)

#### isGetterVisible

    boolean isGetterVisible(AnnotatedMethod m)

#### isIsGetterVisible

    boolean isIsGetterVisible(Method m)

Method for checking whether given method is auto-detectable as is-getter, with respect to its visibility (not considering method signature or name, just visibility)

#### isIsGetterVisible

    boolean isIsGetterVisible(AnnotatedMethod m)

#### isSetterVisible

    boolean isSetterVisible(Method m)

Method for checking whether given method is auto-detectable as setter, with respect to its visibility (not considering method signature or name, just visibility)

#### isSetterVisible

    boolean isSetterVisible(AnnotatedMethod m)

#### isCreatorVisible

    boolean isCreatorVisible(Member m)

Method for checking whether given method is auto-detectable as Creator, with respect to its visibility (not considering method signature or name, just visibility)

#### isCreatorVisible

    boolean isCreatorVisible(AnnotatedMember m)

#### isFieldVisible

    boolean isFieldVisible(Field f)

Method for checking whether given field is auto-detectable as property, with respect to its visibility (not considering method signature or name, just visibility)

#### isFieldVisible

    boolean isFieldVisible(AnnotatedField f)