if (vertex.getEdgeValue(msg.get(0))!=null) { final Vertex<WritableComparable, Writable, Writable> _vertex = vertex; ArrayListWritable<WritableComparable> pair = new ArrayListWritable() { pair.add(msg.get(0)); pair.add(msg.get(1)); triangles.add(pair); if (triangles.size()>0) { vertex.setValue(triangles);
@Override public void readFields(DataInput in) throws IOException { if (this.refClass == null) { setClass(); } clear(); // clear list before storing values int numValues = in.readInt(); // read number of values ensureCapacity(numValues); for (int i = 0; i < numValues; i++) { M value = ReflectionUtils.newInstance(refClass, conf); value.readFields(in); // read a value add(value); // store it in values } }
@Override public void compute(Vertex<WritableComparable, Writable, Writable> vertex, Iterable<WritableComparable> messages) throws IOException { for (WritableComparable msg : messages) { assert(msg.compareTo(vertex.getId())<0); // This can never happen for (Edge<WritableComparable, Writable> edge: vertex.getEdges()) { if (vertex.getId().compareTo(edge.getTargetVertexId()) < 0) { final Vertex<WritableComparable, Writable, Writable> _vertex = vertex; ArrayListWritable<WritableComparable> idSrcPair = new ArrayListWritable() { @Override public void setClass() { setClass(_vertex.getId().getClass()); } }; idSrcPair.add(msg); idSrcPair.add(vertex.getId()); sendMessage(edge.getTargetVertexId(), idSrcPair); } } } vertex.voteToHalt(); } }
friends.add(WritableUtils.clone(edge.getTargetVertexId(), getConf()));