Copier增加OPTION_ALLOW_TYPE_CAST配置项

This commit is contained in:
redkale
2023-08-11 16:11:29 +08:00
parent 52a1fa9f3a
commit e8e9b46206
12 changed files with 761 additions and 342 deletions

View File

@@ -29,6 +29,12 @@ public class CopierTest {
test.run10();
test.run11();
test.run12();
test.run13();
test.run14();
test.run15();
test.run16();
test.run17();
test.run18();
}
@Test
@@ -42,6 +48,7 @@ public class CopierTest {
System.out.println(JsonConvert.root().convertTo(map));
TreeMap rs = Copier.copy(bean, TreeMap.class);
rs.remove("remark");
rs.remove("seqno");
Assertions.assertEquals(bean.toString(), JsonConvert.root().convertTo(rs));
}
@@ -206,4 +213,144 @@ public class CopierTest {
System.out.println(JsonConvert.root().convertTo(bean));
Assertions.assertTrue(bean.getName() == null);
}
@Test
public void run13() throws Exception {
TestBean bean = new TestBean();
bean.setSeqno(6666L);
//public String remark;
//private Long seqno;
TestX2Bean destBean = new TestX2Bean();
//public int remark;
//private String seqno;
Copier.load(TestBean.class, TestX2Bean.class, Copier.OPTION_ALLOW_TYPE_CAST).apply(bean, destBean);
System.out.println(JsonConvert.root().convertTo(destBean));
Assertions.assertEquals("6666", destBean.getSeqno());
}
@Test
public void run14() throws Exception {
TestBean bean = new TestBean();
bean.remark = "444";
TestX2Bean destBean = new TestX2Bean();
Copier.load(TestBean.class, TestX2Bean.class, Copier.OPTION_SKIP_NULL_VALUE | Copier.OPTION_ALLOW_TYPE_CAST).apply(bean, destBean);
System.out.println(JsonConvert.root().convertTo(destBean));
Assertions.assertTrue(destBean.remark == 444);
}
@Test
public void run15() throws Exception {
Bean1 bean1 = new Bean1();
bean1.intval = "444";
Bean2 bean2 = new Bean2();
Copier.load(Bean1.class, Bean2.class, Copier.OPTION_SKIP_NULL_VALUE | Copier.OPTION_ALLOW_TYPE_CAST).apply(bean1, bean2);
System.out.println(JsonConvert.root().convertTo(bean2));
Assertions.assertTrue(bean2.intval == 444);
}
@Test
public void run16() throws Exception {
Bean3 bean1 = new Bean3();
bean1.setSeqno(444L);
Bean4 bean2 = new Bean4();
Copier.load(Bean3.class, Bean4.class, Copier.OPTION_SKIP_NULL_VALUE | Copier.OPTION_ALLOW_TYPE_CAST).apply(bean1, bean2);
System.out.println(JsonConvert.root().convertTo(bean2));
Assertions.assertEquals("444", bean2.getSeqno());
}
@Test
public void run17() throws Exception {
Bean4 bean1 = new Bean4();
bean1.setSeqno("444");
Bean5 bean2 = new Bean5();
Copier.load(Bean4.class, Bean5.class, Copier.OPTION_SKIP_NULL_VALUE | Copier.OPTION_ALLOW_TYPE_CAST).apply(bean1, bean2);
System.out.println(JsonConvert.root().convertTo(bean2));
Assertions.assertEquals(444, bean2.getSeqno());
}
@Test
public void run18() throws Exception {
Bean4 bean1 = new Bean4();
bean1.setSeqno("444");
Bean5 bean2 = new Bean5();
Copier.load(Bean4.class, Bean5.class, Copier.OPTION_SKIP_NULL_VALUE).apply(bean1, bean2);
System.out.println(JsonConvert.root().convertTo(bean2));
Assertions.assertEquals(0, bean2.getSeqno());
System.out.println("------------------------------------------");
}
public class Bean1 {
public String intval;
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}
public class Bean2 {
public int intval;
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}
public class Bean3 {
private Long seqno;
public Long getSeqno() {
return seqno;
}
public void setSeqno(Long seqno) {
this.seqno = seqno;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}
public class Bean4 {
private String seqno;
public String getSeqno() {
return seqno;
}
public void setSeqno(String seqno) {
this.seqno = seqno;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}
public class Bean5 {
private int seqno;
public int getSeqno() {
return seqno;
}
public void setSeqno(int seqno) {
this.seqno = seqno;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}
}

View File

@@ -21,6 +21,8 @@ public class TestBean extends TestABean implements TestInterface {
private Map<String, String> map;
public String remark;
private Long seqno;
public String getName() {
return name;
@@ -46,6 +48,14 @@ public class TestBean extends TestABean implements TestInterface {
this.map = map;
}
public Long getSeqno() {
return seqno;
}
public void setSeqno(Long seqno) {
this.seqno = seqno;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);

View File

@@ -0,0 +1,62 @@
/*
*
*/
package org.redkale.test.util;
import java.util.Map;
import org.redkale.convert.json.JsonConvert;
/**
*
* @author zhangjx
*/
public class TestX2Bean implements TestInterface {
private String name;
private int id;
private Map<String, String> map;
public int remark;
private String seqno;
public String getSeqno() {
return seqno;
}
public void setSeqno(String seqno) {
this.seqno = seqno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return JsonConvert.root().convertTo(this);
}
}