This commit is contained in:
@@ -6,8 +6,6 @@
|
|||||||
package org.redkale.convert;
|
package org.redkale.convert;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.function.BiFunction;
|
|
||||||
import org.redkale.util.Attribute;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二进制序列化/反序列化操作类
|
* 二进制序列化/反序列化操作类
|
||||||
@@ -35,10 +33,4 @@ public abstract class BinaryConvert<R extends Reader, W extends Writer> extends
|
|||||||
public abstract byte[] convertTo(final Type type, final Object value);
|
public abstract byte[] convertTo(final Type type, final Object value);
|
||||||
|
|
||||||
public abstract byte[] convertMapTo(final Object... values);
|
public abstract byte[] convertMapTo(final Object... values);
|
||||||
|
|
||||||
public abstract byte[] convertTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract byte[] convertTo(final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract byte[] convertMapTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object... values);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,11 +32,17 @@ public abstract class Convert<R extends Reader, W extends Writer> {
|
|||||||
return this.factory;
|
return this.factory;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <S extends W> S funcWrite(S writer, BiFunction<Attribute, Object, Object> fieldFunc) {
|
protected <S extends W> S configWrite(S writer) {
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected <S extends W> S fieldFunc(S writer, BiFunction<Attribute, Object, Object> fieldFunc) {
|
||||||
writer.fieldFunc = fieldFunc;
|
writer.fieldFunc = fieldFunc;
|
||||||
return writer;
|
return writer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract Convert<R, W> newConvert(final BiFunction<Attribute, Object, Object> fieldFunc);
|
||||||
|
|
||||||
public abstract boolean isBinary();
|
public abstract boolean isBinary();
|
||||||
|
|
||||||
public abstract <T> T convertFrom(final Type type, final byte[] bytes);
|
public abstract <T> T convertFrom(final Type type, final byte[] bytes);
|
||||||
@@ -51,9 +57,4 @@ public abstract class Convert<R extends Reader, W extends Writer> {
|
|||||||
|
|
||||||
public abstract ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values);
|
public abstract ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values);
|
||||||
|
|
||||||
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object... values);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,6 @@
|
|||||||
package org.redkale.convert;
|
package org.redkale.convert;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.function.BiFunction;
|
|
||||||
import org.redkale.util.Attribute;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文本序列化/反序列化操作类
|
* 文本序列化/反序列化操作类
|
||||||
@@ -35,10 +33,4 @@ public abstract class TextConvert<R extends Reader, W extends Writer> extends Co
|
|||||||
public abstract String convertTo(final Type type, final Object value);
|
public abstract String convertTo(final Type type, final Object value);
|
||||||
|
|
||||||
public abstract String convertMapTo(final Object... values);
|
public abstract String convertMapTo(final Object... values);
|
||||||
|
|
||||||
public abstract String convertTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract String convertTo(final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value);
|
|
||||||
|
|
||||||
public abstract String convertMapTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object... values);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import org.redkale.util.*;
|
|||||||
*
|
*
|
||||||
* @author zhangjx
|
* @author zhangjx
|
||||||
*/
|
*/
|
||||||
public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
public class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
||||||
|
|
||||||
private static final ObjectPool<BsonReader> readerPool = BsonReader.createPool(Integer.getInteger("convert.bson.pool.size", 16));
|
private static final ObjectPool<BsonReader> readerPool = BsonReader.createPool(Integer.getInteger("convert.bson.pool.size", 16));
|
||||||
|
|
||||||
@@ -59,6 +59,16 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
return BsonFactory.root().getConvert();
|
return BsonFactory.root().getConvert();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BsonConvert newConvert(final BiFunction<Attribute, Object, Object> fieldFunc) {
|
||||||
|
return new BsonConvert(getFactory(), tiny) {
|
||||||
|
@Override
|
||||||
|
protected <S extends BsonWriter> S configWrite(S writer) {
|
||||||
|
return fieldFunc(writer, fieldFunc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------ reader -----------------------------------------------------------
|
//------------------------------ reader -----------------------------------------------------------
|
||||||
public BsonReader pollBsonReader(final ByteBuffer... buffers) {
|
public BsonReader pollBsonReader(final ByteBuffer... buffers) {
|
||||||
return new BsonByteBufferReader((ConvertMask) null, buffers);
|
return new BsonByteBufferReader((ConvertMask) null, buffers);
|
||||||
@@ -78,11 +88,11 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
//------------------------------ writer -----------------------------------------------------------
|
//------------------------------ writer -----------------------------------------------------------
|
||||||
public BsonByteBufferWriter pollBsonWriter(final Supplier<ByteBuffer> supplier) {
|
public BsonByteBufferWriter pollBsonWriter(final Supplier<ByteBuffer> supplier) {
|
||||||
return new BsonByteBufferWriter(tiny, supplier);
|
return configWrite(new BsonByteBufferWriter(tiny, supplier));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BsonWriter pollBsonWriter(final OutputStream out) {
|
public BsonWriter pollBsonWriter(final OutputStream out) {
|
||||||
return new BsonStreamWriter(tiny, out);
|
return configWrite(new BsonStreamWriter(tiny, out));
|
||||||
}
|
}
|
||||||
|
|
||||||
public BsonWriter pollBsonWriter() {
|
public BsonWriter pollBsonWriter() {
|
||||||
@@ -142,13 +152,8 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
//------------------------------ convertTo -----------------------------------------------------------
|
//------------------------------ convertTo -----------------------------------------------------------
|
||||||
@Override
|
@Override
|
||||||
public byte[] convertTo(final Object value) {
|
public byte[] convertTo(final Object value) {
|
||||||
return convertTo((BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] convertTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
final BsonWriter out = funcWrite(writerPool.get().tiny(tiny), fieldFunc);
|
final BsonWriter out = writerPool.get().tiny(tiny);
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
byte[] result = out.toArray();
|
byte[] result = out.toArray();
|
||||||
writerPool.accept(out);
|
writerPool.accept(out);
|
||||||
@@ -159,13 +164,8 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] convertTo(final Type type, final Object value) {
|
public byte[] convertTo(final Type type, final Object value) {
|
||||||
return convertTo(type, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] convertTo(final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (type == null) return null;
|
if (type == null) return null;
|
||||||
final BsonWriter out = funcWrite(writerPool.get().tiny(tiny), fieldFunc);
|
final BsonWriter out = writerPool.get().tiny(tiny);
|
||||||
factory.loadEncoder(type).convertTo(out, value);
|
factory.loadEncoder(type).convertTo(out, value);
|
||||||
byte[] result = out.toArray();
|
byte[] result = out.toArray();
|
||||||
writerPool.accept(out);
|
writerPool.accept(out);
|
||||||
@@ -174,13 +174,8 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] convertMapTo(final Object... values) {
|
public byte[] convertMapTo(final Object... values) {
|
||||||
return convertTo((BiFunction) null, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public byte[] convertMapTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object... values) {
|
|
||||||
if (values == null) return null;
|
if (values == null) return null;
|
||||||
final BsonWriter out = funcWrite(writerPool.get().tiny(tiny), fieldFunc);
|
final BsonWriter out = writerPool.get().tiny(tiny);
|
||||||
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
byte[] result = out.toArray();
|
byte[] result = out.toArray();
|
||||||
writerPool.accept(out);
|
writerPool.accept(out);
|
||||||
@@ -189,38 +184,33 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
public void convertTo(final OutputStream out, final Object value) {
|
public void convertTo(final OutputStream out, final Object value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
new BsonStreamWriter(tiny, out).writeNull();
|
pollBsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
factory.loadEncoder(value.getClass()).convertTo(new BsonStreamWriter(tiny, out), value);
|
factory.loadEncoder(value.getClass()).convertTo(pollBsonWriter(out), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void convertTo(final OutputStream out, final Type type, final Object value) {
|
public void convertTo(final OutputStream out, final Type type, final Object value) {
|
||||||
if (type == null) return;
|
if (type == null) return;
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
new BsonStreamWriter(tiny, out).writeNull();
|
pollBsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
factory.loadEncoder(type).convertTo(new BsonStreamWriter(tiny, out), value);
|
factory.loadEncoder(type).convertTo(pollBsonWriter(out), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void convertMapTo(final OutputStream out, final Object... values) {
|
public void convertMapTo(final OutputStream out, final Object... values) {
|
||||||
if (values == null) {
|
if (values == null) {
|
||||||
new BsonStreamWriter(tiny, out).writeNull();
|
pollBsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(new BsonStreamWriter(tiny, out), values);
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(pollBsonWriter(out), values);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
||||||
return convertTo(supplier, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
BsonByteBufferWriter out = funcWrite(new BsonByteBufferWriter(tiny, supplier), fieldFunc);
|
BsonByteBufferWriter out = pollBsonWriter(supplier);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
@@ -231,13 +221,8 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value) {
|
||||||
return convertTo(supplier, type, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (supplier == null || type == null) return null;
|
if (supplier == null || type == null) return null;
|
||||||
BsonByteBufferWriter out = funcWrite(new BsonByteBufferWriter(tiny, supplier), fieldFunc);
|
BsonByteBufferWriter out = pollBsonWriter(supplier);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
@@ -248,13 +233,8 @@ public final class BsonConvert extends BinaryConvert<BsonReader, BsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
||||||
return convertMapTo(supplier, (BiFunction) null, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object... values) {
|
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
BsonByteBufferWriter out = funcWrite(new BsonByteBufferWriter(tiny, supplier), fieldFunc);
|
BsonByteBufferWriter out = pollBsonWriter(supplier);
|
||||||
if (values == null) {
|
if (values == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import org.redkale.util.*;
|
|||||||
* @author zhangjx
|
* @author zhangjx
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
public class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
||||||
|
|
||||||
public static final Type TYPE_MAP_STRING_STRING = new TypeToken<java.util.HashMap<String, String>>() {
|
public static final Type TYPE_MAP_STRING_STRING = new TypeToken<java.util.HashMap<String, String>>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
@@ -46,6 +46,16 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
return JsonFactory.root().getConvert();
|
return JsonFactory.root().getConvert();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JsonConvert newConvert(final BiFunction<Attribute, Object, Object> fieldFunc) {
|
||||||
|
return new JsonConvert(getFactory(), tiny) {
|
||||||
|
@Override
|
||||||
|
protected <S extends JsonWriter> S configWrite(S writer) {
|
||||||
|
return fieldFunc(writer, fieldFunc);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------ reader -----------------------------------------------------------
|
//------------------------------ reader -----------------------------------------------------------
|
||||||
public JsonReader pollJsonReader(final ByteBuffer... buffers) {
|
public JsonReader pollJsonReader(final ByteBuffer... buffers) {
|
||||||
return new JsonByteBufferReader((ConvertMask) null, buffers);
|
return new JsonByteBufferReader((ConvertMask) null, buffers);
|
||||||
@@ -65,19 +75,19 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
//------------------------------ writer -----------------------------------------------------------
|
//------------------------------ writer -----------------------------------------------------------
|
||||||
public JsonByteBufferWriter pollJsonWriter(final Supplier<ByteBuffer> supplier) {
|
public JsonByteBufferWriter pollJsonWriter(final Supplier<ByteBuffer> supplier) {
|
||||||
return new JsonByteBufferWriter(tiny, supplier);
|
return configWrite(new JsonByteBufferWriter(tiny, supplier));
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonWriter pollJsonWriter(final OutputStream out) {
|
public JsonWriter pollJsonWriter(final OutputStream out) {
|
||||||
return new JsonStreamWriter(tiny, out);
|
return configWrite(new JsonStreamWriter(tiny, out));
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonWriter pollJsonWriter(final Charset charset, final OutputStream out) {
|
public JsonWriter pollJsonWriter(final Charset charset, final OutputStream out) {
|
||||||
return new JsonStreamWriter(tiny, charset, out);
|
return configWrite(new JsonStreamWriter(tiny, charset, out));
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonWriter pollJsonWriter() {
|
public JsonWriter pollJsonWriter() {
|
||||||
return writerPool.get().tiny(tiny);
|
return configWrite(writerPool.get().tiny(tiny));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void offerJsonWriter(final JsonWriter writer) {
|
public void offerJsonWriter(final JsonWriter writer) {
|
||||||
@@ -85,6 +95,7 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------ convertFrom -----------------------------------------------------------
|
//------------------------------ convertFrom -----------------------------------------------------------
|
||||||
|
@Override
|
||||||
public <T> T convertFrom(final Type type, final byte[] bytes) {
|
public <T> T convertFrom(final Type type, final byte[] bytes) {
|
||||||
if (bytes == null) return null;
|
if (bytes == null) return null;
|
||||||
return convertFrom(type, new String(bytes, StandardCharsets.UTF_8));
|
return convertFrom(type, new String(bytes, StandardCharsets.UTF_8));
|
||||||
@@ -186,22 +197,11 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
return convertTo(value.getClass(), value);
|
return convertTo(value.getClass(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String convertTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (value == null) return "null";
|
|
||||||
return convertTo(value.getClass(), fieldFunc, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertTo(final Type type, final Object value) {
|
public String convertTo(final Type type, final Object value) {
|
||||||
return convertTo(type, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String convertTo(final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (type == null) return null;
|
if (type == null) return null;
|
||||||
if (value == null) return "null";
|
if (value == null) return "null";
|
||||||
final JsonWriter writer = funcWrite(writerPool.get().tiny(tiny), fieldFunc);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
writer.specify(type);
|
writer.specify(type);
|
||||||
factory.loadEncoder(type).convertTo(writer, value);
|
factory.loadEncoder(type).convertTo(writer, value);
|
||||||
String result = writer.toString();
|
String result = writer.toString();
|
||||||
@@ -212,13 +212,7 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
@Override
|
@Override
|
||||||
public String convertMapTo(final Object... values) {
|
public String convertMapTo(final Object... values) {
|
||||||
if (values == null) return "null";
|
if (values == null) return "null";
|
||||||
return convertMapTo((BiFunction) null, values);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String convertMapTo(BiFunction<Attribute, Object, Object> fieldFunc, final Object... values) {
|
|
||||||
if (values == null) return "null";
|
|
||||||
final JsonWriter writer = funcWrite(writerPool.get().tiny(tiny), fieldFunc);
|
|
||||||
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
||||||
String result = writer.toString();
|
String result = writer.toString();
|
||||||
writerPool.accept(writer);
|
writerPool.accept(writer);
|
||||||
@@ -227,7 +221,7 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
public void convertTo(final OutputStream out, final Object value) {
|
public void convertTo(final OutputStream out, final Object value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
new JsonStreamWriter(tiny, out).writeNull();
|
pollJsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
convertTo(out, value.getClass(), value);
|
convertTo(out, value.getClass(), value);
|
||||||
}
|
}
|
||||||
@@ -236,9 +230,9 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
public void convertTo(final OutputStream out, final Type type, final Object value) {
|
public void convertTo(final OutputStream out, final Type type, final Object value) {
|
||||||
if (type == null) return;
|
if (type == null) return;
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
new JsonStreamWriter(tiny, out).writeNull();
|
pollJsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
final JsonWriter writer = writerPool.get().tiny(tiny);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
writer.specify(type);
|
writer.specify(type);
|
||||||
factory.loadEncoder(type).convertTo(writer, value);
|
factory.loadEncoder(type).convertTo(writer, value);
|
||||||
byte[] bs = writer.toBytes();
|
byte[] bs = writer.toBytes();
|
||||||
@@ -253,9 +247,9 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
public void convertMapTo(final OutputStream out, final Object... values) {
|
public void convertMapTo(final OutputStream out, final Object... values) {
|
||||||
if (values == null) {
|
if (values == null) {
|
||||||
new JsonStreamWriter(tiny, out).writeNull();
|
pollJsonWriter(out).writeNull();
|
||||||
} else {
|
} else {
|
||||||
final JsonWriter writer = writerPool.get().tiny(tiny);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
||||||
byte[] bs = writer.toBytes();
|
byte[] bs = writer.toBytes();
|
||||||
writerPool.accept(writer);
|
writerPool.accept(writer);
|
||||||
@@ -269,13 +263,8 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
||||||
return convertTo(supplier, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
JsonByteBufferWriter out = funcWrite(new JsonByteBufferWriter(tiny, null, supplier), fieldFunc);
|
JsonByteBufferWriter out = pollJsonWriter(supplier);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
@@ -286,13 +275,8 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value) {
|
||||||
return convertTo(supplier, type, (BiFunction) null, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, BiFunction<Attribute, Object, Object> fieldFunc, final Object value) {
|
|
||||||
if (supplier == null || type == null) return null;
|
if (supplier == null || type == null) return null;
|
||||||
JsonByteBufferWriter out = funcWrite(new JsonByteBufferWriter(tiny, null, supplier), fieldFunc);
|
JsonByteBufferWriter out = pollJsonWriter(supplier);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
@@ -304,13 +288,8 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
||||||
return convertMapTo(supplier, (BiFunction) null, values);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, BiFunction<Attribute, Object, Object> fieldFunc, final Object... values) {
|
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
JsonByteBufferWriter out = funcWrite(new JsonByteBufferWriter(tiny, null, supplier), fieldFunc);
|
JsonByteBufferWriter out = pollJsonWriter(supplier);
|
||||||
if (values == null) {
|
if (values == null) {
|
||||||
out.writeNull();
|
out.writeNull();
|
||||||
} else {
|
} else {
|
||||||
@@ -352,14 +331,14 @@ public final class JsonConvert extends TextConvert<JsonReader, JsonWriter> {
|
|||||||
|
|
||||||
public JsonWriter convertToWriter(final Type type, final Object value) {
|
public JsonWriter convertToWriter(final Type type, final Object value) {
|
||||||
if (type == null) return null;
|
if (type == null) return null;
|
||||||
final JsonWriter writer = writerPool.get().tiny(tiny);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
writer.specify(type);
|
writer.specify(type);
|
||||||
factory.loadEncoder(type).convertTo(writer, value);
|
factory.loadEncoder(type).convertTo(writer, value);
|
||||||
return writer;
|
return writer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonWriter convertMapToWriter(final Object... values) {
|
public JsonWriter convertMapToWriter(final Object... values) {
|
||||||
final JsonWriter writer = writerPool.get().tiny(tiny);
|
final JsonWriter writer = pollJsonWriter();
|
||||||
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
||||||
return writer;
|
return writer;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user