@@ -0,0 +1,1397 @@
+import org.apache.commons.lang.StringUtils;%0A%0Aimport java.io.IOException;%0Aimport java.util.Arrays;%0A%0Apublic class Node %7B%0A%09private double pageRank;%0A%09private String%5B%5D adjacentNodeNames;%0A%0A%09public static final char fieldSeparator = '%5Ct';%0A%0A%09public double getPageRank() %7B%0A%09%09return pageRank;%0A%09%7D%0A%0A%09public Node setPageRank(double pageRank) %7B%0A%09%09this.pageRank = pageRank;%0A%09%09return this;%0A%09%7D%0A%0A%09public String%5B%5D getAdjacentNodeNames() %7B%0A%09%09return adjacentNodeNames;%0A%09%7D%0A%0A%09public Node setAdjacentNodeNames(String%5B%5D adjacentNodeNames) %7B%0A%09%09this.adjacentNodeNames = adjacentNodeNames;%0A%09%09return this;%0A%09%7D%0A%0A%09public boolean containsAdjacentNodes() %7B%0A%09%09return adjacentNodeNames != null;%0A%09%7D%0A%0A%09@Override%0A%09public String toString() %7B%0A%09%09StringBuilder sb = new StringBuilder();%0A%09%09sb.append(pageRank);%0A%0A%09%09if (getAdjacentNodeNames() != null) %7B%0A%09%09%09sb.append(fieldSeparator).append(%0A%09%09%09%09%09StringUtils.join(getAdjacentNodeNames(), fieldSeparator));%0A%09%09%7D%0A%09%09return sb.toString();%0A%09%7D%0A%0A%09public static Node fromMR(String value) throws IOException %7B%0A%09%09String%5B%5D parts = StringUtils.splitPreserveAllTokens(value,%0A%09%09%09%09fieldSeparator);%0A%09%09if (parts.length %3C 1) %7B%0A%09%09%09throw new IOException(%22Expected 1 or more parts but received %22%0A%09%09%09%09%09+ parts.length);%0A%09%09%7D%0A%09%09Node node = new Node().setPageRank(Double.valueOf(parts%5B0%5D));%0A%09%09if (parts.length %3E 1) %7B%0A%09%09%09node.setAdjacentNodeNames(Arrays%0A%09%09%09%09%09.copyOfRange(parts, 1, parts.length));%0A%09%09%7D%0A%09%09return node;%0A%09%7D%0A%7D%0A

Create Node.java