forked from yalsayyad/gen_ssm_db
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDayMOPSObject.py
64 lines (55 loc) · 2.03 KB
/
DayMOPSObject.py
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""
Convenience super-class that automatically adds getters and setters according to
LSST desiderata.
$Id: DayMOPSObject.py 15512 2010-06-10 22:34:15Z ljones $
"""
class DayMOPSObject(object):
"""
Auto-create getters and setters.
"""
def __getattr__(self, name):
if name[:3] == "get":
def getter(obj, key='_%s%s' %(name[3].lower(), name[4:])):
return getattr(obj, key)
setattr(self.__class__, name, getter)
return(getattr(self, name))
elif name[:3] == "set":
def setter(obj, value, key='_%s%s' %(name[3].lower(), name[4:])):
return(setattr(obj, key, value))
setattr(self.__class__, name, setter)
return(getattr(self, name))
raise(AttributeError(name))
# Implement simple default getId() method.
def getId(self):
# Try and understand which attribute is an id. Usually it is an
# attribute of the form <className>[0].lower() + <className>[1:] + 'Id'
# so the method we want is 'get' + <className> + 'Id'()
methodName = 'get%sId' %(self.__class__.__name__)
if(hasattr(self, methodName)):
return(getattr(self, methodName)())
return(None)
# Default comparison is by id.
def __lt__(self, other):
if(other == None):
return(False)
return(self.getId() < other.getId())
def __le__(self, other):
if(other == None):
return(False)
return(self.getId() <= other.getId())
def __eq__(self, other):
if(other == None):
return(False)
return(self.getId() == other.getId())
def __ne__(self, other):
if(other == None):
return(True)
return(self.getId() != other.getId())
def __gt__(self, other):
if(other == None):
return(False)
return(self.getId() > other.getId())
def __ge__(self, other):
if(other == None):
return(False)
return(self.getId() >= other.getId())