1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 *10 * http://www.apache.org/licenses/LICENSE-2.011 *12 * Unless required by applicable law or agreed to in writing, software13 * distributed under the License is distributed on an "AS IS" BASIS,14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15 * See the License for the specific language governing permissions and16 * limitations under the License.17 */18package org.apache.giraph.io.gora;
1920import java.io.IOException;
21import java.util.Iterator;
2223import org.apache.giraph.edge.Edge;
24import org.apache.giraph.graph.Vertex;
25import org.apache.giraph.io.VertexWriter;
26import org.apache.giraph.io.gora.generated.GVertexResult;
27import org.apache.gora.persistency.Persistent;
28import org.apache.hadoop.io.DoubleWritable;
29import org.apache.hadoop.io.FloatWritable;
30import org.apache.hadoop.io.LongWritable;
31import org.apache.hadoop.mapreduce.TaskAttemptContext;
3233/**34 * Implementation of a specific reader for a generated data bean.35 */36publicclassGoraGVertexVertexOutputFormat37extends GoraVertexOutputFormat<LongWritable, DoubleWritable,
38 FloatWritable> {
3940/**41 * DEfault constructor42 */43publicGoraGVertexVertexOutputFormat() {
44 }
4546 @Override
47public VertexWriter<LongWritable, DoubleWritable, FloatWritable>
48 createVertexWriter(TaskAttemptContext context)
49throws IOException, InterruptedException {
50returnnewGoraGVertexVertexWriter();
51 }
5253/**54 * Gora vertex writer.55 */56protectedclassGoraGVertexVertexWriterextendsGoraVertexWriter {
5758 @Override
59protected Persistent getGoraVertex(
60 Vertex<LongWritable, DoubleWritable, FloatWritable> vertex) {
61GVertexResult tmpGVertex = newGVertexResult();
62 tmpGVertex.setVertexId(vertex.getId().toString());
63 tmpGVertex.setVertexValue(Float.parseFloat(vertex.getValue().toString()));
64 Iterator<Edge<LongWritable, FloatWritable>> it =
65 vertex.getEdges().iterator();
66while (it.hasNext()) {
67 Edge<LongWritable, FloatWritable> edge = it.next();
68 tmpGVertex.getEdges().put(
69 edge.getTargetVertexId().toString(),
70 edge.getValue().toString());
71 }
72return tmpGVertex;
73 }
7475 @Override
76protected Object getGoraKey(
77 Vertex<LongWritable, DoubleWritable, FloatWritable> vertex) {
78 String goraKey = String.valueOf(vertex.getId());
79return goraKey;
80 }
81 }
82 }