This commit is contained in:
redkale
2024-10-16 17:07:54 +08:00
parent 687606282a
commit a989f1af9f
7 changed files with 70 additions and 36 deletions

View File

@@ -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;

View File

@@ -14,7 +14,7 @@ public class _DyncFortuneJsonEncoder extends JsonDynEncoder<Fortune> {
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<Fortune> {
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('}');
}
}

View File

@@ -14,7 +14,7 @@ public class _DyncMessageJsonEncoder extends JsonDynEncoder<Message> {
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<Message> {
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('}');
}
}

View File

@@ -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<User> {
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('}');
}
}

View File

@@ -13,8 +13,9 @@ import org.redkale.convert.json.*;
public class _DyncWorldJsonEncoder extends JsonDynEncoder<World> {
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<World> {
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('}');
}
}

View File

@@ -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;

View File

@@ -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;