Convert 增加 convertMapTo 系列方法, HttpResponse增加 finishMapJson 系列方法
This commit is contained in:
@@ -40,4 +40,7 @@ public abstract class Convert<R extends Reader, W extends Writer> {
|
|||||||
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value);
|
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value);
|
||||||
|
|
||||||
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value);
|
public abstract ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Type type, final Object value);
|
||||||
|
|
||||||
|
public abstract ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,6 +164,15 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public byte[] convertMapTo(final Object... values) {
|
||||||
|
if (values == null) return null;
|
||||||
|
final BsonWriter out = writerPool.get().tiny(tiny);
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
byte[] result = out.toArray();
|
||||||
|
writerPool.offer(out);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
new BsonStreamWriter(tiny, out).writeNull();
|
||||||
@@ -181,6 +190,14 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void convertMapTo(final OutputStream out, final Object... values) {
|
||||||
|
if (values == null) {
|
||||||
|
new BsonStreamWriter(tiny, out).writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(new BsonStreamWriter(tiny, out), values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
@@ -205,6 +222,18 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
|
|||||||
return out.toBuffers();
|
return out.toBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
||||||
|
if (supplier == null) return null;
|
||||||
|
BsonByteBufferWriter out = new BsonByteBufferWriter(tiny, supplier);
|
||||||
|
if (values == null) {
|
||||||
|
out.writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
}
|
||||||
|
return out.toBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
public void convertTo(final BsonWriter writer, final Object value) {
|
public void convertTo(final BsonWriter writer, final Object value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
writer.writeNull();
|
writer.writeNull();
|
||||||
@@ -218,6 +247,14 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
|
|||||||
factory.loadEncoder(type).convertTo(writer, value);
|
factory.loadEncoder(type).convertTo(writer, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void convertMapTo(final BsonWriter writer, final Object... values) {
|
||||||
|
if (values == null) {
|
||||||
|
writer.writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public BsonWriter convertToWriter(final Object value) {
|
public BsonWriter convertToWriter(final Object value) {
|
||||||
if (value == null) return null;
|
if (value == null) return null;
|
||||||
return convertToWriter(value.getClass(), value);
|
return convertToWriter(value.getClass(), value);
|
||||||
@@ -230,4 +267,9 @@ public final class BsonConvert extends Convert<BsonReader, BsonWriter> {
|
|||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BsonWriter convertMapToWriter(final Object... values) {
|
||||||
|
final BsonWriter out = writerPool.get().tiny(tiny);
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,6 +149,15 @@ public final class JsonConvert extends Convert<JsonReader, JsonWriter> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String convertMapTo(final Object... values) {
|
||||||
|
if (values == null) return "null";
|
||||||
|
final JsonWriter out = writerPool.get().tiny(tiny);
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
String result = out.toString();
|
||||||
|
writerPool.offer(out);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
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();
|
new JsonStreamWriter(tiny, out).writeNull();
|
||||||
@@ -166,6 +175,14 @@ public final class JsonConvert extends Convert<JsonReader, JsonWriter> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void convertMapTo(final OutputStream out, final Object... values) {
|
||||||
|
if (values == null) {
|
||||||
|
new JsonStreamWriter(tiny, out).writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(new JsonStreamWriter(tiny, out), values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, final Object value) {
|
||||||
if (supplier == null) return null;
|
if (supplier == null) return null;
|
||||||
@@ -190,6 +207,18 @@ public final class JsonConvert extends Convert<JsonReader, JsonWriter> {
|
|||||||
return out.toBuffers();
|
return out.toBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ByteBuffer[] convertMapTo(final Supplier<ByteBuffer> supplier, final Object... values) {
|
||||||
|
if (supplier == null) return null;
|
||||||
|
JsonByteBufferWriter out = new JsonByteBufferWriter(tiny, null, supplier);
|
||||||
|
if (values == null) {
|
||||||
|
out.writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
}
|
||||||
|
return out.toBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
public void convertTo(final JsonWriter writer, final Object value) {
|
public void convertTo(final JsonWriter writer, final Object value) {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
writer.writeNull();
|
writer.writeNull();
|
||||||
@@ -207,6 +236,14 @@ public final class JsonConvert extends Convert<JsonReader, JsonWriter> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void convertMapTo(final JsonWriter writer, final Object... values) {
|
||||||
|
if (values == null) {
|
||||||
|
writer.writeNull();
|
||||||
|
} else {
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(writer, values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public JsonWriter convertToWriter(final Object value) {
|
public JsonWriter convertToWriter(final Object value) {
|
||||||
if (value == null) return null;
|
if (value == null) return null;
|
||||||
return convertToWriter(value.getClass(), value);
|
return convertToWriter(value.getClass(), value);
|
||||||
@@ -218,4 +255,10 @@ public final class JsonConvert extends Convert<JsonReader, JsonWriter> {
|
|||||||
factory.loadEncoder(type).convertTo(out, value);
|
factory.loadEncoder(type).convertTo(out, value);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JsonWriter convertMapToWriter(final Object... values) {
|
||||||
|
final JsonWriter out = writerPool.get().tiny(tiny);
|
||||||
|
((AnyEncoder) factory.getAnyEncoder()).convertMapTo(out, values);
|
||||||
|
return out;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -266,6 +266,18 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
finish(request.getJsonConvert().convertTo(context.getBufferSupplier(), obj));
|
finish(request.getJsonConvert().convertTo(context.getBufferSupplier(), obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将对象数组用Map的形式以JSON格式输出 <br>
|
||||||
|
* 例如: finishMap("a",2,"b",3) 输出结果为 {"a":2,"b":3}
|
||||||
|
*
|
||||||
|
* @param objs 输出对象
|
||||||
|
*/
|
||||||
|
public void finishMapJson(final Object... objs) {
|
||||||
|
this.contentType = "text/plain; charset=utf-8";
|
||||||
|
if (this.recycleListener != null) this.output = objs;
|
||||||
|
finish(request.getJsonConvert().convertMapTo(context.getBufferSupplier(), objs));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将对象以JSON格式输出
|
* 将对象以JSON格式输出
|
||||||
*
|
*
|
||||||
@@ -278,6 +290,19 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
finish(convert.convertTo(context.getBufferSupplier(), obj));
|
finish(convert.convertTo(context.getBufferSupplier(), obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将对象数组用Map的形式以JSON格式输出 <br>
|
||||||
|
* 例如: finishMap("a",2,"b",3) 输出结果为 {"a":2,"b":3}
|
||||||
|
*
|
||||||
|
* @param convert 指定的JsonConvert
|
||||||
|
* @param objs 输出对象
|
||||||
|
*/
|
||||||
|
public void finishMapJson(final JsonConvert convert, final Object... objs) {
|
||||||
|
this.contentType = "text/plain; charset=utf-8";
|
||||||
|
if (this.recycleListener != null) this.output = objs;
|
||||||
|
finish(convert.convertMapTo(context.getBufferSupplier(), objs));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将对象以JSON格式输出
|
* 将对象以JSON格式输出
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user