This commit is contained in:
redkale
2024-10-01 08:56:17 +08:00
parent 00c22d4a72
commit e8a53d6b24
20 changed files with 466 additions and 192 deletions

View File

@@ -85,6 +85,7 @@ public class GenericEntityTest {
byte[] bs = convert.convertTo(ENTITY_TYPE, bean);
Utility.println("proto0 ", bs);
String rs = convert.convertFrom(ENTITY_TYPE, bs).toString();
System.out.println("反解析: " + rs);
Assertions.assertEquals(JSON, rs);
}

View File

@@ -0,0 +1,118 @@
/*
* Copyright (c) 2016-2116 Redkale
* All rights reserved.
*/
package org.redkale.test.convert.pb;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.redkale.convert.ConvertColumn;
import org.redkale.convert.json.JsonConvert;
import org.redkale.convert.pb.ProtobufConvert;
import org.redkale.util.Utility;
/**
*
* @author zhangjx
*/
public class RequiredBeanTest {
public static void main(String[] args) throws Throwable {
RequiredBeanTest test = new RequiredBeanTest();
test.run();
}
@Test
public void run() throws Exception {
RequiredBean bean = RequiredBean.create();
ProtobufConvert convert = ProtobufConvert.root();
byte[] bytes = convert.convertTo(bean);
System.out.println("序列化0: 26.[0x08,0x0c,0x12,0x03,0x61,0x61,0x61,0x12,0x03,0x62,0x62,0x62,"
+ "0x1a,0x03,0x63,0x63,0x63,0x1a,0x03,0x64,0x64,0x64,0x22,0x02,0x02,0x04]");
Utility.println("序列化0: ", bytes);
RequiredArray array = new RequiredArray();
array.beans = new RequiredBean[] {bean};
byte[] bytes2 = convert.convertTo(array);
System.out.println("序列化s: 29.[0x1f,0x0a,0x1a,0x08,0x0c,0x12,0x03,0x61,0x61,0x61,0x12,0x03,0x62,0x62,0x62,"
+ "0x1a,0x03,0x63,0x63,0x63,0x1a,0x03,0x64,0x64,0x64,0x22,0x02,0x02,0x04]");
Utility.println("序列化s: ", bytes2);
System.out.println("-----------------------------------------------");
String jsons1 = JsonConvert.root().convertTo(array);
RequiredArray array2 = convert.convertFrom(RequiredArray.class, bytes2);
String jsons2 = JsonConvert.root().convertTo(array2);
System.out.println(jsons1);
System.out.println(jsons2);
Assertions.assertEquals(jsons1, jsons2);
}
public static class RequiredArray {
@ConvertColumn(index = 1)
private RequiredBean[] beans;
public RequiredBean[] getBeans() {
return beans;
}
public void setBeans(RequiredBean[] beans) {
this.beans = beans;
}
}
public static class RequiredBean {
public static RequiredBean create() {
RequiredBean bean = new RequiredBean();
bean.id = 6;
bean.strs1 = new String[] {"aaa", "bbb"};
bean.strs2 = List.of("ccc", "ddd");
bean.zbig1 = List.of(new AtomicInteger(1), new AtomicInteger(2));
return bean;
}
@ConvertColumn(index = 1)
private int id;
@ConvertColumn(index = 2)
private String[] strs1;
@ConvertColumn(index = 3)
private List<String> strs2;
@ConvertColumn(index = 4)
private List<AtomicInteger> zbig1;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String[] getStrs1() {
return strs1;
}
public void setStrs1(String[] strs1) {
this.strs1 = strs1;
}
public List<String> getStrs2() {
return strs2;
}
public void setStrs2(List<String> strs2) {
this.strs2 = strs2;
}
public List<AtomicInteger> getZbig1() {
return zbig1;
}
public void setZbig1(List<AtomicInteger> zbig1) {
this.zbig1 = zbig1;
}
}
}

View File

@@ -6,10 +6,10 @@ package org.redkale.test.convert.pb;
import java.lang.reflect.Type;
import org.redkale.convert.EnMember;
import org.redkale.convert.ObjectEncoder;
import org.redkale.convert.SimpledCoder;
import org.redkale.convert.pb.ProtobufDynEncoder;
import org.redkale.convert.pb.ProtobufFactory;
import org.redkale.convert.pb.ProtobufObjectEncoder;
import org.redkale.convert.pb.ProtobufWriter;
/**
@@ -21,16 +21,16 @@ public class UserBeanProtoDynEncoder extends ProtobufDynEncoder<UserBean> {
protected SimpledCoder scaleSimpledCoder;
protected EnMember mapEnMember;
public UserBeanProtoDynEncoder(ProtobufFactory factory, Type type, ObjectEncoder objectEncoder) {
public UserBeanProtoDynEncoder(ProtobufFactory factory, Type type, ProtobufObjectEncoder objectEncoder) {
super(factory, type, objectEncoder);
}
@Override
public void convertTo(ProtobufWriter out0, UserBean value) {
public void convertTo(ProtobufWriter out0, EnMember parentMember, UserBean value) {
if (value == null) {
return;
}
ProtobufWriter out = objectWriter(out0, value);
ProtobufWriter out = objectWriter(out0, parentMember, value);
out.writeObjectB(value);
out.writeFieldValue(1, value.getSeqid());
out.writeFieldValue(2, value.getName());