-
Notifications
You must be signed in to change notification settings - Fork 0
/
Repository.py
89 lines (73 loc) · 2.31 KB
/
Repository.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
'''
Created on 15 Nov 2014
@author: MuresanVladut
'''
from StudentsValidator import StudentValidator
from AssignmentsValidator import AssignmentValidator
from LabAssignmentValidator import LabAssignmentValidator
from Students import Student
from Assignments import Assignment
from LabAssignment import LabAssignment
class Repository:
def __init__(self):
self.data={}
def getAll(self):
return list(self.data.values())
def getId(self):
return list(self.data.keys())
def remove(self,idd):
try:
self.data.pop(idd)
except KeyError:
raise KeyError('Invalid id')
def update(self,obj):
try:
self.data[obj.idd]=obj
except KeyError:
raise KeyError
def find(self,idd):
try:
return self.data[idd]
except KeyError:
raise KeyError
class StudentRepo(Repository):
def __init__(self):
self.validator=StudentValidator()
Repository.__init__(self)
def add(self,obj):
if (obj.idd in self.data.values()):
raise KeyError
self.validator.validate(obj)
self.data[obj.idd]=obj
def getName(self):
for value in self.data.values():
yield value.getName()
class AssignmentRepo(Repository):
def __init__(self):
self.validator=AssignmentValidator()
Repository.__init__(self)
def add(self,obj):
if (obj.idd in self.data.values()):
raise KeyError
self.validator.validate(obj)
self.data[obj.idd]=obj
'''def filter(self,description):
for value in self.data.values():
if description!=value.getDescription():
self.data.pop(value.getId())
return self.data'''
def getDescription(self):
for value in self.data.values():
return value.getDescription()
def getGrade(self):
for value in self.data.values():
return value.getGrade()
class LabAssignmentRepo(Repository):
def __init__(self):
self.validator=LabAssignmentValidator()
Repository.__init__(self)
def add(self,obj):
if (obj.idd in self.data.values()):
raise KeyError
self.validator.validate(obj)
self.data[obj.idd]=obj