1 package com.fasterxml.jackson.databind.jsonFormatVisitors;
2 
3 import com.fasterxml.jackson.databind.JavaType;
4 import com.fasterxml.jackson.databind.JsonMappingException;
5 import com.fasterxml.jackson.databind.SerializerProvider;
6 
7 public interface JsonArrayFormatVisitor extends JsonFormatVisitorWithSerializerProvider
8 {
9     /**
10      * Visit method called for structured types, as well as possibly
11      * for leaf types (especially if handled by custom serializers).
12      *
13      * @param handler Serializer used, to allow for further callbacks
14      * @param elementType Type of elements in JSON array value
15      */
itemsFormat(JsonFormatVisitable handler, JavaType elementType)16     void itemsFormat(JsonFormatVisitable handler, JavaType elementType)
17         throws JsonMappingException;
18 
19     /**
20      * Visit method that is called if the content type is a simple
21      * scalar type like {@link JsonFormatTypes#STRING} (but not
22      * for structured types like {@link JsonFormatTypes#OBJECT} since
23      * they would be missing type information).
24      */
itemsFormat(JsonFormatTypes format)25     void itemsFormat(JsonFormatTypes format)
26         throws JsonMappingException;
27 
28     /**
29      * Default "empty" implementation, useful as the base to start on;
30      * especially as it is guaranteed to implement all the method
31      * of the interface, even if new methods are getting added.
32      */
33     public static class Base implements JsonArrayFormatVisitor {
34         protected SerializerProvider _provider;
35 
Base()36         public Base() { }
Base(SerializerProvider p)37         public Base(SerializerProvider p) { _provider = p; }
38 
39         @Override
getProvider()40         public SerializerProvider getProvider() { return _provider; }
41 
42         @Override
setProvider(SerializerProvider p)43         public void setProvider(SerializerProvider p) { _provider = p; }
44 
45         @Override
itemsFormat(JsonFormatVisitable handler, JavaType elementType)46         public void itemsFormat(JsonFormatVisitable handler, JavaType elementType)
47             throws JsonMappingException { }
48 
49         @Override
itemsFormat(JsonFormatTypes format)50         public void itemsFormat(JsonFormatTypes format)
51             throws JsonMappingException { }
52     }
53 
54 }
55 
56