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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="752px" preserveAspectRatio="none" style="width:2325px;height:752px;" version="1.1" viewBox="0 0 2325 752" width="2325px" zoomAndPan="magnify"><defs><filter height="300%" id="f30l68vsjuwuk" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[2ce409087c256806e794369f9639a134]
class Playlist--><rect codeLine="2" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="214.4609" id="Playlist" style="stroke: #A80036; stroke-width: 1.5;" width="511" x="847" y="372"/><ellipse cx="1076.75" cy="388" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1076.7969,382.1406 C1075.0781,382.1406 1072.4375,383.4688 1072.4375,387.9375 C1072.4375,392.2188 1074.9531,393.6875 1076.7969,393.6875 C1078.1563,393.6875 1079.4844,392.9375 1080.3594,391.4844 L1078.9219,390.5469 C1078.2813,391.5781 1077.5938,391.9688 1076.875,391.9688 C1075.4688,391.9688 1074.2813,390.5625 1074.2813,387.8125 C1074.2813,385.1406 1075.4219,383.7813 1076.7656,383.7813 C1077.4844,383.7813 1078.1094,384.1719 1078.5,384.8594 C1078.5313,384.8906 1078.5938,384.8438 1078.5156,384.8438 C1078.7344,384.8594 1078.5,384.8438 1078.5,384.9844 C1078.5,385 1078.5,385.2656 1078.9063,385.5156 L1080.5,384.7656 C1079.7656,383.0781 1078.3281,382.1406 1076.7969,382.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="43" x="1097.25" y="392.1543">Playlist</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="848" x2="1357" y1="404" y2="404"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="134" x="853" y="418.2104">-serialVersionUID : long</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="853" y="431.0151">-id : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="853" y="443.8198">-name : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="853" y="456.6245">-songs : ArrayList<Song></text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="853" y="469.4292">-audiobooks : ArrayList<AudioBook></text><line style="stroke: #A80036; stroke-width: 1.5;" x1="848" x2="1357" y1="476.0234" y2="476.0234"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="499" x="853" y="490.2339">+Playlist(name : String, songs : ArrayList<Song>, audiobooks : ArrayList<AudioBook>)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="853" y="503.0386">+getId() : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="853" y="515.8433">+getName() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="853" y="528.6479">+getSongs() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="853" y="541.4526">+getAudioBooks() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="853" y="554.2573">+setId(id : int) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="181" x="853" y="567.062">+setName(name : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="853" y="579.8667">+toString() : String</text><!--MD5=[cc3de0a176daa3c4ec875deafdf5ddd1]
class Serializable--><rect fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="48" id="Serializable" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="1521" y="685"/><ellipse cx="1536" cy="701" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1536.0469,695.1406 C1534.3281,695.1406 1531.6875,696.4688 1531.6875,700.9375 C1531.6875,705.2188 1534.2031,706.6875 1536.0469,706.6875 C1537.4063,706.6875 1538.7344,705.9375 1539.6094,704.4844 L1538.1719,703.5469 C1537.5313,704.5781 1536.8438,704.9688 1536.125,704.9688 C1534.7188,704.9688 1533.5313,703.5625 1533.5313,700.8125 C1533.5313,698.1406 1534.6719,696.7813 1536.0156,696.7813 C1536.7344,696.7813 1537.3594,697.1719 1537.75,697.8594 C1537.7813,697.8906 1537.8438,697.8438 1537.7656,697.8438 C1537.9844,697.8594 1537.75,697.8438 1537.75,697.9844 C1537.75,698 1537.75,698.2656 1538.1563,698.5156 L1539.75,697.7656 C1539.0156,696.0781 1537.5781,695.1406 1536.0469,695.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="1550" y="705.1543">Serializable</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1522" x2="1622" y1="717" y2="717"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1522" x2="1622" y1="725" y2="725"/><!--MD5=[a039bf5c8bbb0026beb9828cb0f74e4c]
class AudioBook--><rect codeLine="18" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="176.0469" id="AudioBook" style="stroke: #A80036; stroke-width: 1.5;" width="670" x="1113" y="52"/><ellipse cx="1410.75" cy="68" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1410.7969,62.1406 C1409.0781,62.1406 1406.4375,63.4688 1406.4375,67.9375 C1406.4375,72.2188 1408.9531,73.6875 1410.7969,73.6875 C1412.1563,73.6875 1413.4844,72.9375 1414.3594,71.4844 L1412.9219,70.5469 C1412.2813,71.5781 1411.5938,71.9688 1410.875,71.9688 C1409.4688,71.9688 1408.2813,70.5625 1408.2813,67.8125 C1408.2813,65.1406 1409.4219,63.7813 1410.7656,63.7813 C1411.4844,63.7813 1412.1094,64.1719 1412.5,64.8594 C1412.5313,64.8906 1412.5938,64.8438 1412.5156,64.8438 C1412.7344,64.8594 1412.5,64.8438 1412.5,64.9844 C1412.5,65 1412.5,65.2656 1412.9063,65.5156 L1414.5,64.7656 C1413.7656,63.0781 1412.3281,62.1406 1410.7969,62.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="1431.25" y="72.1543">AudioBook</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114" x2="1782" y1="84" y2="84"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="134" x="1119" y="98.2104">-serialVersionUID : long</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="1119" y="111.0151">-author : String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1114" x2="1782" y1="117.6094" y2="117.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="658" x="1119" y="131.8198">+AudioBook(title : String, duration : int, content : String, author : String, language : Language, category : Category)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="1119" y="144.6245">+getAuthor() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="1119" y="157.4292">+getLanguage() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="1119" y="170.2339">+getCategory() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="1119" y="183.0386">+setArtist(author : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="1119" y="195.8433">+setGenre(language : Language) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="1119" y="208.6479">+setCategory(category : Category) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1119" y="221.4526">+toString() : String</text><!--MD5=[b500876be3a4fd15e4c9eb4c5441fb91]
class MusicalElement--><rect codeLine="83" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="188.8516" id="MusicalElement" style="stroke: #A80036; stroke-width: 1.5;" width="361" x="1392" y="384.5"/><ellipse cx="1519.75" cy="400.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1519.7969,394.6406 C1518.0781,394.6406 1515.4375,395.9688 1515.4375,400.4375 C1515.4375,404.7188 1517.9531,406.1875 1519.7969,406.1875 C1521.1563,406.1875 1522.4844,405.4375 1523.3594,403.9844 L1521.9219,403.0469 C1521.2813,404.0781 1520.5938,404.4688 1519.875,404.4688 C1518.4688,404.4688 1517.2813,403.0625 1517.2813,400.3125 C1517.2813,397.6406 1518.4219,396.2813 1519.7656,396.2813 C1520.4844,396.2813 1521.1094,396.6719 1521.5,397.3594 C1521.5313,397.3906 1521.5938,397.3438 1521.5156,397.3438 C1521.7344,397.3594 1521.5,397.3438 1521.5,397.4844 C1521.5,397.5 1521.5,397.7656 1521.9063,398.0156 L1523.5,397.2656 C1522.7656,395.5781 1521.3281,394.6406 1519.7969,394.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="97" x="1540.25" y="404.6543">MusicalElement</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1393" x2="1752" y1="416.5" y2="416.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="1398" y="430.7104">-id : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="1398" y="443.5151">-title : String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1393" x2="1752" y1="450.1094" y2="450.1094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="349" x="1398" y="464.3198">+MusicalElement(title : String, duration : int, content : String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="1398" y="477.1245">+getId() : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1398" y="489.9292">+getTitle() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="1398" y="502.7339">+getDuration() : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="1398" y="515.5386">+getContent() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1398" y="528.3433">+setId(id : int) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="161" x="1398" y="541.1479">+setTitle(title : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="191" x="1398" y="553.9526">+setDuration(duration : int) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="1398" y="566.7573">+setContent(content : String) : void</text><!--MD5=[c2f2a6aec1da6e8ef38036d5725b0912]
class jMusicHub--><rect codeLine="31" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="265.6797" id="jMusicHub" style="stroke: #A80036; stroke-width: 1.5;" width="592" x="7" y="7"/><ellipse cx="267.25" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M267.2969,17.1406 C265.5781,17.1406 262.9375,18.4688 262.9375,22.9375 C262.9375,27.2188 265.4531,28.6875 267.2969,28.6875 C268.6563,28.6875 269.9844,27.9375 270.8594,26.4844 L269.4219,25.5469 C268.7813,26.5781 268.0938,26.9688 267.375,26.9688 C265.9688,26.9688 264.7813,25.5625 264.7813,22.8125 C264.7813,20.1406 265.9219,18.7813 267.2656,18.7813 C267.9844,18.7813 268.6094,19.1719 269,19.8594 C269.0313,19.8906 269.0938,19.8438 269.0156,19.8438 C269.2344,19.8594 269,19.8438 269,19.9844 C269,20 269,20.2656 269.4063,20.5156 L271,19.7656 C270.2656,18.0781 268.8281,17.1406 267.2969,17.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="63" x="287.75" y="27.1543">jMusicHub</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="598" y1="39" y2="39"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="598" y1="47" y2="47"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="13" y="61.2104">+jMusicHub()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="194" x="13" y="74.0151">+addSong(scan : Scanner) : Song</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="254" x="13" y="86.8198">+addAudioBook(scan : Scanner) : AudioBook</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="206" x="13" y="99.6245">+addAlbum(scan : Scanner) : Album</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="580" x="13" y="112.4292">+addPlaylist(scan : Scanner, songs : ArrayList<Song>, audiobooks : ArrayList<AudioBook>) : Playlist</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="297" x="13" y="125.2339">+save(filename : String, elements : ArrayList) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="188" x="13" y="138.0386">+listById(filename : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="163" x="13" y="150.8433">+listPlaylistsByName() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="151" x="13" y="163.6479">+listAlbumsByDate() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="160" x="13" y="176.4526">+listAlbumsByGenre() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="186" x="13" y="189.2573">+listAudioBooksByAuthor() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="213" x="13" y="202.062">+extract(filename : String) : ArrayList</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="554" x="13" y="214.8667">+addSongToAlbum(scan : Scanner, albums : ArrayList<Album>, songs : ArrayList<Song>) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="361" x="13" y="227.6714">+delPlaylist(playlists : ArrayList<Playlist>) : ArrayList<Playlist></text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="314" x="13" y="240.4761">+contentOfPlaylist(playlists : ArrayList<Playlist>) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="299" x="13" y="253.2808">+contentOfAlbum(albums : ArrayList<Album>) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="160" x="13" y="266.0854">+main(args : String[]) : void</text><!--MD5=[7560274dc4d8b0cfc2c0496e7291d5fc]
class Album--><rect codeLine="50" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="291.2891" id="Album" style="stroke: #A80036; stroke-width: 1.5;" width="519" x="1787" y="333.5"/><ellipse cx="2023.25" cy="349.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2023.2969,343.6406 C2021.5781,343.6406 2018.9375,344.9688 2018.9375,349.4375 C2018.9375,353.7188 2021.4531,355.1875 2023.2969,355.1875 C2024.6563,355.1875 2025.9844,354.4375 2026.8594,352.9844 L2025.4219,352.0469 C2024.7813,353.0781 2024.0938,353.4688 2023.375,353.4688 C2021.9688,353.4688 2020.7813,352.0625 2020.7813,349.3125 C2020.7813,346.6406 2021.9219,345.2813 2023.2656,345.2813 C2023.9844,345.2813 2024.6094,345.6719 2025,346.3594 C2025.0313,346.3906 2025.0938,346.3438 2025.0156,346.3438 C2025.2344,346.3594 2025,346.3438 2025,346.4844 C2025,346.5 2025,346.7656 2025.4063,347.0156 L2027,346.2656 C2026.2656,344.5781 2024.8281,343.6406 2023.2969,343.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="38" x="2043.75" y="353.6543">Album</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1788" x2="2305" y1="365.5" y2="365.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="134" x="1793" y="379.7104">-serialVersionUID : long</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="1793" y="392.5151">-id : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="1793" y="405.3198">-date : Date</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="1793" y="418.1245">-title : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="1793" y="430.9292">-songs : ArrayList<Song></text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1788" x2="2305" y1="437.5234" y2="437.5234"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="507" x="1793" y="451.7339">+Album(title : String, duration : int, artist : String, date : Date, songs : ArrayList<Song>)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="1793" y="464.5386">+getId() : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1793" y="477.3433">+getTitle() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="1793" y="490.1479">+getDuration() : int</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="1793" y="502.9526">+getArtist() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="99" x="1793" y="515.7573">+getDate() : Date</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="1793" y="528.562">+getSongs() : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1793" y="541.3667">+getGenre() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1793" y="554.1714">+setId(id : int) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="161" x="1793" y="566.9761">+setTitle(title : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="1793" y="579.7808">+setArtist(artist : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="159" x="1793" y="592.5854">+setDate(date : Date) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="1793" y="605.3901">+addSong(song : Song) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1793" y="618.1948">+toString() : String</text><!--MD5=[562c4b801d528848837ef3b38203ac7d]
class Song--><rect codeLine="72" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="150.4375" id="Song" style="stroke: #A80036; stroke-width: 1.5;" width="474" x="1818" y="65"/><ellipse cx="2034.75" cy="81" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2034.7969,75.1406 C2033.0781,75.1406 2030.4375,76.4688 2030.4375,80.9375 C2030.4375,85.2188 2032.9531,86.6875 2034.7969,86.6875 C2036.1563,86.6875 2037.4844,85.9375 2038.3594,84.4844 L2036.9219,83.5469 C2036.2813,84.5781 2035.5938,84.9688 2034.875,84.9688 C2033.4688,84.9688 2032.2813,83.5625 2032.2813,80.8125 C2032.2813,78.1406 2033.4219,76.7813 2034.7656,76.7813 C2035.4844,76.7813 2036.1094,77.1719 2036.5,77.8594 C2036.5313,77.8906 2036.5938,77.8438 2036.5156,77.8438 C2036.7344,77.8594 2036.5,77.8438 2036.5,77.9844 C2036.5,78 2036.5,78.2656 2036.9063,78.5156 L2038.5,77.7656 C2037.7656,76.0781 2036.3281,75.1406 2034.7969,75.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="2055.25" y="85.1543">Song</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="2291" y1="97" y2="97"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="134" x="1824" y="111.2104">-serialVersionUID : long</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="80" x="1824" y="124.0151">-artist : String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1819" x2="2291" y1="130.6094" y2="130.6094"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="462" x="1824" y="144.8198">+Song(title : String, duration : int, content : String, artist : String, genre : Genre)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="1824" y="157.6245">+getArtist() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="1824" y="170.4292">+getGenre() : String</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="1824" y="183.2339">+setArtist(artist : String) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="1824" y="196.0386">+setGenre(genre : Genre) : void</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1824" y="208.8433">+toString() : String</text><!--MD5=[f375b3d0fae4d15774812e930c824519]
class Genre--><rect codeLine="97" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="124.8281" id="Genre" style="stroke: #A80036; stroke-width: 1.5;" width="73" x="882" y="77.5"/><ellipse cx="898.35" cy="93.5" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M894.8344,87.7188 L894.8344,99 L901.9906,99 L901.9906,97.2656 L896.6625,97.2656 L896.6625,94.0156 L901.0844,94.0156 L901.0844,92.25 L896.6625,92.25 L896.6625,89.4688 L902.0219,89.4688 L902.0219,87.7188 L894.8344,87.7188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="38" x="912.65" y="97.6543">Genre</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="883" x2="954" y1="109.5" y2="109.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="888" y="123.7104">JAZZ</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="888" y="136.5151">CLASSICAL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="888" y="149.3198">HIPHOP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="888" y="162.1245">ROCK</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="888" y="174.9292">POP</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="888" y="187.7339">RAP</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="883" x2="954" y1="194.3281" y2="194.3281"/><!--MD5=[604575fdb45ee3504bf55618cb71a1d3]
class Language--><rect codeLine="105" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="112.0234" id="Language" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="256" y="423"/><ellipse cx="271" cy="439" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M267.4844,433.2188 L267.4844,444.5 L274.6406,444.5 L274.6406,442.7656 L269.3125,442.7656 L269.3125,439.5156 L273.7344,439.5156 L273.7344,437.75 L269.3125,437.75 L269.3125,434.9688 L274.6719,434.9688 L274.6719,433.2188 L267.4844,433.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="285" y="443.1543">Language</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="257" x2="349" y1="455" y2="455"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="44" x="262" y="469.2104">FRENCH</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="262" y="482.0151">ENGLISH</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="262" y="494.8198">ITALIAN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="262" y="507.6245">SPANISH</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="262" y="520.4292">GERMAN</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="257" x2="349" y1="527.0234" y2="527.0234"/><!--MD5=[a96594a83e2ecdc78cbf17c2ddf01934]
class Category--><rect codeLine="112" fill="#FEFECE" filter="url(#f30l68vsjuwuk)" height="112.0234" id="Category" style="stroke: #A80036; stroke-width: 1.5;" width="97" x="495" y="423"/><ellipse cx="514.05" cy="439" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M510.5344,433.2188 L510.5344,444.5 L517.6906,444.5 L517.6906,442.7656 L512.3625,442.7656 L512.3625,439.5156 L516.7844,439.5156 L516.7844,437.75 L512.3625,437.75 L512.3625,434.9688 L517.7219,434.9688 L517.7219,433.2188 L510.5344,433.2188 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="528.95" y="443.1543">Category</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="591" y1="455" y2="455"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="501" y="469.2104">TEEN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="501" y="482.0151">NOVEL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="50" x="501" y="494.8198">THEATER</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="501" y="507.6245">SPEECH</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="501" y="520.4292">DOCUMENTARY</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="591" y1="527.0234" y2="527.0234"/><!--MD5=[4c60a7f2b15f260f3ea859bf061ec5ad]
link Playlist to Serializable--><path codeLine="17" d="M1297.4,586.164 C1323.32,599.592 1349.68,612.859 1375,625 C1416.64,644.9622 1464.23,665.3242 1502.21,681.0006 " fill="none" id="Playlist-to-Serializable" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1504.99,674.5719,1520.84,688.6322,1499.68,687.5267,1504.99,674.5719" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[069e37b102bde6491fcd25d44a66af0a]
link AudioBook to MusicalElement--><path codeLine="30" d="M1480.26,228.183 C1495.61,270.154 1514.15,320.841 1530.53,365.633 " fill="none" id="AudioBook-to-MusicalElement" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1537.11,363.239,1537.41,384.426,1523.96,368.048,1537.11,363.239" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[99a0663712af6aea96d01ec769845ccc]
link Album to Serializable--><path codeLine="71" d="M1786.65,616.997 C1781.06,619.71 1775.51,622.381 1770,625 C1728.12,644.915 1680.28,665.2757 1642.12,680.9631 " fill="none" id="Album-to-Serializable" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1644.56,687.5252,1623.4,688.6013,1639.27,674.5631,1644.56,687.5252" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[fb4a25b92c69fd2893585c29927704b4]
link Song to MusicalElement--><path codeLine="82" d="M1941.94,215.051 C1889.33,250.358 1826.12,293.334 1770,333 C1752.15,345.616 1733.53,359.022 1715.15,372.398 " fill="none" id="Song-to-MusicalElement" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1719.01,378.245,1698.73,384.386,1710.76,366.938,1719.01,378.245" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2378d04217736fbd31b7cc0019b6c493]
link MusicalElement to Serializable--><path codeLine="96" d="M1572,573.545 C1572,605.136 1572,638.8549 1572,664.7479 " fill="none" id="MusicalElement-to-Serializable" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1579,664.8376,1572,684.8376,1565,664.8376,1579,664.8376" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[738eaa7a3420dea4396e74114c8b3681]
link jMusicHub to Genre--><!--MD5=[c56df69ae3c21d1fc025c9472725e8b6]
link jMusicHub to Language--><!--MD5=[dc94e0d7c46608c8a8512df538348e90]
link Language to Category--><!--MD5=[e8dd02b38de371ffd25ff626ca510475]
@startuml
skinparam classAttributeIconSize 0
class Playlist{
- {static} serialVersionUID : long
- id : int
- name : String
- songs : ArrayList<Song>
- audiobooks : ArrayList<AudioBook>
+ Playlist(name : String, songs : ArrayList<Song>, audiobooks : ArrayList<AudioBook>)
+ getId() : int
+ getName() : String
+ getSongs() : void
+ getAudioBooks() : void
+ setId(id : int) : void
+ setName(name : String) : void
+ toString() : String
}
Playlist ..|> Serializable
class AudioBook{
- {static} serialVersionUID : long
- author : String
+ AudioBook(title : String, duration : int, content : String, author : String, language : Language, category : Category)
+ getAuthor() : String
+ getLanguage() : String
+ getCategory() : String
+ setArtist(author : String) : void
+ setGenre(language : Language) : void
+ setCategory(category : Category) : void
+ toString() : String
}
AudioBook - -|> MusicalElement
class jMusicHub{
+ jMusicHub()
+ {static} addSong(scan : Scanner) : Song
+ {static} addAudioBook(scan : Scanner) : AudioBook
+ {static} addAlbum(scan : Scanner) : Album
+ {static} addPlaylist(scan : Scanner, songs : ArrayList<Song>, audiobooks : ArrayList<AudioBook>) : Playlist
+ {static} save(filename : String, elements : ArrayList) : void
+ {static} listById(filename : String) : void
+ {static} listPlaylistsByName() : void
+ {static} listAlbumsByDate() : void
+ {static} listAlbumsByGenre() : void
+ {static} listAudioBooksByAuthor() : void
+ {static} extract(filename : String) : ArrayList
+ {static} addSongToAlbum(scan : Scanner, albums : ArrayList<Album>, songs : ArrayList<Song>) : void
+ {static} delPlaylist(playlists : ArrayList<Playlist>) : ArrayList<Playlist>
+ {static} contentOfPlaylist(playlists : ArrayList<Playlist>) : void
+ {static} contentOfAlbum(albums : ArrayList<Album>) : void
+ {static} main(args : String[]) : void
}
class Album{
- {static} serialVersionUID : long
- id : int
- date : Date
- title : String
- songs : ArrayList<Song>
+ Album(title : String, duration : int, artist : String, date : Date, songs : ArrayList<Song>)
+ getId() : int
+ getTitle() : String
+ getDuration() : int
+ getArtist() : String
+ getDate() : Date
+ getSongs() : void
+ getGenre() : String
+ setId(id : int) : void
+ setTitle(title : String) : void
+ setArtist(artist : String) : void
+ setDate(date : Date) : void
+ addSong(song : Song) : void
+ toString() : String
}
Album ..|> Serializable
class Song{
- {static} serialVersionUID : long
- artist : String
+ Song(title : String, duration : int, content : String, artist : String, genre : Genre)
+ getArtist() : String
+ getGenre() : String
+ setArtist(artist : String) : void
+ setGenre(genre : Genre) : void
+ toString() : String
}
Song - -|> MusicalElement
class MusicalElement{
- id : int
- title : String
+ MusicalElement(title : String, duration : int, content : String)
+ getId() : int
+ getTitle() : String
+ getDuration() : int
+ getContent() : String
+ setId(id : int) : void
+ setTitle(title : String) : void
+ setDuration(duration : int) : void
+ setContent(content : String) : void
}
MusicalElement ..|> Serializable
enum Genre{
JAZZ
CLASSICAL
HIPHOP
ROCK
POP
RAP
}
enum Language{
FRENCH
ENGLISH
ITALIAN
SPANISH
GERMAN
}
enum Category{
TEEN
NOVEL
THEATER
SPEECH
DOCUMENTARY
}
@enduml
PlantUML version 1.2020.17(Sat Sep 19 14:30:11 CEST 2020)
(GPLV2 source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: fr
Country: FR
--></g></svg>
|