-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdiagram.txt
87 lines (76 loc) · 2 KB
/
diagram.txt
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
@startuml
class "ExamPart" {
id : Long
title : String
content : String
type : Type
parent : ExamPart
childs : List<ExamPart>
}
class "Question" {
score : Double
answer : ExamPart
alternatives() : List<ExamPart>
}
class "ExamRandomBuilder" {
totalQuestions : Integer
from(List<ExamPart>, BuildExamPartSpecification) : List<PostulantQuestion>
}
class "BuildExamPartSpecification" {
title : String
examPartType : Type
number : int
childs : List<BuildExamPartSpecification>
title(String) : BuildExamPartSpecification
addChild(BuildExamPartSpecification) : BuildExamPartSpecification
findExamParts(List<ExamPart>) : List<ExamPart>
}
class "ExamEvent" {
id : Long
description : String
range : DateTimeRange
hasStarted() : boolean
hasEnded() : boolean
}
class "PostulantExam" {
id : Long
postulant : Postulant
event : ExamEvent
actualRange : DateTimeRange
questions : List<PostulantQuestion>
finish()
assertHasNotEnded()
}
class "PostulantQuestion" {
postulantExam : PostulantExam
postulantAnswer : ExamPart
alternativeReferences : List<ExamPartReference>
getAlternative(Long) : Optional<ExamPart>
updateAnswer(Long)
}
class "ExamPartReference" {
id : Long
examPart : ExamPart
number : Integer
}
class "Postulant" {
firstName : String
lastName : String
motherLastName : String
programCode : String
upgCode : String
start(ExamEvent, List<PostulantQuestion>) : PostulantExam
isTaker(Optional<PostulantExam>) : boolean
}
"ExamPart" <|-- "Question"
"ExamPartReference" <|-- "PostulantQuestion"
"ExamPart" <-> "ExamPart" : parent
"Question" --> "ExamPart" : answer
"BuildExamPartSpecification" --> "*" "BuildExamPartSpecification" : childs
"PostulantExam" --> "Postulant" : postulant
"PostulantExam" --> "ExamEvent" : event
"PostulantExam" <-> "*" "PostulantQuestion" : questions
"PostulantQuestion" --> "ExamPart" : postulantAnswer
"PostulantQuestion" --> "*" "ExamPartReference" : alternativeReferences
"ExamPartReference" --> "ExamPart" : examPart
@enduml