-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeg.obs
More file actions
34 lines (25 loc) · 849 Bytes
/
Copy pathLeg.obs
File metadata and controls
34 lines (25 loc) · 849 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
contract Leg {
state InTransit;
state Arrived {
string arrivalDate;
string destinationPort;
}
string departureDate;
string originPort;
Transport@Unowned carrier;
Leg@InTransit(Transport@Unowned t, string ddepartureDate, string doriginPort) {
->InTransit(departureDate = ddepartureDate, originPort = doriginPort, carrier = t);
}
transaction getDepartureDate(Leg@Owned this) returns string {
return departureDate;
}
transaction getOriginPort(Leg@Owned this) returns string {
return originPort;
}
transaction getCarrier(Leg@Owned this) returns Transport@Unowned {
return carrier;
}
transaction setArrival(Leg@InTransit >> Arrived this, string date, string port) {
->Arrived(arrivalDate = date, destinationPort = port);
}
}