1 package com.fasterxml.jackson.databind.json;
2
3 import com.fasterxml.jackson.core.JsonFactory;
4 import com.fasterxml.jackson.core.Version;
5 import com.fasterxml.jackson.core.json.JsonReadFeature;
6 import com.fasterxml.jackson.core.json.JsonWriteFeature;
7
8 import com.fasterxml.jackson.databind.ObjectMapper;
9 import com.fasterxml.jackson.databind.cfg.MapperBuilder;
10 import com.fasterxml.jackson.databind.cfg.PackageVersion;
11
12
17 public class JsonMapper extends ObjectMapper
18 {
19 private static final long serialVersionUID = 1L;
20
21
27 public static class Builder extends MapperBuilder<JsonMapper, Builder>
28 {
29 public Builder(JsonMapper m) {
30 super(m);
31 }
32
33 public Builder enable(JsonReadFeature... features) {
34 for (JsonReadFeature f : features) {
35 _mapper.enable(f.mappedFeature());
36 }
37 return this;
38 }
39
40 public Builder disable(JsonReadFeature... features) {
41 for (JsonReadFeature f : features) {
42 _mapper.disable(f.mappedFeature());
43 }
44 return this;
45 }
46
47 public Builder configure(JsonReadFeature f, boolean state)
48 {
49 if (state) {
50 _mapper.enable(f.mappedFeature());
51 } else {
52 _mapper.disable(f.mappedFeature());
53 }
54 return this;
55 }
56
57 public Builder enable(JsonWriteFeature... features) {
58 for (JsonWriteFeature f : features) {
59 _mapper.enable(f.mappedFeature());
60 }
61 return this;
62 }
63
64 public Builder disable(JsonWriteFeature... features) {
65 for (JsonWriteFeature f : features) {
66 _mapper.disable(f.mappedFeature());
67 }
68 return this;
69 }
70
71 public Builder configure(JsonWriteFeature f, boolean state)
72 {
73 if (state) {
74 _mapper.enable(f.mappedFeature());
75 } else {
76 _mapper.disable(f.mappedFeature());
77 }
78 return this;
79 }
80 }
81
82
87
88 public JsonMapper() {
89 this(new JsonFactory());
90 }
91
92 public JsonMapper(JsonFactory f) {
93 super(f);
94 }
95
96 protected JsonMapper(JsonMapper src) {
97 super(src);
98 }
99
100 @Override
101 public JsonMapper copy()
102 {
103 _checkInvalidCopy(JsonMapper.class);
104 return new JsonMapper(this);
105 }
106
107
112
113 public static JsonMapper.Builder builder() {
114 return new Builder(new JsonMapper());
115 }
116
117 public static Builder builder(JsonFactory streamFactory) {
118 return new Builder(new JsonMapper(streamFactory));
119 }
120
121 public JsonMapper.Builder rebuild() {
122
123
124 return new Builder(this.copy());
125 }
126
127
132
133 @Override
134 public Version version() {
135 return PackageVersion.VERSION;
136 }
137
138 @Override
139 public JsonFactory getFactory() {
140 return _jsonFactory;
141 }
142
143
148
149
150
151
152 public boolean isEnabled(JsonReadFeature f) {
153 return isEnabled(f.mappedFeature());
154 }
155
156 public boolean isEnabled(JsonWriteFeature f) {
157 return isEnabled(f.mappedFeature());
158 }
159 }
160