forked from NASAWorldWind/WorldWindJava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPrettyPrinter.java
More file actions
166 lines (149 loc) · 5.83 KB
/
PrettyPrinter.java
File metadata and controls
166 lines (149 loc) · 5.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package org.codehaus.jackson;
import java.io.IOException;
/**
* Interface for objects that implement pretty printer functionality, such
* as indentation.
* Pretty printers are used to add white space in output JSON content,
* to make results more human readable. Usually this means things like adding
* linefeeds and indentation.
*/
public interface PrettyPrinter
{
/*
//////////////////////////////////////////////////////
// First methods that act both as events, and expect
// output for correct functioning (i.e something gets
// output even when not pretty-printing)
//////////////////////////////////////////////////////
*/
// // // Root-level handling:
/**
* Method called after a root-level value has been completely
* output, and before another value is to be output.
*<p>
* Default
* handling (without pretty-printing) will output a space, to
* allow values to be parsed correctly. Pretty-printer is
* to output some other suitable and nice-looking separator
* (tab(s), space(s), linefeed(s) or any combination thereof).
*/
public void writeRootValueSeparator(JsonGenerator jg)
throws IOException, JsonGenerationException;
// // Object handling
/**
* Method called when an Object value is to be output, before
* any fields are output.
*<p>
* Default handling (without pretty-printing) will output
* the opening curly bracket.
* Pretty-printer is
* to output a curly bracket as well, but can surround that
* with other (white-space) decoration.
*/
public void writeStartObject(JsonGenerator jg)
throws IOException, JsonGenerationException;
/**
* Method called after an Object value has been completely output
* (minus closing curly bracket).
*<p>
* Default handling (without pretty-printing) will output
* the closing curly bracket.
* Pretty-printer is
* to output a curly bracket as well, but can surround that
* with other (white-space) decoration.
*
* @param nrOfEntries Number of direct members of the array that
* have been output
*/
public void writeEndObject(JsonGenerator jg, int nrOfEntries)
throws IOException, JsonGenerationException;
/**
* Method called after an object entry (field:value) has been completely
* output, and before another value is to be output.
*<p>
* Default handling (without pretty-printing) will output a single
* comma to separate the two. Pretty-printer is
* to output a comma as well, but can surround that with other
* (white-space) decoration.
*/
public void writeObjectEntrySeparator(JsonGenerator jg)
throws IOException, JsonGenerationException;
/**
* Method called after an object field has been output, but
* before the value is output.
*<p>
* Default handling (without pretty-printing) will output a single
* colon to separate the two. Pretty-printer is
* to output a colon as well, but can surround that with other
* (white-space) decoration.
*/
public void writeObjectFieldValueSeparator(JsonGenerator jg)
throws IOException, JsonGenerationException;
// // // Array handling
/**
* Method called when an Array value is to be output, before
* any member/child values are output.
*<p>
* Default handling (without pretty-printing) will output
* the opening bracket.
* Pretty-printer is
* to output a bracket as well, but can surround that
* with other (white-space) decoration.
*/
public void writeStartArray(JsonGenerator jg)
throws IOException, JsonGenerationException;
/**
* Method called after an Array value has been completely output
* (minus closing bracket).
*<p>
* Default handling (without pretty-printing) will output
* the closing bracket.
* Pretty-printer is
* to output a bracket as well, but can surround that
* with other (white-space) decoration.
*
* @param nrOfValues Number of direct members of the array that
* have been output
*/
public void writeEndArray(JsonGenerator jg, int nrOfValues)
throws IOException, JsonGenerationException;
/**
* Method called after an array value has been completely
* output, and before another value is to be output.
*<p>
* Default handling (without pretty-printing) will output a single
* comma to separate the two. Pretty-printer is
* to output a comma as well, but can surround that with other
* (white-space) decoration.
*/
public void writeArrayValueSeparator(JsonGenerator jg)
throws IOException, JsonGenerationException;
/*
//////////////////////////////////////////////////////
// Then events that by default do not produce any output
// but that are often overridden to add white space
// in pretty-printing mode
//////////////////////////////////////////////////////
*/
/**
* Method called after array start marker has been output,
* and right before the first value is to be output.
* It is <b>not</b> called for arrays with no values.
*<p>
* Default handling does not output anything, but pretty-printer
* is free to add any white space decoration.
*/
public void beforeArrayValues(JsonGenerator jg)
throws IOException, JsonGenerationException;
/**
* Method called after object start marker has been output,
* and right before the field name of the first entry is
* to be output.
* It is <b>not</b> called for objects without entries.
*<p>
* Default handling does not output anything, but pretty-printer
* is free to add any white space decoration.
*/
public void beforeObjectEntries(JsonGenerator jg)
throws IOException, JsonGenerationException;
}