Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.fasterxml.jackson.annotation;
  
Class annotation that can be used to define which kinds of Methods are to be detected by auto-detection. Auto-detection means using name conventions and/or signature templates to find methods to use for data binding. For example, so-called "getters" can be auto-detected by looking for public member methods that return a value, do not take argument, and have prefix "get" in their name.

Pseudo-value NONE means that all auto-detection is disabled for the specific class that annotation is applied to (including its super-types, but only when resolving that class). Pseudo-value ALWAYS means that auto-detection is enabled for all method types for the class in similar way.

The default value is ALWAYS: that is, by default, auto-detection is enabled for all classes unless instructed otherwise.

Starting with version 1.5, it is also possible to use more fine-grained definitions, to basically define minimum visibility level needed. Defaults are different for different types (getters need to be public; setters can have any access modifier, for example).

 
 public @interface JsonAutoDetect
 {
    
Enumeration for possible visibility thresholds (minimum visibility) that can be used to limit which methods (and fields) are auto-detected.
 
     public enum Visibility {
        
Value that means that all kinds of access modifiers are acceptable, from private to public.
 
         ANY,
        
Value that means that any other access modifier other than 'private' is considered auto-detectable.
 
         NON_PRIVATE,
        
Value that means access modifiers 'protected' and 'public' are auto-detectable (and 'private' and "package access" == no modifiers are not)
 
         PROTECTED_AND_PUBLIC,
        
Value to indicate that only 'public' access modifier is considered auto-detectable.
 
         PUBLIC_ONLY,
        
Value that indicates that no access modifiers are auto-detectable: this can be used to explicitly disable auto-detection for specified types.
 
         NONE,
        
        
Value that indicates that default visibility level (whatever it is, depends on context) is to be used. This usually means that inherited value (from parent visibility settings) is to be used.
 
         DEFAULT;
 
         public boolean isVisible(Member m) {
             switch (this) {
             case :
                 return true;
             case :
                 return false;
             case :
                 return !Modifier.isPrivate(m.getModifiers());
             case :
                 if (Modifier.isProtected(m.getModifiers())) {
                     return true;
                 }
                 // fall through to public case:
             case :
                 return Modifier.isPublic(m.getModifiers());
             }
             return false;
         }
     }
    
    
Minimum visibility required for auto-detecting regular getter methods.
    Visibility getterVisibility() default .;

    
Minimum visibility required for auto-detecting is-getter methods.
    Visibility isGetterVisibility() default .;
    
    
Minimum visibility required for auto-detecting setter methods.
    
    Visibility setterVisibility() default .;

    
Minimum visibility required for auto-detecting Creator methods, except for no-argument constructors (which are always detected no matter what).
    Visibility creatorVisibility() default .;

    
Minimum visibility required for auto-detecting member fields.
 
New to GrepCode? Check out our FAQ X