com.couchbase.client.deps.com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core-io Show documentation
Show all versions of core-io Show documentation
The official Couchbase JVM Core IO Library
package com.couchbase.client.deps.com.fasterxml.jackson.databind.jsonFormatVisitors;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.BeanProperty;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.JavaType;
import com.couchbase.client.deps.com.fasterxml.jackson.databind.JsonMappingException;
import com.couchbase.client.deps.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 { }
}
}