Package Gnumed :: Package timelinelib :: Package canvas :: Package data :: Module base
[frames] | no frames]

Source Code for Module Gnumed.timelinelib.canvas.data.base

1 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Rickard Lindberg, Roger Lindberg 2 # 3 # This file is part of Timeline. 4 # 5 # Timeline is free software: you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation, either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # Timeline is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with Timeline. If not, see <http://www.gnu.org/licenses/>. 17 18 19 -class ItemBase(object):
20
21 - def __init__(self, db, id_, immutable_value):
22 self._db = db 23 self._id = id_ 24 self._immutable_value = immutable_value
25
26 - def duplicate(self, target_db=None):
27 if target_db is None: 28 db = self.db 29 else: 30 db = target_db 31 return self.__class__(db=db, immutable_value=self._immutable_value)
32 33 @property
34 - def db(self):
35 return self._db
36 37 @db.setter
38 - def db(self, value):
39 if self._db is None: 40 self._db = value 41 elif self._db is not value: 42 raise ValueError("Can't change db")
43 44 @property
45 - def id(self):
46 return self._id
47 48 @id.setter
49 - def id(self, value):
50 self._id = value
51
52 - def get_id(self):
53 return self.id
54
55 - def has_id(self):
56 return self.id is not None
57
58 - def set_id(self, id_):
59 self.id = id_ 60 return self
61
62 - def ensure_id(self):
63 if self.id is None: 64 self.id = self.db.next_id() 65 return self.id
66
67 68 -def create_noop_property(klass, name, value):
69 def getter(self): 70 return value
71 72 def setter(self, value): 73 return self 74 setattr(klass, "get_{0}".format(name), getter) 75 setattr(klass, "set_{0}".format(name), setter) 76 setattr(klass, "{0}".format(name), property(getter, setter)) 77