You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`A ––––– B` Strong reference. There is a relationship between A and B. A and B may reference
21
+
each other, but the details are left to the implementation.
22
+
-`A ––––> B` Strong reference. There is a relationship between A and B. A has a reference to B.
23
+
-`A – – > B` Weak reference/uses: A uses B.
24
+
- Composition - `A ♦︎–> B` B is part of A and B is bound to the life-cycle of A.
25
+
- Aggregation - `A ♢–> B` B is part of A, but may live when A dies. B is shared.
26
+
- The **calendar** package is the main package with all classes inside and its relations outside.
27
+
-`(o.o.t.m.network)` means this class belong to the `org.opentripplanner.transit.model.network`
28
+
package.
29
+
-`<< classifier >>` Used to mark interfaces or group types
30
+
-`: RaptorTripPattern` means this class implements/extends `RaptorTripPattern`.
31
+
-`(o.o.t.m.network)` means this class belong to the `org.opentripplanner.transit.model.network`
32
+
package.
33
+
-`#patternIndex` - The pattern is indexed using an [integer index](#indexing-the-main-entities)
18
34
19
-
UML Diagrams are used to illustrate the model. Colors are used to emphasise relationships,
20
-
similarities or just visual grouping. For class diagrams we use a modified version of
35
+
36
+
### UML Modeling in color
37
+
38
+
UML Diagrams are used to illustrate the model. Colors are used to emphasise relationships,
39
+
similarities or just visual grouping. For class diagrams we use a modified version of
21
40
[Object Modeling in Color](https://en.wikipedia.org/wiki/Object_Modeling_in_Color).
22
41
23
42

@@ -30,37 +49,103 @@ The colors indicate:
30
49
- Lifecycle
31
50
- Blue(descriptions) - live forever
32
51
- Green(entities…) - live for a long time, but may change over time
33
-
- Read(Moment/Interval/Event) Live until the next realtime update…
52
+
- Read(Moment/Interval/Event) - live until the next realtime update
34
53
- Orange - live in the scope of a request - a very short time
35
-
- Dependencies - Long lived types should not reference short-lived types:
36
-
- Yellow → Orange → Red → Green → Blue
54
+
- Dependencies - Be careful when referencing short-lived type from long-lived types
55
+
-Safe: Yellow ⟶ Orange ⟶ Red ⟶ Green ⟶ Blue
37
56
- Not relevant for Purple
38
57
39
58
40
-
## Components
59
+
### 🚧 TODOs
60
+
61
+
The issue [#4002 - Transit model refactor for easier integration with RT-updaters and transit model maintenance](https://github.com/opentripplanner/OpenTripPlanner/issues/4002) contains a list of reminding tasks. Also, a lot of code is tagged with:
62
+
63
+
-`TODO RTM` - Refactor Transit Model
64
+
65
+
66
+
### ⚠️ Missing from the model
67
+
68
+
Some concepts and features are excluded from most of the design models - for simplicity. This is
69
+
of cause not excluded from the code, but we focus on serving the main use-case - Raptor routing.
70
+
71
+
#### Missing concepts
72
+
73
+
- Mutable part of the model used by realtime updaters.
74
+
- Views and indexes making it easier for APIs to traverse the model.
75
+
- The model focus on relationships, not exact listing of fields and methods.
76
+
- Some fields and methods are included to give the reader a better context, but not all.
41
77
42
-
This is the top level package structure
43
78
44
-
-[framework](framework/package.md) - framework to support the transit model
45
-
- basic - Value objects used across multiple packages.
46
-
- organization
79
+
#### Missing Features
80
+
81
+
- Wheelchair accessibility
82
+
- Constrained transfers
83
+
84
+
85
+
## Use Cases to supported
86
+
87
+
- Raptor search
88
+
- w/ realtime, ignore realtime, include planned-cancellations
89
+
- Realtime updates
90
+
- Cancel: Trip, Stop, Call(cancel either alighting or boarding, not both)
0 commit comments