Skip to content

Commit db24718

Browse files
committed
Issue #1.
1 parent b5a15d9 commit db24718

17 files changed

+289
-125
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.hisrc.gtfs.graph.builder;
2+
3+
import org.hisrc.gtfs.graph.model.edge.TransitionEdge;
4+
import org.hisrc.gtfs.graph.model.vertex.TemporalVertex;
5+
import org.onebusaway.gtfs.model.Stop;
6+
7+
public interface GraphBuilder {
8+
9+
public TemporalVertex addParentStationVertex(Stop stop, int time);
10+
11+
public TemporalVertex addArrivalVertex(final Stop stop,
12+
final int arrivalTime);
13+
14+
public TemporalVertex addDepartureVertex(final Stop stop,
15+
final int departureTime);
16+
17+
public TransitionEdge addArrivalDepartureEdge(TemporalVertex arrivalVertex,
18+
TemporalVertex departureVertex, int cost);
19+
20+
public TransitionEdge addDepartureArrivalEdge(TemporalVertex arrivalVertex,
21+
TemporalVertex departureVertex, int cost);
22+
23+
public TransitionEdge addParentChildEdge(TemporalVertex parentVertex,
24+
TemporalVertex childVertex);
25+
26+
public TransitionEdge addChildParentEdge(TemporalVertex childVertex,
27+
TemporalVertex parentVertex);
28+
29+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package org.hisrc.gtfs.graph.builder.jgrapht;
2+
3+
import org.hisrc.gtfs.graph.builder.GraphBuilder;
4+
import org.hisrc.gtfs.graph.model.edge.ArrivalDepartureEdge;
5+
import org.hisrc.gtfs.graph.model.edge.ChildParentEdge;
6+
import org.hisrc.gtfs.graph.model.edge.DepartureArrivalEdge;
7+
import org.hisrc.gtfs.graph.model.edge.ParentChildEdge;
8+
import org.hisrc.gtfs.graph.model.edge.TransitionEdge;
9+
import org.hisrc.gtfs.graph.model.vertex.ArrivalVertex;
10+
import org.hisrc.gtfs.graph.model.vertex.DepartureVertex;
11+
import org.hisrc.gtfs.graph.model.vertex.ParentStationVertex;
12+
import org.hisrc.gtfs.graph.model.vertex.TemporalVertex;
13+
import org.jgrapht.DirectedGraph;
14+
import org.jgrapht.EdgeFactory;
15+
import org.jgrapht.graph.DirectedMultigraph;
16+
import org.onebusaway.gtfs.model.Stop;
17+
import org.slf4j.Logger;
18+
import org.slf4j.LoggerFactory;
19+
20+
public class JGraphTGraphBuilder implements GraphBuilder {
21+
22+
private DirectedGraph<TemporalVertex, TransitionEdge> graph = new DirectedMultigraph<TemporalVertex, TransitionEdge>(
23+
new EdgeFactory<TemporalVertex, TransitionEdge>() {
24+
@Override
25+
public TransitionEdge createEdge(TemporalVertex start,
26+
TemporalVertex stop) {
27+
throw new UnsupportedOperationException();
28+
}
29+
});
30+
31+
private Logger logger = LoggerFactory.getLogger(JGraphTGraphBuilder.class);
32+
33+
public TemporalVertex addParentStationVertex(Stop stop, int time) {
34+
final ParentStationVertex vertex = new ParentStationVertex(stop, time);
35+
graph.addVertex(vertex);
36+
return vertex;
37+
}
38+
39+
public TemporalVertex addArrivalVertex(final Stop stop,
40+
final int arrivalTime) {
41+
final TemporalVertex arrivalNode = new ArrivalVertex(stop, arrivalTime);
42+
graph.addVertex(arrivalNode);
43+
return arrivalNode;
44+
}
45+
46+
public TemporalVertex addDepartureVertex(final Stop stop,
47+
final int departureTime) {
48+
final TemporalVertex departureNode = new DepartureVertex(stop,
49+
departureTime);
50+
graph.addVertex(departureNode);
51+
return departureNode;
52+
}
53+
54+
public TransitionEdge addParentChildEdge(final TemporalVertex childVertex,
55+
final TemporalVertex parentVertex) {
56+
// logger.info("Adding [" + parentVertex + "-pc->" + childVertex + "]");
57+
final ParentChildEdge edge = new ParentChildEdge();
58+
graph.addEdge(parentVertex, childVertex, edge);
59+
60+
return edge;
61+
}
62+
63+
public TransitionEdge addChildParentEdge(final TemporalVertex childVertex,
64+
final TemporalVertex parentVertex) {
65+
// logger.info("Adding [" + childVertex + "-cp->" + parentVertex + "]");
66+
ChildParentEdge edge = new ChildParentEdge();
67+
graph.addEdge(childVertex, parentVertex, edge);
68+
return edge;
69+
}
70+
71+
public TransitionEdge addArrivalDepartureEdge(
72+
final TemporalVertex arrivalVertex,
73+
final TemporalVertex departureVertex, int cost) {
74+
// logger.info("Adding [" + arrivalNode + "-" + departureNode + "]");
75+
final TransitionEdge edge = new ArrivalDepartureEdge(cost);
76+
graph.addEdge(arrivalVertex, departureVertex, edge);
77+
return edge;
78+
}
79+
80+
public TransitionEdge addDepartureArrivalEdge(
81+
final TemporalVertex departureVertex,
82+
final TemporalVertex arrivalVertex, final int cost) {
83+
final TransitionEdge edge = new DepartureArrivalEdge(cost);
84+
graph.addEdge(departureVertex, arrivalVertex, edge);
85+
return edge;
86+
}
87+
}

core/src/main/java/org/hisrc/gtfs/graph/model/TemporalStopArrivalNode.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

core/src/main/java/org/hisrc/gtfs/graph/model/TemporalStopDepartureNode.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

core/src/main/java/org/hisrc/gtfs/graph/model/TransitionEdge.java

Lines changed: 0 additions & 15 deletions
This file was deleted.

core/src/main/java/org/hisrc/gtfs/graph/model/TransitionType.java

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.hisrc.gtfs.graph.model.edge;
2+
3+
4+
public class ArrivalDepartureEdge extends TransitionEdge {
5+
6+
public ArrivalDepartureEdge(int cost) {
7+
super(cost);
8+
}
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.hisrc.gtfs.graph.model.edge;
2+
3+
4+
public class ChildParentEdge extends TransitionEdge {
5+
6+
public ChildParentEdge() {
7+
super(0);
8+
}
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.hisrc.gtfs.graph.model.edge;
2+
3+
4+
public class DepartureArrivalEdge extends TransitionEdge {
5+
6+
public DepartureArrivalEdge(int cost) {
7+
super(cost);
8+
}
9+
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.hisrc.gtfs.graph.model.edge;
2+
3+
4+
public class ParentChildEdge extends TransitionEdge {
5+
6+
public ParentChildEdge() {
7+
super(0);
8+
}
9+
10+
}

0 commit comments

Comments
 (0)