Revision 49218
Added by Claudio Atzori over 6 years ago
VertexWritable.java | ||
---|---|---|
3 | 3 |
import java.io.DataInput; |
4 | 4 |
import java.io.DataOutput; |
5 | 5 |
import java.io.IOException; |
6 |
import java.lang.reflect.Type; |
|
7 | 6 |
import java.util.TreeSet; |
8 | 7 |
|
9 | 8 |
import com.google.gson.*; |
... | ... | |
53 | 52 |
|
54 | 53 |
public void addVertex(Text id) { |
55 | 54 |
if (edges == null) { |
56 |
edges = new TreeSet<Text>();
|
|
55 |
edges = new TreeSet<>(); |
|
57 | 56 |
} |
58 | 57 |
edges.add(id); |
59 | 58 |
} |
... | ... | |
78 | 77 |
vertexId.readFields(in); |
79 | 78 |
int length = in.readInt(); |
80 | 79 |
if (length > -1) { |
81 |
edges = new TreeSet<Text>();
|
|
80 |
edges = new TreeSet<>(); |
|
82 | 81 |
for (int i = 0; i < length; i++) { |
83 | 82 |
Text temp = new Text(); |
84 | 83 |
temp.readFields(in); |
... | ... | |
103 | 102 |
|
104 | 103 |
public static VertexWritable fromJSON(String json) { |
105 | 104 |
final GsonBuilder builder = new GsonBuilder(); |
106 |
builder.registerTypeAdapter(VertexWritable.class, new JsonDeserializer<VertexWritable>() {
|
|
105 |
builder.registerTypeAdapter(VertexWritable.class, (JsonDeserializer<VertexWritable>) (json1, typeOfT, context) -> {
|
|
107 | 106 |
|
108 |
@Override |
|
109 |
public VertexWritable deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { |
|
107 |
JsonObject jo = json1.getAsJsonObject(); |
|
110 | 108 |
|
111 |
JsonObject jo = json.getAsJsonObject(); |
|
109 |
VertexWritable vertexWritable = new VertexWritable(); |
|
110 |
vertexWritable.setVertexId(new Text(jo.get("vertexId").getAsString())); |
|
111 |
vertexWritable.setActivated(jo.get("activated").getAsBoolean()); |
|
112 | 112 |
|
113 |
VertexWritable vertexWritable = new VertexWritable(); |
|
114 |
vertexWritable.setVertexId(new Text(jo.get("vertexId").getAsString())); |
|
115 |
vertexWritable.setActivated(jo.get("activated").getAsBoolean()); |
|
113 |
TreeSet<Text> edges = new TreeSet<Text>(); |
|
116 | 114 |
|
117 |
TreeSet<Text> edges = new TreeSet<Text>(); |
|
118 |
|
|
119 |
for(JsonElement e : jo.get("edges").getAsJsonArray()) { |
|
120 |
edges.add(new Text(e.getAsString())); |
|
121 |
} |
|
122 |
vertexWritable.setEdges(edges); |
|
123 |
return vertexWritable; |
|
115 |
for(JsonElement e : jo.get("edges").getAsJsonArray()) { |
|
116 |
edges.add(new Text(e.getAsString())); |
|
124 | 117 |
} |
118 |
vertexWritable.setEdges(edges); |
|
119 |
return vertexWritable; |
|
125 | 120 |
}); |
126 | 121 |
return builder.create().fromJson(json, VertexWritable.class); |
127 | 122 |
|
... | ... | |
130 | 125 |
public String toJSON() { |
131 | 126 |
|
132 | 127 |
final GsonBuilder builder = new GsonBuilder(); |
133 |
builder.registerTypeAdapter(VertexWritable.class, new JsonSerializer<VertexWritable>() { |
|
134 |
@Override |
|
135 |
public JsonElement serialize(final VertexWritable src, final Type typeOfSrc, final JsonSerializationContext context) { |
|
136 |
JsonObject res = new JsonObject(); |
|
137 |
res.addProperty("vertexId", getVertexId().toString()); |
|
138 |
res.addProperty("activated", isActivated()); |
|
128 |
builder.registerTypeAdapter(VertexWritable.class, (JsonSerializer<VertexWritable>) (src, typeOfSrc, context) -> { |
|
129 |
JsonObject res = new JsonObject(); |
|
130 |
res.addProperty("vertexId", getVertexId().toString()); |
|
131 |
res.addProperty("activated", isActivated()); |
|
139 | 132 |
|
140 |
JsonArray edges = new JsonArray(); |
|
141 |
if (!isMessage()) { |
|
142 |
for (Text edge : getEdges()) { |
|
143 |
edges.add(new JsonPrimitive(edge.toString())); |
|
144 |
} |
|
133 |
JsonArray edges = new JsonArray(); |
|
134 |
if (!isMessage()) { |
|
135 |
for (Text edge : getEdges()) { |
|
136 |
edges.add(new JsonPrimitive(edge.toString())); |
|
145 | 137 |
} |
146 |
res.add("edges", edges); |
|
147 |
return res; |
|
148 | 138 |
} |
139 |
res.add("edges", edges); |
|
140 |
return res; |
|
149 | 141 |
}); |
150 | 142 |
|
151 | 143 |
return builder.create().toJson(this); |
... | ... | |
155 | 147 |
protected VertexWritable clone() { |
156 | 148 |
VertexWritable toReturn = new VertexWritable(new Text(vertexId.toString())); |
157 | 149 |
if (edges != null) { |
158 |
toReturn.edges = new TreeSet<Text>();
|
|
150 |
toReturn.edges = new TreeSet<>(); |
|
159 | 151 |
for (Text l : edges) { |
160 | 152 |
toReturn.edges.add(new Text(l.toString())); |
161 | 153 |
} |
Also available in: Unified diff
skip weird cases in CC algo