mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-07 02:45:22 +00:00
Use interfaces, not classes for Java gen
Summary: Not AbstractMap or HashSet, etc. use Map, List, Set Reviewed By: dreiss Test Plan: Generate Java code and build java tests Other Notes: Submitted by Seth Falcon git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665470 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a8de4895f6
commit
22360b2f30
@ -58,9 +58,11 @@ string t_java_generator::java_package() {
|
||||
string t_java_generator::java_type_imports() {
|
||||
return
|
||||
string() +
|
||||
"import java.util.List;\n" +
|
||||
"import java.util.ArrayList;\n" +
|
||||
"import java.util.AbstractMap;\n" +
|
||||
"import java.util.Map;\n" +
|
||||
"import java.util.HashMap;\n" +
|
||||
"import java.util.Set;\n" +
|
||||
"import java.util.HashSet;\n" +
|
||||
"import com.facebook.thrift.*;\n\n";
|
||||
}
|
||||
@ -1775,6 +1777,7 @@ void t_java_generator::generate_serialize_list_element(ofstream& out,
|
||||
string t_java_generator::type_name(t_type* ttype, bool in_container, bool in_init) {
|
||||
// In Java typedefs are just resolved to their real type
|
||||
ttype = get_true_type(ttype);
|
||||
string prefix;
|
||||
|
||||
if (ttype->is_base_type()) {
|
||||
return base_type_name((t_base_type*)ttype, in_container);
|
||||
@ -1782,21 +1785,30 @@ string t_java_generator::type_name(t_type* ttype, bool in_container, bool in_ini
|
||||
return (in_container ? "Integer" : "int");
|
||||
} else if (ttype->is_map()) {
|
||||
t_map* tmap = (t_map*) ttype;
|
||||
string prefix;
|
||||
if (in_init) {
|
||||
prefix = "HashMap";
|
||||
} else {
|
||||
prefix = "AbstractMap";
|
||||
prefix = "Map";
|
||||
}
|
||||
return prefix + "<" +
|
||||
type_name(tmap->get_key_type(), true) + "," +
|
||||
type_name(tmap->get_val_type(), true) + ">";
|
||||
} else if (ttype->is_set()) {
|
||||
t_set* tset = (t_set*) ttype;
|
||||
return "HashSet<" + type_name(tset->get_elem_type(), true) + ">";
|
||||
if (in_init) {
|
||||
prefix = "HashSet<";
|
||||
} else {
|
||||
prefix = "Set<";
|
||||
}
|
||||
return prefix + type_name(tset->get_elem_type(), true) + ">";
|
||||
} else if (ttype->is_list()) {
|
||||
t_list* tlist = (t_list*) ttype;
|
||||
return "ArrayList<" + type_name(tlist->get_elem_type(), true) + ">";
|
||||
if (in_init) {
|
||||
prefix = "ArrayList<";
|
||||
} else {
|
||||
prefix = "List<";
|
||||
}
|
||||
return prefix + type_name(tlist->get_elem_type(), true) + ">";
|
||||
}
|
||||
|
||||
// Check for namespacing
|
||||
|
@ -13,9 +13,11 @@ import com.facebook.thrift.transport.TTransportException;
|
||||
import com.facebook.thrift.protocol.TBinaryProtocol;
|
||||
import com.facebook.thrift.protocol.TJSONProtocol;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
@ -170,7 +172,7 @@ public class TestClient {
|
||||
/**
|
||||
* MAP TEST
|
||||
*/
|
||||
HashMap<Integer,Integer> mapout = new HashMap<Integer,Integer>();
|
||||
Map<Integer,Integer> mapout = new HashMap<Integer,Integer>();
|
||||
for (int i = 0; i < 5; ++i) {
|
||||
mapout.put(i, i-10);
|
||||
}
|
||||
@ -185,7 +187,7 @@ public class TestClient {
|
||||
System.out.print(key + " => " + mapout.get(key));
|
||||
}
|
||||
System.out.print("})");
|
||||
AbstractMap<Integer,Integer> mapin = testClient.testMap(mapout);
|
||||
Map<Integer,Integer> mapin = testClient.testMap(mapout);
|
||||
System.out.print(" = {");
|
||||
first = true;
|
||||
for (int key : mapin.keySet()) {
|
||||
@ -201,7 +203,7 @@ public class TestClient {
|
||||
/**
|
||||
* SET TEST
|
||||
*/
|
||||
HashSet<Integer> setout = new HashSet<Integer>();
|
||||
Set<Integer> setout = new HashSet<Integer>();
|
||||
for (int i = -2; i < 3; ++i) {
|
||||
setout.add(i);
|
||||
}
|
||||
@ -216,7 +218,7 @@ public class TestClient {
|
||||
System.out.print(elem);
|
||||
}
|
||||
System.out.print("})");
|
||||
HashSet<Integer> setin = testClient.testSet(setout);
|
||||
Set<Integer> setin = testClient.testSet(setout);
|
||||
System.out.print(" = {");
|
||||
first = true;
|
||||
for (int elem : setin) {
|
||||
@ -232,7 +234,7 @@ public class TestClient {
|
||||
/**
|
||||
* LIST TEST
|
||||
*/
|
||||
ArrayList<Integer> listout = new ArrayList<Integer>();
|
||||
List<Integer> listout = new ArrayList<Integer>();
|
||||
for (int i = -2; i < 3; ++i) {
|
||||
listout.add(i);
|
||||
}
|
||||
@ -247,7 +249,7 @@ public class TestClient {
|
||||
System.out.print(elem);
|
||||
}
|
||||
System.out.print("})");
|
||||
ArrayList<Integer> listin = testClient.testList(listout);
|
||||
List<Integer> listin = testClient.testList(listout);
|
||||
System.out.print(" = {");
|
||||
first = true;
|
||||
for (int elem : listin) {
|
||||
@ -294,12 +296,12 @@ public class TestClient {
|
||||
* NESTED MAP TEST
|
||||
*/
|
||||
System.out.print("testMapMap(1)");
|
||||
AbstractMap<Integer,AbstractMap<Integer,Integer>> mm =
|
||||
Map<Integer,Map<Integer,Integer>> mm =
|
||||
testClient.testMapMap(1);
|
||||
System.out.print(" = {");
|
||||
for (int key : mm.keySet()) {
|
||||
System.out.print(key + " => {");
|
||||
AbstractMap<Integer,Integer> m2 = mm.get(key);
|
||||
Map<Integer,Integer> m2 = mm.get(key);
|
||||
for (int k2 : m2.keySet()) {
|
||||
System.out.print(k2 + " => " + m2.get(k2) + ", ");
|
||||
}
|
||||
@ -321,17 +323,17 @@ public class TestClient {
|
||||
insane.xtructs = new ArrayList<Xtruct>();
|
||||
insane.xtructs.add(truck);
|
||||
System.out.print("testInsanity()");
|
||||
AbstractMap<Long,AbstractMap<Integer,Insanity>> whoa =
|
||||
Map<Long,Map<Integer,Insanity>> whoa =
|
||||
testClient.testInsanity(insane);
|
||||
System.out.print(" = {");
|
||||
for (long key : whoa.keySet()) {
|
||||
AbstractMap<Integer,Insanity> val = whoa.get(key);
|
||||
Map<Integer,Insanity> val = whoa.get(key);
|
||||
System.out.print(key + " => {");
|
||||
|
||||
for (int k2 : val.keySet()) {
|
||||
Insanity v2 = val.get(k2);
|
||||
System.out.print(k2 + " => {");
|
||||
AbstractMap<Integer, Long> userMap = v2.userMap;
|
||||
Map<Integer, Long> userMap = v2.userMap;
|
||||
System.out.print("{");
|
||||
if (userMap != null) {
|
||||
for (int k3 : userMap.keySet()) {
|
||||
@ -340,7 +342,7 @@ public class TestClient {
|
||||
}
|
||||
System.out.print("}, ");
|
||||
|
||||
ArrayList<Xtruct> xtructs = v2.xtructs;
|
||||
List<Xtruct> xtructs = v2.xtructs;
|
||||
System.out.print("{");
|
||||
if (xtructs != null) {
|
||||
for (Xtruct x : xtructs) {
|
||||
|
@ -14,9 +14,11 @@ import com.facebook.thrift.transport.TServerTransport;
|
||||
import thrift.test.*;
|
||||
|
||||
import java.net.ServerSocket;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class TestServer {
|
||||
@ -75,7 +77,7 @@ public class TestServer {
|
||||
return nest;
|
||||
}
|
||||
|
||||
public AbstractMap<Integer,Integer> testMap(AbstractMap<Integer,Integer> thing) {
|
||||
public Map<Integer,Integer> testMap(Map<Integer,Integer> thing) {
|
||||
System.out.print("testMap({");
|
||||
boolean first = true;
|
||||
for (int key : thing.keySet()) {
|
||||
@ -90,7 +92,7 @@ public class TestServer {
|
||||
return thing;
|
||||
}
|
||||
|
||||
public HashSet<Integer> testSet(HashSet<Integer> thing) {
|
||||
public Set<Integer> testSet(Set<Integer> thing) {
|
||||
System.out.print("testSet({");
|
||||
boolean first = true;
|
||||
for (int elem : thing) {
|
||||
@ -105,7 +107,7 @@ public class TestServer {
|
||||
return thing;
|
||||
}
|
||||
|
||||
public ArrayList<Integer> testList(ArrayList<Integer> thing) {
|
||||
public List<Integer> testList(List<Integer> thing) {
|
||||
System.out.print("testList({");
|
||||
boolean first = true;
|
||||
for (int elem : thing) {
|
||||
@ -130,10 +132,10 @@ public class TestServer {
|
||||
return thing;
|
||||
}
|
||||
|
||||
public AbstractMap<Integer,AbstractMap<Integer,Integer>> testMapMap(int hello) {
|
||||
public Map<Integer,Map<Integer,Integer>> testMapMap(int hello) {
|
||||
System.out.print("testMapMap(" + hello + ")\n");
|
||||
AbstractMap<Integer,AbstractMap<Integer,Integer>> mapmap =
|
||||
new HashMap<Integer,AbstractMap<Integer,Integer>>();
|
||||
Map<Integer,Map<Integer,Integer>> mapmap =
|
||||
new HashMap<Integer,Map<Integer,Integer>>();
|
||||
|
||||
HashMap<Integer,Integer> pos = new HashMap<Integer,Integer>();
|
||||
HashMap<Integer,Integer> neg = new HashMap<Integer,Integer>();
|
||||
@ -148,7 +150,7 @@ public class TestServer {
|
||||
return mapmap;
|
||||
}
|
||||
|
||||
public AbstractMap<Long, AbstractMap<Integer,Insanity>> testInsanity(Insanity argument) {
|
||||
public Map<Long, Map<Integer,Insanity>> testInsanity(Insanity argument) {
|
||||
System.out.print("testInsanity()\n");
|
||||
|
||||
Xtruct hello = new Xtruct();
|
||||
@ -182,15 +184,15 @@ public class TestServer {
|
||||
|
||||
second_map.put(Numberz.SIX, looney);
|
||||
|
||||
AbstractMap<Long,AbstractMap<Integer,Insanity>> insane =
|
||||
new HashMap<Long, AbstractMap<Integer,Insanity>>();
|
||||
Map<Long,Map<Integer,Insanity>> insane =
|
||||
new HashMap<Long, Map<Integer,Insanity>>();
|
||||
insane.put((long)1, first_map);
|
||||
insane.put((long)2, second_map);
|
||||
|
||||
return insane;
|
||||
}
|
||||
|
||||
public Xtruct testMulti(byte arg0, int arg1, long arg2, AbstractMap<Short,String> arg3, int arg4, long arg5) {
|
||||
public Xtruct testMulti(byte arg0, int arg1, long arg2, Map<Short,String> arg3, int arg4, long arg5) {
|
||||
System.out.print("testMulti()\n");
|
||||
|
||||
Xtruct hello = new Xtruct();;
|
||||
|
Loading…
Reference in New Issue
Block a user