package edu.kit.pse.ws2013.routekit.map;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public abstract class GraphView {
public abstract int getNumberOfEdges();
public abstract int getStartNode(int edge);
public abstract int getTargetNode(int edge);
public abstract int translate(int edg);
public abstract void save(File file) throws IOException;
public static GraphView load(Graph graph, File file) throws IOException {
try (FileInputStream fis = new FileInputStream(file);
DataInputStream dis = new DataInputStream(fis)) {
int edgePos = dis.readInt();
switch (edgePos) {
case 0: {
return new IdentityGraphView(graph);
}
default: {
return ReducedGraphView.load(graph, file);
}
}
}
}
}