2 # vi: set softtabstop=4 shiftwidth=4 tabstop=8 expandtab:
5 """Defines a trip endpoint (street address, intersection, etc.)"""
7 def getPage(self
, isFrom
):
8 """Returns a string, e.g. FromAddress.oci"""
9 return self
.selectPage(isFrom
, self
.type)
11 def toPlannerParams(self
, isFrom
):
12 """Returns a tuple of tuples of CGI parameters."""
15 def selectBase(self
, isFrom
):
16 return ("to", "from")[isFrom
]
18 def selectPage(self
, isFrom
, uctype
):
19 """returns e.g. FromAddress.oci"""
20 return "%s%s.oci" % (self
.selectBase(isFrom
).title(), uctype
)
24 class AddressLocation(PlanLocation
):
25 def __init__(self
, address
):
26 self
.address
= address
28 def toPlannerParams(self
, isFrom
):
29 return ((self
.selectBase(isFrom
) + "Address", self
.address
),
30 ("streetType", "Other"))
34 class IntersectionLocation(PlanLocation
):
35 def __init__(self
, street1
, street2
):
36 self
.street1
= street1
37 self
.street2
= street2
39 def toPlannerParams(self
, isFrom
):
40 base
= self
.selectBase(isFrom
)
41 return ((base
+ "OnStreet", self
.street1
),
42 (base
+ "AtStreet", self
.street2
))
46 class StopLocation(PlanLocation
):
47 """A 560-1000 stop number."""
48 def __init__(self
, stop
):
51 def toPlannerParams(self
, isFrom
):
52 return ((self
.selectBase(isFrom
) + "560Code", self
.stop
),)
54 # There's a "To560.oci" followed by a "To560Confirm.oci"; we can
58 class LandmarkLocation(PlanLocation
):
59 """A well-known location."""
60 def __init__(self
, landmark
):
61 self
.landmark
= landmark
63 def toPlannerParams(self
, isFrom
):
64 return (("landmarkAddress", self
.landmark
),)
66 type = "LandmarkMultipleMatch"