Java tutorial
package com.fasterxml.jackson.databind.jsonFormatVisitors; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.SerializerProvider; /** * Visitor called when properties of a type that maps to JSON Object * are being visited: this usually means POJOs, but sometimes other * types use it too (like {@link java.util.EnumMap}). */ public interface JsonObjectFormatVisitor extends JsonFormatVisitorWithSerializerProvider { /** * Callback method called when a POJO property is being traversed. */ public void property(BeanProperty writer) throws JsonMappingException; /** * Callback method called when a non-POJO property (typically something * like an Enum entry of {@link java.util.EnumMap} type) is being * traversed. With POJOs, {@link #property(BeanProperty)} is called instead. */ public void property(String name, JsonFormatVisitable handler, JavaType propertyTypeHint) throws JsonMappingException; public void optionalProperty(BeanProperty writer) throws JsonMappingException; public void optionalProperty(String name, JsonFormatVisitable handler, JavaType propertyTypeHint) throws JsonMappingException; /** * Default "empty" implementation, useful as the base to start on; * especially as it is guaranteed to implement all the method * of the interface, even if new methods are getting added. */ public static class Base implements JsonObjectFormatVisitor { protected SerializerProvider _provider; public Base() { } public Base(SerializerProvider p) { _provider = p; } @Override public SerializerProvider getProvider() { return _provider; } @Override public void setProvider(SerializerProvider p) { _provider = p; } @Override public void property(BeanProperty prop) throws JsonMappingException { } @Override public void property(String name, JsonFormatVisitable handler, JavaType propertyTypeHint) throws JsonMappingException { } @Override public void optionalProperty(BeanProperty prop) throws JsonMappingException { } @Override public void optionalProperty(String name, JsonFormatVisitable handler, JavaType propertyTypeHint) throws JsonMappingException { } } }