Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add PropertyTransferFactory to implement factory pattern #70

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ 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"));
}

@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<Integer> r = transfer.columnToProperty("1,2,3", null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ 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"));
}

@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<Long> r = transfer.columnToProperty("1,2,3", null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ 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"));
}

@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<String> r = transfer.columnToProperty("1,2,3", null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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));
Expand All @@ -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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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"));
Expand All @@ -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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -35,15 +36,15 @@ public class ObjectToFastjsonTransferTest {

@Test
public void propertyToColumn() {
ObjectToFastjsonTransfer transfer = new ObjectToFastjsonTransfer();
ObjectToFastjsonTransfer transfer = (ObjectToFastjsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToFastjsonTransfer");
assertThat(transfer.propertyToColumn(null), nullValue());
List<Integer> list = Lists.newArrayList(1, 2, 3);
assertThat(transfer.propertyToColumn(list), equalTo(JSON.toJSONString(list)));
}

@Test
public void columnToProperty() {
ObjectToFastjsonTransfer transfer = new ObjectToFastjsonTransfer();
ObjectToFastjsonTransfer transfer = (ObjectToFastjsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToFastjsonTransfer");
List<Integer> list = Lists.newArrayList(1, 2, 3);
Type listType = new TypeToken<List<Integer>>(){}.getType();
assertThat(transfer.columnToProperty(null, listType), nullValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -35,15 +36,15 @@ public class ObjectToGsonTransferTest {

@Test
public void propertyToColumn() {
ObjectToGsonTransfer transfer = new ObjectToGsonTransfer();
ObjectToGsonTransfer transfer = (ObjectToGsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToGsonTransfer");
assertThat(transfer.propertyToColumn(null), nullValue());
List<Integer> list = Lists.newArrayList(1, 2, 3);
assertThat(transfer.propertyToColumn(list), equalTo(new Gson().toJson(list)));
}

@Test
public void columnToProperty() {
ObjectToGsonTransfer transfer = new ObjectToGsonTransfer();
ObjectToGsonTransfer transfer = (ObjectToGsonTransfer) new PropertyTransferFactory().makeInstanceFromFactory("ObjectToGsonTransfer");
List<Integer> list = Lists.newArrayList(1, 2, 3);
Type listType = new TypeToken<List<Integer>>(){}.getType();
assertThat(transfer.columnToProperty(null, listType), nullValue());
Expand Down