Updated Branches: refs/heads/trunk 831e9eaad -> 8cdcf541e
GIRAPH-553: Cleanup HCatalogVertexOutputFormat (majakabiljo) Project: http://git-wip-us.apache.org/repos/asf/giraph/repo Commit: http://git-wip-us.apache.org/repos/asf/giraph/commit/8cdcf541 Tree: http://git-wip-us.apache.org/repos/asf/giraph/tree/8cdcf541 Diff: http://git-wip-us.apache.org/repos/asf/giraph/diff/8cdcf541 Branch: refs/heads/trunk Commit: 8cdcf541e095bdede5fd01bdb94f575a4d38a42f Parents: 831e9ea Author: Maja Kabiljo <[email protected]> Authored: Wed Mar 6 10:32:20 2013 -0800 Committer: Maja Kabiljo <[email protected]> Committed: Wed Mar 6 10:32:20 2013 -0800 ---------------------------------------------------------------------- CHANGELOG | 2 + .../io/hcatalog/HCatalogVertexOutputFormat.java | 68 +++++++++------ 2 files changed, 43 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/giraph/blob/8cdcf541/CHANGELOG ---------------------------------------------------------------------- diff --git a/CHANGELOG b/CHANGELOG index 4cd66b1..d93bf55 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ Giraph Change Log Release 0.2.0 - unreleased + GIRAPH-553: Cleanup HCatalogVertexOutputFormat (majakabiljo) + GIRAPH-545: Improve Facebook Hadoop dependency (nitay) GIRAPH-541: Log before observers (nitay) http://git-wip-us.apache.org/repos/asf/giraph/blob/8cdcf541/giraph-hcatalog/src/main/java/org/apache/giraph/io/hcatalog/HCatalogVertexOutputFormat.java ---------------------------------------------------------------------- diff --git a/giraph-hcatalog/src/main/java/org/apache/giraph/io/hcatalog/HCatalogVertexOutputFormat.java b/giraph-hcatalog/src/main/java/org/apache/giraph/io/hcatalog/HCatalogVertexOutputFormat.java index 4bab7dd..070644f 100644 --- a/giraph-hcatalog/src/main/java/org/apache/giraph/io/hcatalog/HCatalogVertexOutputFormat.java +++ b/giraph-hcatalog/src/main/java/org/apache/giraph/io/hcatalog/HCatalogVertexOutputFormat.java @@ -74,14 +74,21 @@ public abstract class HCatalogVertexOutputFormat< } /** - * Abstract class that users should - * subclass based on their specific vertex - * output. Users should implement - * writeVertex to create a HCatRecord that is - * valid to for writing by HCatalogRecordWriter. + * Abstract class that users should + * subclass based on their specific vertex + * output. Users should implement + * writeVertex to create a HCatRecord that is + * valid to for writing by HCatalogRecordWriter. + * + * @param <I> Vertex id + * @param <V> Vertex value + * @param <E> Edge value */ - protected abstract class HCatalogVertexWriter implements - VertexWriter<I, V, E> { + protected abstract static class HCatalogVertexWriter< + I extends WritableComparable, + V extends Writable, + E extends Writable> + implements VertexWriter<I, V, E> { /** Internal HCatRecordWriter */ private RecordWriter<WritableComparable<?>, HCatRecord> hCatRecordWriter; @@ -93,7 +100,7 @@ public abstract class HCatalogVertexOutputFormat< * @param hCatRecordWriter * Internal writer */ - private void initialize( + protected void initialize( RecordWriter<WritableComparable<?>, HCatRecord> hCatRecordWriter) { this.hCatRecordWriter = hCatRecordWriter; @@ -134,22 +141,29 @@ public abstract class HCatalogVertexOutputFormat< * create vertex writer. * @return HCatalogVertexWriter */ - protected abstract HCatalogVertexWriter createVertexWriter(); + protected abstract HCatalogVertexWriter<I, V, E> createVertexWriter(); @Override public final VertexWriter<I, V, E> createVertexWriter( TaskAttemptContext context) throws IOException, InterruptedException { - HCatalogVertexWriter writer = createVertexWriter(); + HCatalogVertexWriter<I, V, E> writer = createVertexWriter(); writer.initialize(hCatOutputFormat.getRecordWriter(context)); return writer; } /** - * HCatalogVertexWriter to write each vertex in each row. - */ - protected abstract class SingleRowHCatalogVertexWriter extends - HCatalogVertexWriter { + * HCatalogVertexWriter to write each vertex in each row. + * + * @param <I> Vertex id + * @param <V> Vertex value + * @param <E> Edge value + */ + protected abstract static class SingleRowHCatalogVertexWriter< + I extends WritableComparable, + V extends Writable, + E extends Writable> + extends HCatalogVertexWriter<I, V, E> { /** * get num columns * @return intcolumns @@ -176,12 +190,7 @@ public abstract class HCatalogVertexOutputFormat< } @Override - // XXX It is important not to put generic type signature <I,V,E,?> after - // Vertex. Otherwise, any class that extends this will not compile - // because of not implementing the VertexWriter#writeVertex. Mystery of - // Java Generics :( - @SuppressWarnings("unchecked") - public final void writeVertex(Vertex vertex) throws IOException, + public final void writeVertex(Vertex<I, V, E, ?> vertex) throws IOException, InterruptedException { getRecordWriter().write(null, createRecord(vertex)); } @@ -189,10 +198,17 @@ public abstract class HCatalogVertexOutputFormat< } /** - * HCatalogVertexWriter to write each vertex in multiple rows. - */ - public abstract class MultiRowHCatalogVertexWriter extends - HCatalogVertexWriter { + * HCatalogVertexWriter to write each vertex in multiple rows. + * + * @param <I> Vertex id + * @param <V> Vertex value + * @param <E> Edge value + */ + public abstract static class MultiRowHCatalogVertexWriter< + I extends WritableComparable, + V extends Writable, + E extends Writable> + extends HCatalogVertexWriter<I, V, E> { /** * create records * @param vertex to populate records @@ -202,9 +218,7 @@ public abstract class HCatalogVertexOutputFormat< Vertex<I, V, E, ?> vertex); @Override - // XXX Same thing here. No Generics for Vertex here. - @SuppressWarnings("unchecked") - public final void writeVertex(Vertex vertex) throws IOException, + public final void writeVertex(Vertex<I, V, E, ?> vertex) throws IOException, InterruptedException { Iterable<HCatRecord> records = createRecords(vertex); for (HCatRecord record : records) {
