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 EnumMap).
/** * 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.
/** * 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 EnumMap type) is being traversed. With POJOs, property(BeanProperty) is called instead.
/** * 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.
/** * 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 { } } }