Project

General

Profile

« Previous | Next » 

Revision 49218

skip weird cases in CC algo

View differences:

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