diff --git a/src/test/java/org/redkale/test/convert/pb/User.java b/src/test/java/org/redkale/test/convert/User.java similarity index 97% rename from src/test/java/org/redkale/test/convert/pb/User.java rename to src/test/java/org/redkale/test/convert/User.java index 163827bc2..4d7391983 100644 --- a/src/test/java/org/redkale/test/convert/pb/User.java +++ b/src/test/java/org/redkale/test/convert/User.java @@ -2,7 +2,7 @@ * Copyright (c) 2016-2116 Redkale * All rights reserved. */ -package org.redkale.test.convert.pb; +package org.redkale.test.convert; import java.util.Date; import org.redkale.convert.ConvertColumn; diff --git a/src/test/java/org/redkale/test/convert/json/_DyncFortuneJsonEncoder.java b/src/test/java/org/redkale/test/convert/json/_DyncFortuneJsonEncoder.java index a04521b3a..32edc0eb8 100644 --- a/src/test/java/org/redkale/test/convert/json/_DyncFortuneJsonEncoder.java +++ b/src/test/java/org/redkale/test/convert/json/_DyncFortuneJsonEncoder.java @@ -14,7 +14,7 @@ public class _DyncFortuneJsonEncoder extends JsonDynEncoder { protected final byte[] idFieldBytes = "\"id\":".getBytes(); - protected final byte[] messageCommaFieldBytes = ",\"message\":".getBytes(); + protected final char[] idFieldChars = "\"id\":".toCharArray(); public _DyncFortuneJsonEncoder(JsonFactory factory, Type type, ObjectEncoder objectEncoderSelf) { super(factory, type, objectEncoderSelf); @@ -30,18 +30,8 @@ public class _DyncFortuneJsonEncoder extends JsonDynEncoder { objectEncoderSelf.convertTo(out, value); return; } - out.writeTo('{'); - - out.writeTo(idFieldBytes); - out.writeInt(value.getId()); - - String message = value.getMessage(); - if (message != null) { - out.writeTo(messageCommaFieldBytes); - out.writeString(message); - } - + out.writeFieldIntValue(idFieldBytes, idFieldChars, false, value.getId()); out.writeTo('}'); } } diff --git a/src/test/java/org/redkale/test/convert/json/_DyncMessageJsonEncoder.java b/src/test/java/org/redkale/test/convert/json/_DyncMessageJsonEncoder.java index d81241a03..183007ee1 100644 --- a/src/test/java/org/redkale/test/convert/json/_DyncMessageJsonEncoder.java +++ b/src/test/java/org/redkale/test/convert/json/_DyncMessageJsonEncoder.java @@ -14,7 +14,7 @@ public class _DyncMessageJsonEncoder extends JsonDynEncoder { protected final byte[] messageFieldBytes = "\"message\":".getBytes(); - protected final byte[] messageCommaFieldBytes = ",\"message\":".getBytes(); + protected final char[] messageFieldChars = ",\"message\":".toCharArray(); public _DyncMessageJsonEncoder(JsonFactory factory, Type type, ObjectEncoder objectEncoderSelf) { super(factory, type, objectEncoderSelf); @@ -30,19 +30,8 @@ public class _DyncMessageJsonEncoder extends JsonDynEncoder { objectEncoderSelf.convertTo(out, value); return; } - out.writeTo('{'); - boolean comma = false; - String message = value.getMessage(); - if (message != null) { - if (comma) { - out.writeTo(messageCommaFieldBytes); - } else { - out.writeTo(messageFieldBytes); - comma = true; - } - out.writeLatin1To(true, message); // out.writeString(message); - } + out.writeFieldStandardStringValue(messageFieldBytes, messageFieldChars, false, value.getMessage()); out.writeTo('}'); } } diff --git a/src/test/java/org/redkale/test/convert/json/_DyncUserJsonEncoder.java b/src/test/java/org/redkale/test/convert/json/_DyncUserJsonEncoder.java new file mode 100644 index 000000000..bd1e883fa --- /dev/null +++ b/src/test/java/org/redkale/test/convert/json/_DyncUserJsonEncoder.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2016-2116 Redkale + * All rights reserved. + */ +package org.redkale.test.convert.json; + +import java.lang.reflect.Type; +import org.redkale.convert.Encodeable; +import org.redkale.convert.ObjectEncoder; +import org.redkale.convert.json.JsonDynEncoder; +import org.redkale.convert.json.JsonFactory; +import org.redkale.convert.json.JsonWriter; +import org.redkale.test.convert.User; + +/** + * + * @author zhangjx + */ +public class _DyncUserJsonEncoder extends JsonDynEncoder { + protected final byte[] ageFieldBytes = "\"age\":".getBytes(); + protected final char[] ageFieldChars = "\"age\":".toCharArray(); + protected final byte[] createTimeFieldBytes = "\"createTime\":".getBytes(); + protected final char[] createTimeFieldChars = "\"createTime\":".toCharArray(); + protected Encodeable createTimeEncoder; + protected final byte[] idFieldBytes = "\"id\":".getBytes(); + protected final char[] idFieldChars = "\"id\":".toCharArray(); + protected final byte[] nameFieldBytes = "\"name\":".getBytes(); + protected final char[] nameFieldChars = "\"name\":".toCharArray(); + protected final byte[] sexFieldBytes = "\"sex\":".getBytes(); + protected final char[] sexFieldChars = "\"sex\":".toCharArray(); + protected final byte[] nickNameFieldBytes = "\"nickName\":".getBytes(); + protected final char[] nickNameFieldChars = "\"nickName\":".toCharArray(); + + public _DyncUserJsonEncoder(JsonFactory factory, Type type, ObjectEncoder objectEncoderSelf) { + super(factory, type, objectEncoderSelf); + } + + @Override + public void convertTo(JsonWriter out, User value) { + if (value == null) { + out.writeObjectNull((Class) null); + return; + } else if (!out.isExtFuncEmpty()) { + this.objectEncoderSelf.convertTo(out, value); + return; + } + out.writeTo('{'); + boolean comma = false; + comma = out.writeFieldIntValue(ageFieldBytes, ageFieldChars, comma, value.getAge()); + comma = out.writeFieldObjectValue( + createTimeFieldBytes, createTimeFieldChars, comma, this.createTimeEncoder, value.getCreateTime()); + comma = out.writeFieldLongValue(idFieldBytes, idFieldChars, comma, value.getId()); + comma = out.writeFieldStringValue(nameFieldBytes, nameFieldChars, comma, value.getName()); + comma = out.writeFieldStringValue(sexFieldBytes, sexFieldChars, comma, value.getSex()); + comma = out.writeFieldStringValue(nickNameFieldBytes, nickNameFieldChars, comma, value.getNickName()); + out.writeTo('}'); + } +} diff --git a/src/test/java/org/redkale/test/convert/json/_DyncWorldJsonEncoder.java b/src/test/java/org/redkale/test/convert/json/_DyncWorldJsonEncoder.java index 86a33b9b2..d53fe1659 100644 --- a/src/test/java/org/redkale/test/convert/json/_DyncWorldJsonEncoder.java +++ b/src/test/java/org/redkale/test/convert/json/_DyncWorldJsonEncoder.java @@ -13,8 +13,9 @@ import org.redkale.convert.json.*; public class _DyncWorldJsonEncoder extends JsonDynEncoder { protected final byte[] idFieldBytes = "\"id\":".getBytes(); - + protected final char[] idFieldChars = "\"id\":".toCharArray(); protected final byte[] randomNumberFieldBytes = ",\"randomNumber\":".getBytes(); + protected final char[] randomNumberFieldChars = ",\"randomNumber\":".toCharArray(); public _DyncWorldJsonEncoder(JsonFactory factory, Type type, ObjectEncoder objectEncoderSelf) { super(factory, type, objectEncoderSelf); @@ -33,13 +34,8 @@ public class _DyncWorldJsonEncoder extends JsonDynEncoder { out.writeTo('{'); boolean comma = false; - - out.writeTo(idFieldBytes); - out.writeInt(value.getId()); - - out.writeTo(randomNumberFieldBytes); - out.writeInt(value.getRandomNumber()); - + comma = out.writeFieldIntValue(idFieldBytes, idFieldChars, comma, value.getId()); + comma = out.writeFieldIntValue(randomNumberFieldBytes, randomNumberFieldChars, comma, value.getRandomNumber()); out.writeTo('}'); } } diff --git a/src/test/java/org/redkale/test/convert/pb/UserTest.java b/src/test/java/org/redkale/test/convert/pb/UserTest.java index 877fb1643..009abece4 100644 --- a/src/test/java/org/redkale/test/convert/pb/UserTest.java +++ b/src/test/java/org/redkale/test/convert/pb/UserTest.java @@ -4,6 +4,7 @@ */ package org.redkale.test.convert.pb; +import org.redkale.test.convert.User; import java.io.Serializable; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/org/redkale/test/util/SelectColumnTest.java b/src/test/java/org/redkale/test/util/SelectColumnTest.java index 9611341da..d9678e3fc 100644 --- a/src/test/java/org/redkale/test/util/SelectColumnTest.java +++ b/src/test/java/org/redkale/test/util/SelectColumnTest.java @@ -23,7 +23,7 @@ public class SelectColumnTest { @Test public void run1() throws Exception { - SelectColumn sel = SelectColumn.includes(User::getUserId, User::getUserName); + SelectColumn sel = SelectColumn.includes(UserEntry::getUserId, UserEntry::getUserName); SelectColumn sel2 = SelectColumn.includes("userId", "userName"); Assertions.assertTrue(sel.equals(sel2)); sel.setPatterns(new Pattern[] {Pattern.compile("aaa")}); @@ -34,7 +34,7 @@ public class SelectColumnTest { Assertions.assertEquals("aaa", pattern.pattern()); } - public static class User { + public static class UserEntry { private long userId;