1 from gacksexcep import *
2 from gackshandle import *
8 def query(self, id=None, unitStart=0, unitStop=INFINITY, timeStart=0, timeStop=INFINITY):
11 def insert_record(self, item):
14 def query_handles(self, handles):
16 for handle in handles:
17 items = query(handle.id, handle.unitStart, handle.unitStop, handle.timeStart, handle.timeStop)
19 if not item.is_in_list(results):
23 def update_record(self, item):
27 class GacksListCalendar(GacksCalendar):
31 def test_id(self, x, y):
37 def test_lesser(self, x, y):
45 def test_greater(self, x, y):
55 def query(self, id=None, unitStart=0, unitStop=INFINITY, timeStart=0, timeStop=INFINITY):
57 for item in self.items:
58 if self.test_id(id, item.id) and \
59 self.test_lesser(unitStart, item.unitStop) and \
60 self.test_greater(unitStop, item.unitStart) and \
61 self.test_lesser(timeStart, item.timeStop) and \
62 self.test_greater(timeStop, item.timeStart):
66 def find_record(self, item_to_delete):
68 for item in self.items:
69 if item.is_same_cell(item_to_delete):
76 raise GacksMultipleRecordCollision(item_to_delete.as_string())
80 def insert_record(self, item):
81 conflicts = self.query(item.id, item.unitStart, item.unitStop, item.timeStart, item.timeStop)
83 raise GacksConflictingInsert(item.as_string())
85 self.items.append(item)
87 def remove_record(self, item):
88 existing_record = self.find_record(item)
90 self.items.remove(existing_record)