• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.fasterxml.jackson.databind.node;
2 
3 import java.math.BigDecimal;
4 import java.math.BigInteger;
5 
6 import com.fasterxml.jackson.databind.util.RawValue;
7 
8 /**
9  * Interface that defines common "creator" functionality implemented
10  * both by {@link JsonNodeFactory} and {@link ContainerNode} (that is,
11  * JSON Object and Array nodes).
12  *
13  * @since 2.3
14  */
15 public interface JsonNodeCreator
16 {
17     // Enumerated/singleton types
18 
booleanNode(boolean v)19     public ValueNode booleanNode(boolean v);
nullNode()20     public ValueNode nullNode();
21 
22 // Not yet in 2.10, will be added in 3.0
23 //    public JsonNode missingNode();
24 
25     // Numeric types
26 
numberNode(byte v)27     public ValueNode numberNode(byte v);
numberNode(Byte value)28     public ValueNode numberNode(Byte value);
numberNode(short v)29     public ValueNode numberNode(short v);
numberNode(Short value)30     public ValueNode numberNode(Short value);
numberNode(int v)31     public ValueNode numberNode(int v);
numberNode(Integer value)32     public ValueNode numberNode(Integer value);
numberNode(long v)33     public ValueNode numberNode(long v);
numberNode(Long value)34     public ValueNode numberNode(Long value);
numberNode(BigInteger v)35     public ValueNode numberNode(BigInteger v);
numberNode(float v)36     public ValueNode numberNode(float v);
numberNode(Float value)37     public ValueNode numberNode(Float value);
numberNode(double v)38     public ValueNode numberNode(double v);
numberNode(Double value)39     public ValueNode numberNode(Double value);
numberNode(BigDecimal v)40     public ValueNode numberNode(BigDecimal v);
41 
42     // Textual nodes
43 
textNode(String text)44     public ValueNode textNode(String text);
45 
46     // Other value (non-structured) nodes
47 
binaryNode(byte[] data)48     public ValueNode binaryNode(byte[] data);
binaryNode(byte[] data, int offset, int length)49     public ValueNode binaryNode(byte[] data, int offset, int length);
pojoNode(Object pojo)50     public ValueNode pojoNode(Object pojo);
51 
52     /**
53      * Factory method to use for adding "raw values"; pre-encoded values
54      * that are included exactly as-is when node is serialized.
55      * This may be used, for example, to include fully serialized JSON
56      * sub-trees.
57      * Note that the concept may not work with all backends, and since
58      * no translation of any kinds is done it will not work when converting
59      * between data formats.
60      *
61      * @since 2.6
62      */
rawValueNode(RawValue value)63     public ValueNode rawValueNode(RawValue value);
64 
65     // Structured nodes:
66     // (bit unkosher, due to forward references... but has to do for now)
67 
arrayNode()68     public ArrayNode arrayNode();
69 
70     /**
71      * Factory method for constructing a JSON Array node with an initial capacity
72      *
73      * @since 2.8
74      */
arrayNode(int capacity)75     public ArrayNode arrayNode(int capacity);
76 
objectNode()77     public ObjectNode objectNode();
78 }
79