diff options
-rw-r--r-- | report.ps | 0 | ||||
-rw-r--r-- | report/report.ms | 43 | ||||
-rw-r--r-- | report/report.pdf | bin | 377057 -> 378366 bytes | |||
-rw-r--r-- | report/report.ps | 139 |
4 files changed, 120 insertions, 62 deletions
diff --git a/report.ps b/report.ps new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/report.ps diff --git a/report/report.ms b/report/report.ms index 7b5da9c..2f8e637 100644 --- a/report/report.ms +++ b/report/report.ms @@ -1,9 +1,12 @@ .TL jMusicHub - OOP Project Report + .AU Aimeric ADJUTOR + .AI ESIEA + .AB This document comes with a javadoc and files for a program named jMusicHub. Here, I'll try to state why I did some stuff the way I did, the tools I used, the difficulties, and so on.. @@ -16,13 +19,17 @@ You can easily clone the project from there. .NH UML Diagram + .PP -You can zoom-in easily since the quality of the diagramm is great +You can zoom-in easily since the quality of the diagramm is great. . .PSPIC ../umlDiagram/output.eps 8 + .bp + .NH Student contribution + .PP Since I did it alone, every part of the code has been done by myself. @@ -33,21 +40,27 @@ My main sources of knowledge comes from Stackoverflow, javaTpoint, Oracle and w3 .NH Work done + .NH 2 Tools + .PP For starters, the tools I used for this project are : .IP \(bu 2 -Neovim, as my text editor alongside some plugins and snippets to make my life easier. -.IP \(bu 2 Void linux, as my OS. .IP \(bu 2 -Deoplete, ultisnips and vim-javacomplete2 as my plugins. +Neovim, as my text editor alongside some plugins and snippets to make my life easier. +.IP \(bu 2 +Deoplete, ultisnips and vim-javacomplete2 as my vim plugins. .IP \(bu 2 Plantuml and groff to, respectively, generate my UML diagram and my report. .NH 2 Code + +.NH 3 +Generalities + .PP I coded with some freedom as the specifications were sometimes not clear. I suppose it was written this way to mimic specifications done by a client. .PP @@ -57,8 +70,23 @@ The whole thing can actually be launched by using the run file (./run). It's jus .PP Lots of commands are available so a quick peek at the help page (h) is recommended. +.NH 3 +Classes and enums +.PP +I made four classes that are meant to be Serialized : Song, AudioBook, Album and Playlist. +.PP +Those are instanciated into objects a lot since they're the base of an app managing songs and other elements evolving around it. +.PP +Song and AudioBook both extend the MusicalElement which is an abstraction class. But Album and Playlist are standalone, they're just implementing Serializable like MusicalElement. + +.PP +The other files contains the enums. There is Genre for Song but also Category and Language used as attributes for AudioBook. + +.bp + .NH 2 Abstraction and Interface + .PP The abstract class is MusicalElement which is instanciated by Song and AudioBook. .PP @@ -66,15 +94,20 @@ The interface used in this project is the Serializable one. It is used by Musica .NH 2 Exceptions + .PP Most exceptions are handled the same way because they appear on the same patterns. + .PP We basically abort the tasks or create empty objects when necessary and display something to the user to keep him up-to date. +.PP +I did this to both, debug my code while testing it and to make informative messages to the user so he can know what's going on behind the program. .NH Difficulties + .PP -I honestly had difficulties everytime I got back on my code to build new stuff. +I honestly had difficulties everytime I got back on my code to build new stuffs. The websites, given at the beginning, were really helpful. .PP The first big difficulty was to understand what was the Serialization and how to use it. It took me some time but thanks to websites and indications given by some classmates I managed to implement it in my code. diff --git a/report/report.pdf b/report/report.pdf Binary files differindex a0aa754..9e41fbd 100644 --- a/report/report.pdf +++ b/report/report.pdf diff --git a/report/report.ps b/report/report.ps index 87aa0c7..b96b98c 100644 --- a/report/report.ps +++ b/report/report.ps @@ -1,12 +1,12 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Tue Dec 29 00:43:45 2020 +%%CreationDate: Tue Dec 29 03:12:10 2020 %%DocumentNeededResources: font Times-Bold %%+ font Times-Italic %%+ font Times-Roman %%DocumentSuppliedResources: file ../umlDiagram/output.eps %%+ procset grops 1.22 4 -%%Pages: 2 +%%Pages: 3 %%PageOrder: Ascend %%DocumentMedia: Default 612 792 0 () () %%Orientation: Portrait @@ -237,21 +237,21 @@ def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron BP %%EndPageSetup /F0 12/Times-Bold@0 SF(jMusicHub - OOP Pr)201.456 123 Q(oject Report) --.216 E/F1 10/Times-Italic@0 SF(Aimeric ADJUT)249.07 159 Q(OR)-.18 E/F2 -10/Times-Roman@0 SF(ESIEA)273.835 177 Q F1(ABSTRA)264.535 213 Q(CT)-.3 E -F2 1.209(This document comes with a ja)133 237 R -.25(va)-.2 G 1.209 +-.216 E/F1 10/Times-Italic@0 SF(Aimeric ADJUT)249.07 174 Q(OR)-.18 E/F2 +10/Times-Roman@0 SF(ESIEA)273.835 204 Q F1(ABSTRA)264.535 252 Q(CT)-.3 E +F2 1.209(This document comes with a ja)133 276 R -.25(va)-.2 G 1.209 (doc and \214les for a program named jMusicHub).25 F(.)-.4 E .436 -(Here, I')108 249 R .436(ll try to state wh)-.1 F 2.936(yId)-.05 G .436 +(Here, I')108 288 R .436(ll try to state wh)-.1 F 2.936(yId)-.05 G .436 (id some stuf)-2.936 F 2.936(ft)-.25 G .436(he w)-2.936 F .437 (ay I did, the tools I used, the dif)-.1 F(\214culties,)-.25 E -(and so on..)108 261 Q(Ev)133 276.6 Q(erything is actually a)-.15 E -.25 +(and so on..)108 300 Q(Ev)133 315.6 Q(erything is actually a)-.15 E -.25 (va)-.2 G(ilable at my o).25 E(wn git serv)-.25 E(er at git.adjutor)-.15 -E(.xyz)-.55 E .4 LW 413.08 279.1 355.3 279.1 DL(.)413.08 276.6 Q -1.1 -(Yo)133 292.2 S 2.5(uc)1.1 G(an easily clone the project from there.) --2.5 E/F3 10/Times-Bold@0 SF 2.5(1. UML)72 340.2 R(Diagram)2.5 E F2 -1.1 -(Yo)97 355.8 S 2.5(uc)1.1 G -(an zoom-in easily since the quality of the diagramm is great)-2.5 E 0 0 -576 2311 -183.941 738 0 551.741 PBEGIN +E(.xyz)-.55 E .4 LW 413.08 318.1 355.3 318.1 DL(.)413.08 315.6 Q -1.1 +(Yo)133 331.2 S 2.5(uc)1.1 G(an easily clone the project from there.) +-2.5 E/F3 10/Times-Bold@0 SF 2.5(1. UML)72 379.2 R(Diagram)2.5 E F2 -1.1 +(Yo)97 406.8 S 2.5(uc)1.1 G +(an zoom-in easily since the quality of the diagramm is great.)-2.5 E 0 +0 576 2311 -183.941 738 0 602.741 PBEGIN %%BeginDocument: ../umlDiagram/output.eps %!PS-Adobe-3.0 EPSF-3.0 %%Creator: PlantUML v1.2020.17 @@ -21665,68 +21665,93 @@ BP %%EndPageSetup /F0 10/Times-Roman@0 SF(-2-)282.17 48 Q/F1 10/Times-Bold@0 SF 2.5 (2. Student)72 84 R(contrib)2.5 E(ution)-.2 E F0 -(Since I did it alone, e)97 99.6 Q -.15(ve)-.25 G -(ry part of the code has been done by myself.).15 E 2.949(Iu)97 127.2 S +(Since I did it alone, e)97 111.6 Q -.15(ve)-.25 G +(ry part of the code has been done by myself.).15 E 2.949(Iu)97 139.2 S .449(sed dif)-2.949 F .449(ferent kinds of help when I w)-.25 F .448 (as confronted to some errors and also to learn ne)-.1 F 2.948(wt)-.25 G -.448(hings be-)-2.948 F(cause I'm ne)72 139.2 Q 2.5(ww)-.25 G +.448(hings be-)-2.948 F(cause I'm ne)72 151.2 Q 2.5(ww)-.25 G (ith the Ja)-2.5 E .5 -.25(va p)-.2 H(rogramming language.).25 E -(My main sources of kno)97 154.8 Q(wledge comes from Stack)-.25 E -.15 +(My main sources of kno)97 166.8 Q(wledge comes from Stack)-.25 E -.15 (ove)-.1 G(r\215o).15 E 1.3 -.65(w, j)-.25 H -.2(av).65 G -(aTpoint, Oracle and w3schools.)-.05 E F1 2.5(3. W)72 190.8 R(ork done) --.75 E 2.5(3.1. T)72 214.8 R(ools)-.92 E F0 -.15(Fo)97 230.4 S 2.5(rs) -.15 G(tarters, the tools I used for this project are :)-2.5 E 6.5<834e> -72 246 S(eo)-6.5 E(vim, as my te)-.15 E +(aTpoint, Oracle and w3schools.)-.05 E F1 2.5(3. W)72 202.8 R(ork done) +-.75 E 2.5(3.1. T)72 238.8 R(ools)-.92 E F0 -.15(Fo)97 266.4 S 2.5(rs) +.15 G(tarters, the tools I used for this project are :)-2.5 E 6.5<8356> +72 282 S(oid linux, as my OS.)-7.79 E 6.5<834e>72 297.6 S(eo)-6.5 E +(vim, as my te)-.15 E (xt editor alongside some plugins and snippets to mak)-.15 E 2.5(em)-.1 -G 2.5(yl)-2.5 G(ife easier)-2.5 E(.)-.55 E 6.5<8356>72 261.6 S -(oid linux, as my OS.)-7.79 E 6.5<8344>72 277.2 S +G 2.5(yl)-2.5 G(ife easier)-2.5 E(.)-.55 E 6.5<8344>72 313.2 S (eoplete, ultisnips and vim-ja)-6.5 E -.25(va)-.2 G -(complete2 as my plugins.).25 E 6.5<8350>72 292.8 S(lantuml and grof) --6.5 E 2.5(ft)-.25 G(o, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5(,g) --.65 G(enerate my UML diagram and my report.)-2.5 E F1 2.5(3.2. Code)72 -328.8 R F0 3.208(Ic)97 344.4 S .708(oded with some freedom as the speci\ -\214cations were sometimes not clear)-3.208 F 3.208(.Is)-.55 G .708 -(uppose it w)-3.208 F .709(as written)-.1 F(this w)72 356.4 Q +(complete2 as my vim plugins.).25 E 6.5<8350>72 328.8 S +(lantuml and grof)-6.5 E 2.5(ft)-.25 G(o, respecti)-2.5 E -.15(ve)-.25 G +(ly).15 E 2.5(,g)-.65 G(enerate my UML diagram and my report.)-2.5 E F1 +2.5(3.2. Code)72 364.8 R 2.5(3.2.1. Generalities)72 400.8 R F0 3.208(Ic) +97 428.4 S .708(oded with some freedom as the speci\214cations were som\ +etimes not clear)-3.208 F 3.208(.Is)-.55 G .708(uppose it w)-3.208 F +.709(as written)-.1 F(this w)72 440.4 Q (ay to mimic speci\214cations done by a client.)-.1 E .577 -(My "main" program is jMusicHub)97 372 R(.ja)-.4 E -.25(va)-.2 G 3.077 +(My "main" program is jMusicHub)97 456 R(.ja)-.4 E -.25(va)-.2 G 3.077 (,i).25 G(t')-3.077 E 3.077(sb)-.55 G .577(asically the app you')-3.077 F .577(ll w)-.1 F .577(ant to run to do an)-.1 F .576(ything. The)-.15 F -(other \214les are just the dif)72 384 Q +(other \214les are just the dif)72 468 Q (ferent objects that we create thanks to jMusicHub)-.25 E(.)-.4 E .114(\ The whole thing can actually be launched by using the run \214le \(./ru\ -n\). It')97 399.6 R 2.614(sj)-.55 G .114(ust a simple bash program) --2.614 F(that compile \(ja)72 411.6 Q -.25(va)-.2 G(c\) and launch \(ja) -.25 E -.25(va)-.2 G(\).).25 E(Lots of commands are a)97 427.2 Q -.25(va) +n\). It')97 483.6 R 2.614(sj)-.55 G .114(ust a simple bash program) +-2.614 F(that compile \(ja)72 495.6 Q -.25(va)-.2 G(c\) and launch \(ja) +.25 E -.25(va)-.2 G(\).).25 E(Lots of commands are a)97 511.2 Q -.25(va) -.2 G(ilable so a quick peek at the help page \(h\) is recommended.).25 -E F1 2.5(3.3. Abstraction)72 463.2 R(and Interface)2.5 E F0(The abstrac\ -t class is MusicalElement which is instanciated by Song and AudioBook.) -97 478.8 Q 1.275(The interf)97 494.4 R 1.275(ace used in this project i\ -s the Serializable one. It is used by MusicalElement \(therefore,)-.1 F -1.079(Song and AudioBook\), Alb)72 506.4 R 1.079(um and Playlist. It') --.2 F 3.579(su)-.55 G 1.08 -(sed to store the objects created into \214les. One for each)-3.579 F -(types \(songs, audiobooks, alb)72 518.4 Q(ums and playlists\).)-.2 E F1 -2.5(3.4. Exceptions)72 554.4 R F0(Most e)97 570 Q +E F1 2.5(3.2.2. Classes)72 547.2 R(and enums)2.5 E F0 2.5(Im)97 562.8 S +(ade four classes that are meant to be Serialized : Song, AudioBook, Al\ +b)-2.5 E(um and Playlist.)-.2 E .029 +(Those are instanciated into objects a lot since the)97 578.4 R(y')-.15 +E .028(re the base of an app managing songs and other el-)-.5 F +(ements e)72 590.4 Q -.2(vo)-.25 G(lving around it.).2 E .387 +(Song and AudioBook both e)97 606 R .388 +(xtend the MusicalElement which is an abstraction class. But Alb)-.15 F +.388(um and)-.2 F(Playlist are standalone, the)72 618 Q(y')-.15 E +(re just implementing Serializable lik)-.5 E 2.5(eM)-.1 G +(usicalElement.)-2.5 E .306 +(The other \214les contains the enums. There is Genre for Song b)97 +645.6 R .306(ut also Cate)-.2 F .306(gory and Language used as)-.15 F +(attrib)72 657.6 Q(utes for AudioBook.)-.2 E 0 Cg EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q/F1 10/Times-Bold@0 SF 2.5 +(3.3. Abstraction)72 84 R(and Interface)2.5 E F0(The abstract class is \ +MusicalElement which is instanciated by Song and AudioBook.)97 111.6 Q +1.274(The interf)97 127.2 R 1.275(ace used in this project is the Seria\ +lizable one. It is used by MusicalElement \(therefore,)-.1 F 1.08 +(Song and AudioBook\), Alb)72 139.2 R 1.08(um and Playlist. It')-.2 F +3.58(su)-.55 G 1.079 +(sed to store the objects created into \214les. One for each)-3.58 F +(types \(songs, audiobooks, alb)72 151.2 Q(ums and playlists\).)-.2 E F1 +2.5(3.4. Exceptions)72 187.2 R F0(Most e)97 214.8 Q (xceptions are handled the same w)-.15 E(ay because the)-.1 E 2.5(ya) --.15 G(ppear on the same patterns.)-2.5 E 2.736 -.8(We b)97 585.6 T +-.15 G(ppear on the same patterns.)-2.5 E 2.736 -.8(We b)97 242.4 T 1.136(asically abort the tasks or create empty objects when necessary a\ -nd display something to the).8 F(user to k)72 597.6 Q -(eep him up-to date.)-.1 E F1 2.5(4. Dif\214culties)72 633.6 R F0 2.633 -(Ih)97 649.2 S .133(onestly had dif)-2.633 F .134(\214culties e)-.25 F --.15(ve)-.25 G .134(rytime I got back on my code to b).15 F .134 -(uild ne)-.2 F 2.634(ws)-.25 G(tuf)-2.634 E 2.634(f. The)-.25 F .134 -(websites, gi)2.634 F -.15(ve)-.25 G 2.634(na).15 G(t)-2.634 E(the be)72 -661.2 Q(ginning, were really helpful.)-.15 E 1.124(The \214rst big dif) -97 676.8 R 1.124(\214culty w)-.25 F 1.124(as to understand what w)-.1 F -1.124(as the Serialization and ho)-.1 F 3.624(wt)-.25 G 3.624(ou)-3.624 -G 1.124(se it. It took me)-3.624 F .725(some time b)72 688.8 R .726 +nd display something to the).8 F(user to k)72 254.4 Q +(eep him up-to date.)-.1 E 2.762(Id)97 270 S .262(id this to both, deb) +-2.762 F .262(ug my code while testing it and to mak)-.2 F 2.761(ei)-.1 +G(nformati)-2.761 E .561 -.15(ve m)-.25 H .261 +(essages to the user so he).15 F(can kno)72 282 Q 2.5(ww)-.25 G(hat') +-2.5 E 2.5(sg)-.55 G(oing on behind the program.)-2.5 E F1 2.5 +(4. Dif\214culties)72 318 R F0 2.984(Ih)97 345.6 S .484(onestly had dif) +-2.984 F .484(\214culties e)-.25 F -.15(ve)-.25 G .485 +(rytime I got back on my code to b).15 F .485(uild ne)-.2 F 2.985(ws) +-.25 G(tuf)-2.985 E 2.985(fs. The)-.25 F .485(websites, gi)2.985 F -.15 +(ve)-.25 G(n).15 E(at the be)72 357.6 Q(ginning, were really helpful.) +-.15 E 1.124(The \214rst big dif)97 373.2 R 1.124(\214culty w)-.25 F +1.124(as to understand what w)-.1 F 1.124(as the Serialization and ho) +-.1 F 3.624(wt)-.25 G 3.624(ou)-3.624 G 1.124(se it. It took me)-3.624 F +.725(some time b)72 385.2 R .726 (ut thanks to websites and indications gi)-.2 F -.15(ve)-.25 G 3.226(nb) .15 G 3.226(ys)-3.226 G .726 -(ome classmates I managed to implement it in)-3.226 F(my code.)72 700.8 -Q .608(Other dif)97 716.4 R .608(\214culties were managed by)-.25 F +(ome classmates I managed to implement it in)-3.226 F(my code.)72 397.2 +Q .608(Other dif)97 412.8 R .608(\214culties were managed by)-.25 F 3.108(,s)-.65 G(omeho)-3.108 E 1.908 -.65(w, \214)-.25 H .608 (nding a solution online or aborting my idea and us-).65 F(ing other w) -72 728.4 Q(ays to achie)-.1 E .3 -.15(ve w)-.25 H(hat I w).15 E +72 424.8 Q(ays to achie)-.1 E .3 -.15(ve w)-.25 H(hat I w).15 E (as looking for)-.1 E(.)-.55 E 0 Cg EP %%Trailer end |