Skip to content

Commit 29bd8e2

Browse files
committed
JsonType extends JsonView
1 parent 342a952 commit 29bd8e2

File tree

4 files changed

+27
-35
lines changed

4 files changed

+27
-35
lines changed

jsonb/src/main/java/io/avaje/jsonb/JsonType.java

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* Moshi note: JsonType does not exist in Moshi and has been added to provide a
1414
* slightly nicer API to use than JsonAdapter.
1515
*/
16-
public interface JsonType<T> {
16+
public interface JsonType<T> extends JsonView<T> {
1717

1818
/**
1919
* Build and return the view given the DSL that specifies the properties to include.
@@ -51,31 +51,6 @@ public interface JsonType<T> {
5151
*/
5252
JsonType<Map<String, T>> map();
5353

54-
/**
55-
* Return the value as json content.
56-
*/
57-
String toJson(T value);
58-
59-
/**
60-
* Return the value as json content in bytes form.
61-
*/
62-
byte[] toJsonBytes(T value);
63-
64-
/**
65-
* Write the value as json content to the given JsonWriter.
66-
*/
67-
void toJson(JsonWriter writer, T value);
68-
69-
/**
70-
* Write the value as json content to the given writer.
71-
*/
72-
void toJson(Writer writer, T value);
73-
74-
/**
75-
* Write the value as json content to the given outputStream.
76-
*/
77-
void toJson(OutputStream outputStream, T value);
78-
7954
/**
8055
* Read the return the value from the reader.
8156
*/

jsonb/src/main/java/io/avaje/jsonb/JsonView.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ public interface JsonView<T> {
3434
*/
3535
String toJson(T value);
3636

37+
/**
38+
* Return the value as json content in bytes form.
39+
*/
40+
byte[] toJsonBytes(T value);
41+
3742
/**
3843
* Write to the given writer.
3944
*/

jsonb/src/main/java/io/avaje/jsonb/core/DJsonType.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,18 @@ public JsonType<Map<String, T>> map() {
4747

4848
@Override
4949
public String toJson(T value) {
50-
BufferedJsonWriter bufferedJsonWriter = jsonb.bufferedWriter();
51-
toJson(bufferedJsonWriter, value);
52-
return bufferedJsonWriter.result();
50+
try (BufferedJsonWriter bufferedJsonWriter = jsonb.bufferedWriter()) {
51+
toJson(bufferedJsonWriter, value);
52+
return bufferedJsonWriter.result();
53+
}
5354
}
5455

5556
@Override
5657
public byte[] toJsonBytes(T value) {
57-
BytesJsonWriter bytesWriter = jsonb.bufferedWriterAsBytes();
58-
toJson(bytesWriter, value);
59-
return bytesWriter.result();
58+
try (BytesJsonWriter bytesWriter = jsonb.bufferedWriterAsBytes()) {
59+
toJson(bytesWriter, value);
60+
return bytesWriter.result();
61+
}
6062
}
6163

6264
@Override

jsonb/src/main/java/io/avaje/jsonb/core/ViewBuilder.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.avaje.jsonb.*;
44
import io.avaje.jsonb.spi.BufferedJsonWriter;
5+
import io.avaje.jsonb.spi.BytesJsonWriter;
56
import io.avaje.jsonb.spi.PropertyNames;
67

78
import java.io.IOException;
@@ -194,9 +195,18 @@ private static final class DView<T> implements JsonView<T> {
194195

195196
@Override
196197
public String toJson(T value) {
197-
BufferedJsonWriter bufferedJsonWriter = jsonb.bufferedWriter();
198-
toJson(bufferedJsonWriter, value);
199-
return bufferedJsonWriter.result();
198+
try (BufferedJsonWriter bufferedJsonWriter = jsonb.bufferedWriter()) {
199+
toJson(bufferedJsonWriter, value);
200+
return bufferedJsonWriter.result();
201+
}
202+
}
203+
204+
@Override
205+
public byte[] toJsonBytes(T value) {
206+
try (BytesJsonWriter bytesWriter = jsonb.bufferedWriterAsBytes()) {
207+
toJson(bytesWriter, value);
208+
return bytesWriter.result();
209+
}
200210
}
201211

202212
@Override

0 commit comments

Comments
 (0)