diff --git a/src/main/java/org/jfaster/mango/invoker/transfer/PropertyTransferFactory.java b/src/main/java/org/jfaster/mango/invoker/transfer/PropertyTransferFactory.java new file mode 100644 index 00000000..53665131 --- /dev/null +++ b/src/main/java/org/jfaster/mango/invoker/transfer/PropertyTransferFactory.java @@ -0,0 +1,29 @@ +package org.jfaster.mango.invoker.transfer; + +import org.jfaster.mango.invoker.PropertyTransfer; +import org.jfaster.mango.invoker.transfer.enums.EnumToIntegerTransfer; +import org.jfaster.mango.invoker.transfer.enums.EnumToStringTransfer; +import org.jfaster.mango.invoker.transfer.json.ObjectToFastjsonTransfer; +import org.jfaster.mango.invoker.transfer.json.ObjectToGsonTransfer; + +public class PropertyTransferFactory { + + public PropertyTransfer makeInstanceFromFactory(String type) { + if (type.equals("ObjectToFastjsonTransfer")) { + return new ObjectToFastjsonTransfer(); + } else if (type.equals("ObjectToGsonTransfer")) { + return new ObjectToGsonTransfer(); + } else if (type.equals("IntegerListToStringTransfer")) { + return new IntegerListToStringTransfer(); + } else if (type.equals("LongListToStringTransfer")) { + return new LongListToStringTransfer(); + } else if (type.equals("StringListToStringTransfer")) { + return new StringListToStringTransfer(); + } else if (type.equals("EnumToIntegerTransfer")) { + return new EnumToIntegerTransfer(); + } else if (type.equals("EnumToStringTransfer")) { + return new EnumToStringTransfer(); + } else return + null; + } +} diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/IntegerListToStringTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/IntegerListToStringTransferTest.java index a4b495d5..d6ddd5d8 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/IntegerListToStringTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/IntegerListToStringTransferTest.java @@ -32,7 +32,7 @@ public class IntegerListToStringTransferTest { @Test public void propertyToColumn() { - IntegerListToStringTransfer transfer = new IntegerListToStringTransfer(); + IntegerListToStringTransfer transfer = (IntegerListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("IntegerListToStringTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); assertThat(transfer.propertyToColumn(Lists.newArrayList()), equalTo("")); assertThat(transfer.propertyToColumn(Lists.newArrayList(1,2,3)), equalTo("1,2,3")); @@ -40,7 +40,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - IntegerListToStringTransfer transfer = new IntegerListToStringTransfer(); + IntegerListToStringTransfer transfer = (IntegerListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("IntegerListToStringTransfer"); assertThat(transfer.columnToProperty(null, null), nullValue()); assertThat(transfer.columnToProperty("", null), hasSize(0)); List r = transfer.columnToProperty("1,2,3", null); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/LongListToStringTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/LongListToStringTransferTest.java index 30d3415f..6afc858d 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/LongListToStringTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/LongListToStringTransferTest.java @@ -32,7 +32,7 @@ public class LongListToStringTransferTest { @Test public void propertyToColumn() { - LongListToStringTransfer transfer = new LongListToStringTransfer(); + LongListToStringTransfer transfer = (LongListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("LongListToStringTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); assertThat(transfer.propertyToColumn(Lists.newArrayList()), equalTo("")); assertThat(transfer.propertyToColumn(Lists.newArrayList(1L,2L,3L)), equalTo("1,2,3")); @@ -40,7 +40,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - LongListToStringTransfer transfer = new LongListToStringTransfer(); + LongListToStringTransfer transfer = (LongListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("LongListToStringTransfer"); assertThat(transfer.columnToProperty(null, null), nullValue()); assertThat(transfer.columnToProperty("", null), hasSize(0)); List r = transfer.columnToProperty("1,2,3", null); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/StringListToStringTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/StringListToStringTransferTest.java index 3862fb6d..0f7ac056 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/StringListToStringTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/StringListToStringTransferTest.java @@ -32,7 +32,7 @@ public class StringListToStringTransferTest { @Test public void propertyToColumn() { - StringListToStringTransfer transfer = new StringListToStringTransfer(); + StringListToStringTransfer transfer = (StringListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("StringListToStringTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); assertThat(transfer.propertyToColumn(Lists.newArrayList()), equalTo("")); assertThat(transfer.propertyToColumn(Lists.newArrayList("1", "2", "3")), equalTo("1,2,3")); @@ -40,7 +40,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - StringListToStringTransfer transfer = new StringListToStringTransfer(); + StringListToStringTransfer transfer = (StringListToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("StringListToStringTransfer"); assertThat(transfer.columnToProperty(null, null), nullValue()); assertThat(transfer.columnToProperty("", null), hasSize(0)); List r = transfer.columnToProperty("1,2,3", null); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToIntegerTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToIntegerTransferTest.java index 93b81a6d..94e763be 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToIntegerTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToIntegerTransferTest.java @@ -16,6 +16,7 @@ package org.jfaster.mango.invoker.transfer.enums; +import org.jfaster.mango.invoker.transfer.PropertyTransferFactory; import org.junit.Test; import static org.hamcrest.CoreMatchers.equalTo; @@ -29,7 +30,7 @@ public class EnumToIntegerTransferTest { @Test public void propertyToColumn() { - EnumToIntegerTransfer transfer = new EnumToIntegerTransfer(); + EnumToIntegerTransfer transfer = (EnumToIntegerTransfer) new PropertyTransferFactory().makeInstanceFromFactory("EnumToIntegerTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); assertThat(transfer.propertyToColumn(E.X), equalTo(0)); assertThat(transfer.propertyToColumn(E.Y), equalTo(1)); @@ -38,7 +39,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - EnumToIntegerTransfer transfer = new EnumToIntegerTransfer(); + EnumToIntegerTransfer transfer = (EnumToIntegerTransfer) new PropertyTransferFactory().makeInstanceFromFactory("EnumToIntegerTransfer"); assertThat(transfer.columnToProperty(null, E.class), nullValue()); assertThat(transfer.columnToProperty(0, E.class), equalTo(E.X)); assertThat(transfer.columnToProperty(1, E.class), equalTo(E.Y)); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToStringTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToStringTransferTest.java index 6c504e4f..4698a7c5 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToStringTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/enums/EnumToStringTransferTest.java @@ -16,6 +16,7 @@ package org.jfaster.mango.invoker.transfer.enums; +import org.jfaster.mango.invoker.transfer.PropertyTransferFactory; import org.junit.Test; import static org.hamcrest.CoreMatchers.equalTo; @@ -29,7 +30,7 @@ public class EnumToStringTransferTest { @Test public void propertyToColumn() { - EnumToStringTransfer transfer = new EnumToStringTransfer(); + EnumToStringTransfer transfer = (EnumToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("EnumToStringTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); assertThat(transfer.propertyToColumn(E.X), equalTo("X")); assertThat(transfer.propertyToColumn(E.Y), equalTo("Y")); @@ -38,7 +39,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - EnumToStringTransfer transfer = new EnumToStringTransfer(); + EnumToStringTransfer transfer = (EnumToStringTransfer) new PropertyTransferFactory().makeInstanceFromFactory("EnumToStringTransfer"); assertThat(transfer.columnToProperty(null, E.class), nullValue()); assertThat(transfer.columnToProperty("X", E.class), equalTo(E.X)); assertThat(transfer.columnToProperty("Y", E.class), equalTo(E.Y)); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToFastjsonTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToFastjsonTransferTest.java index 72107368..8ed9ad06 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToFastjsonTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToFastjsonTransferTest.java @@ -18,6 +18,7 @@ import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; +import org.jfaster.mango.invoker.transfer.PropertyTransferFactory; import org.jfaster.mango.util.reflect.TypeToken; import org.junit.Test; @@ -35,7 +36,7 @@ public class ObjectToFastjsonTransferTest { @Test public void propertyToColumn() { - ObjectToFastjsonTransfer transfer = new ObjectToFastjsonTransfer(); + ObjectToFastjsonTransfer transfer = (ObjectToFastjsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToFastjsonTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); List list = Lists.newArrayList(1, 2, 3); assertThat(transfer.propertyToColumn(list), equalTo(JSON.toJSONString(list))); @@ -43,7 +44,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - ObjectToFastjsonTransfer transfer = new ObjectToFastjsonTransfer(); + ObjectToFastjsonTransfer transfer = (ObjectToFastjsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToFastjsonTransfer"); List list = Lists.newArrayList(1, 2, 3); Type listType = new TypeToken>(){}.getType(); assertThat(transfer.columnToProperty(null, listType), nullValue()); diff --git a/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToGsonTransferTest.java b/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToGsonTransferTest.java index c8e591dd..6d565a5a 100644 --- a/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToGsonTransferTest.java +++ b/src/test/java/org/jfaster/mango/invoker/transfer/json/ObjectToGsonTransferTest.java @@ -18,6 +18,7 @@ import com.google.common.collect.Lists; import com.google.gson.Gson; +import org.jfaster.mango.invoker.transfer.PropertyTransferFactory; import org.jfaster.mango.util.reflect.TypeToken; import org.junit.Test; @@ -35,7 +36,7 @@ public class ObjectToGsonTransferTest { @Test public void propertyToColumn() { - ObjectToGsonTransfer transfer = new ObjectToGsonTransfer(); + ObjectToGsonTransfer transfer = (ObjectToGsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToGsonTransfer"); assertThat(transfer.propertyToColumn(null), nullValue()); List list = Lists.newArrayList(1, 2, 3); assertThat(transfer.propertyToColumn(list), equalTo(new Gson().toJson(list))); @@ -43,7 +44,7 @@ public void propertyToColumn() { @Test public void columnToProperty() { - ObjectToGsonTransfer transfer = new ObjectToGsonTransfer(); + ObjectToGsonTransfer transfer = (ObjectToGsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToGsonTransfer"); List list = Lists.newArrayList(1, 2, 3); Type listType = new TypeToken>(){}.getType(); assertThat(transfer.columnToProperty(null, listType), nullValue());