VisibilityChecker.Std
Date: 2016-12-04

com.fasterxml.jackson.databind.introspect

## Class VisibilityChecker.Std

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.VisibilityChecker.Std

- All Implemented Interfaces:
    VisibilityChecker<VisibilityChecker.Std>, java.io.Serializable
  Enclosing interface:
    VisibilityChecker<T extends VisibilityChecker<T>>

      public static class VisibilityChecker.Std
      extends java.lang.Object
      implements VisibilityChecker<VisibilityChecker.Std>, java.io.Serializable

  Default standard implementation is purely based on visibility modifier of given class members, and its configured minimum levels. Implemented using "builder" (or "Fluent") pattern, whereas instances are immutable, and configuration is achieved by chainable factory methods. As a result, type is declared is funky recursive generic type, to allow for sub-classing of build methods with property type co-variance.

  Note on `JsonAutoDetect` annotation: it is used to access default minimum visibility access definitions.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.introspect.VisibilityChecker

      `VisibilityChecker.Std`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility` | `_creatorMinLevel`
    `protected com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility` | `_fieldMinLevel`
    `protected com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility` | `_getterMinLevel`
    `protected com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility` | `_isGetterMinLevel`
    `protected com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility` | `_setterMinLevel`
    `protected static VisibilityChecker.Std` | `DEFAULT` This is the canonical base instance, configured with default visibility values

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Constructor that will assign given visibility value for all properties.
    `VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility getter, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility isGetter, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility setter, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility creator, com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility field)` Constructor that allows directly specifying minimum visibility levels to use
    `VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect ann)` Constructor used for building instance that has minumum visibility levels as indicated by given annotation instance

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static VisibilityChecker.Std` | `defaultInstance()`
    `boolean` | `isCreatorVisible(AnnotatedMember m)`
    `boolean` | `isCreatorVisible(java.lang.reflect.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(java.lang.reflect.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(java.lang.reflect.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(java.lang.reflect.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(java.lang.reflect.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)
    `java.lang.String` | `toString()`
    `VisibilityChecker.Std` | `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.
    `VisibilityChecker.Std` | `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.
    `VisibilityChecker.Std` | `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)
    `VisibilityChecker.Std` | `withFieldVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for fields.
    `VisibilityChecker.Std` | `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.
    `VisibilityChecker.Std` | `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").
    `VisibilityChecker.Std` | `withSetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)` Builder method that will return a checker instance that has specified minimum visibility level for setters.
    `VisibilityChecker.Std` | `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT

          protected static final VisibilityChecker.Std DEFAULT

      This is the canonical base instance, configured with default visibility values

    - #### _getterMinLevel

          protected final com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility _getterMinLevel

    - #### _isGetterMinLevel

          protected final com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility _isGetterMinLevel

    - #### _setterMinLevel

          protected final com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility _setterMinLevel

    - #### _creatorMinLevel

          protected final com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility _creatorMinLevel

    - #### _fieldMinLevel

          protected final com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility _fieldMinLevel

  - ### Constructor Detail

    - #### VisibilityChecker.Std

          public VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect ann)

      Constructor used for building instance that has minumum visibility levels as indicated by given annotation instance
      Parameters:
        `ann` - Annotations to use for determining minimum visibility levels

    - #### VisibilityChecker.Std

          public VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility getter,
                               com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility isGetter,
                               com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility setter,
                               com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility creator,
                               com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility field)

      Constructor that allows directly specifying minimum visibility levels to use

    - #### VisibilityChecker.Std

          public VisibilityChecker.Std(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Constructor that will assign given visibility value for all properties.
      Parameters:
        `v` - level to use for all property types

  - ### Method Detail

    - #### defaultInstance

          public static VisibilityChecker.Std defaultInstance()

    - #### with

          public VisibilityChecker.Std with(com.fasterxml.jackson.annotation.JsonAutoDetect ann)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return an instance that has same settings as this instance has, except for values that given annotation overrides.
      Specified by:
        `with` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### with

          public VisibilityChecker.Std with(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      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)
      Specified by:
        `with` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withVisibility

          public VisibilityChecker.Std withVisibility(com.fasterxml.jackson.annotation.PropertyAccessor method,
                                             com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      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)
      Specified by:
        `withVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withGetterVisibility

          public VisibilityChecker.Std withGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return a checker instance that has specified minimum visibility level for regular ("getXxx") getters.
      Specified by:
        `withGetterVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withIsGetterVisibility

          public VisibilityChecker.Std withIsGetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return a checker instance that has specified minimum visibility level for "is-getters" ("isXxx").
      Specified by:
        `withIsGetterVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withSetterVisibility

          public VisibilityChecker.Std withSetterVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return a checker instance that has specified minimum visibility level for setters.
      Specified by:
        `withSetterVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withCreatorVisibility

          public VisibilityChecker.Std withCreatorVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return a checker instance that has specified minimum visibility level for creator methods (constructors, factory methods)
      Specified by:
        `withCreatorVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### withFieldVisibility

          public VisibilityChecker.Std withFieldVisibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility v)

      Description copied from interface: `VisibilityChecker`
      Builder method that will return a checker instance that has specified minimum visibility level for fields.
      Specified by:
        `withFieldVisibility` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isCreatorVisible

          public boolean isCreatorVisible(java.lang.reflect.Member m)

      Description copied from interface: `VisibilityChecker`
      Method for checking whether given method is auto-detectable as Creator, with respect to its visibility (not considering method signature or name, just visibility)
      Specified by:
        `isCreatorVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isCreatorVisible

          public boolean isCreatorVisible(AnnotatedMember m)

      Specified by:
        `isCreatorVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isFieldVisible

          public boolean isFieldVisible(java.lang.reflect.Field f)

      Description copied from interface: `VisibilityChecker`
      Method for checking whether given field is auto-detectable as property, with respect to its visibility (not considering method signature or name, just visibility)
      Specified by:
        `isFieldVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isFieldVisible

          public boolean isFieldVisible(AnnotatedField f)

      Specified by:
        `isFieldVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isGetterVisible

          public boolean isGetterVisible(java.lang.reflect.Method m)

      Description copied from interface: `VisibilityChecker`
      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)
      Specified by:
        `isGetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isGetterVisible

          public boolean isGetterVisible(AnnotatedMethod m)

      Specified by:
        `isGetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isIsGetterVisible

          public boolean isIsGetterVisible(java.lang.reflect.Method m)

      Description copied from interface: `VisibilityChecker`
      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)
      Specified by:
        `isIsGetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isIsGetterVisible

          public boolean isIsGetterVisible(AnnotatedMethod m)

      Specified by:
        `isIsGetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isSetterVisible

          public boolean isSetterVisible(java.lang.reflect.Method m)

      Description copied from interface: `VisibilityChecker`
      Method for checking whether given method is auto-detectable as setter, with respect to its visibility (not considering method signature or name, just visibility)
      Specified by:
        `isSetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### isSetterVisible

          public boolean isSetterVisible(AnnotatedMethod m)

      Specified by:
        `isSetterVisible` in interface `VisibilityChecker<VisibilityChecker.Std>`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`