From 5b3a0075f9b4a3d0cf5b15575648ee0af3d34749 Mon Sep 17 00:00:00 2001 From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com> Date: Tue, 25 May 2021 16:01:18 +0200 Subject: Initial commit --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 675 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f54923 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# spoteezer \ No newline at end of file -- cgit v1.2.3 From d070de6c7d9e898226fab68e8b1ac4cefdf32354 Mon Sep 17 00:00:00 2001 From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com> Date: Thu, 17 Jun 2021 21:40:30 +0200 Subject: ClassDiagram.png --- Untitled Diagram.png | Bin 0 -> 144839 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Untitled Diagram.png diff --git a/Untitled Diagram.png b/Untitled Diagram.png new file mode 100644 index 0000000..97422ef Binary files /dev/null and b/Untitled Diagram.png differ -- cgit v1.2.3 From dce6bbb968ee5b0b500c894c962b5e1e7b6f5bfd Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 19:58:05 +0000 Subject: Update Untitled Diagram.png --- Untitled Diagram.png | Bin 144839 -> 16132 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Untitled Diagram.png b/Untitled Diagram.png index 97422ef..c2d403b 100644 Binary files a/Untitled Diagram.png and b/Untitled Diagram.png differ -- cgit v1.2.3 From bbbf7ccd85fef73d01c3bfbaa9a83acdd59d77b8 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:09:38 +0000 Subject: Update Untitled Diagram.png --- Untitled Diagram.png | Bin 16132 -> 14414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Untitled Diagram.png b/Untitled Diagram.png index c2d403b..7882036 100644 Binary files a/Untitled Diagram.png and b/Untitled Diagram.png differ -- cgit v1.2.3 From a3388dad3979992648a763f54a988f4859ea6351 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:15:14 +0000 Subject: Update Untitled Diagram.png --- Untitled Diagram.png | Bin 14414 -> 18471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Untitled Diagram.png b/Untitled Diagram.png index 7882036..10a11ca 100644 Binary files a/Untitled Diagram.png and b/Untitled Diagram.png differ -- cgit v1.2.3 From 4af73cd07f35bc5089ffeb3cd3a485b0e4aeec3b Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:24:49 +0000 Subject: Update Untitled Diagram.png --- Untitled Diagram.png | Bin 18471 -> 15060 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Untitled Diagram.png b/Untitled Diagram.png index 10a11ca..664cf30 100644 Binary files a/Untitled Diagram.png and b/Untitled Diagram.png differ -- cgit v1.2.3 From 60540edc7775abaa6b54ab4bd40ac366ac1cf9ea Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:25:06 +0000 Subject: Update Untitled Diagram.png --- Untitled Diagram.png | Bin 15060 -> 15064 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Untitled Diagram.png b/Untitled Diagram.png index 664cf30..cdf21f4 100644 Binary files a/Untitled Diagram.png and b/Untitled Diagram.png differ -- cgit v1.2.3 From 6251250c1af7d87dfec688f889d8edf4070d5dbb Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Thu, 17 Jun 2021 22:29:19 +0200 Subject: Update of README.md and renaming the diagram --- README.md | 2 +- Untitled Diagram.png | Bin 15064 -> 0 bytes diagramme_de_classe_initial.png | Bin 0 -> 15064 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 Untitled Diagram.png create mode 100644 diagramme_de_classe_initial.png diff --git a/README.md b/README.md index 3c81196..fd4c37a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This project was done by a team of 3 amazing people: + Aimeric ADJUTOR -+ Said BELHADJ ++ Saïd BELHADJ + Anthony BOULANT ## The project diff --git a/Untitled Diagram.png b/Untitled Diagram.png deleted file mode 100644 index cdf21f4..0000000 Binary files a/Untitled Diagram.png and /dev/null differ diff --git a/diagramme_de_classe_initial.png b/diagramme_de_classe_initial.png new file mode 100644 index 0000000..cdf21f4 Binary files /dev/null and b/diagramme_de_classe_initial.png differ -- cgit v1.2.3 From fba065225ee695feeaeef058f1fdc2b64bcadf4f Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:30:43 +0000 Subject: Added initial_class_diagram.png --- initial_class_diagram.png | Bin 0 -> 15064 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 initial_class_diagram.png diff --git a/initial_class_diagram.png b/initial_class_diagram.png new file mode 100644 index 0000000..b547d64 Binary files /dev/null and b/initial_class_diagram.png differ -- cgit v1.2.3 From b0429d97568a66266d77cbcc5da712352791af25 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:35:01 +0000 Subject: Delete initial_class_diagram.png --- initial_class_diagram.png | Bin 15064 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 initial_class_diagram.png diff --git a/initial_class_diagram.png b/initial_class_diagram.png deleted file mode 100644 index b547d64..0000000 Binary files a/initial_class_diagram.png and /dev/null differ -- cgit v1.2.3 From c61ce2e94a1be121414670f93987abdd29d389c6 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Fri, 25 Jun 2021 18:27:54 +0200 Subject: Fixing STZ-0004 issue. --- src/musichub/main/Main.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/musichub/main/Main.java b/src/musichub/main/Main.java index f917b01..b72a95b 100644 --- a/src/musichub/main/Main.java +++ b/src/musichub/main/Main.java @@ -20,8 +20,10 @@ public class Main { if (choice.length() == 0) System.exit(0); - while (choice.charAt(0) != 'q') { + while (!choice.equals("")) { //if the user puts nothing, quit the loop/system switch (choice.charAt(0)) { + case 'q': //added the option directly in the switch instead of the loop + System.exit(0); case 'h': printAvailableCommands(); choice = scan.nextLine(); -- cgit v1.2.3 From e58b48a3162539cb79ff495d6040ca6f53f069d6 Mon Sep 17 00:00:00 2001 From: said belhadj Date: Sat, 26 Jun 2021 01:58:15 +0200 Subject: Add the possibility to listen a song thanks to Audio System library --- Song/Side_To_Side.wav | Bin 0 -> 43422962 bytes files/albums.xml | 2 ++ files/elements.xml | 6 +++--- src/musichub/business/AudioElement.java | 16 ++++++++++++++++ src/musichub/business/MusicHub.java | 13 +++++++++++++ src/musichub/business/Song.java | 11 +++++++++++ src/musichub/main/Main.java | 11 ++++++++++- 7 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 Song/Side_To_Side.wav diff --git a/Song/Side_To_Side.wav b/Song/Side_To_Side.wav new file mode 100644 index 0000000..3c874db Binary files /dev/null and b/Song/Side_To_Side.wav differ diff --git a/files/albums.xml b/files/albums.xml index edfd610..edb2a94 100644 --- a/files/albums.xml +++ b/files/albums.xml @@ -12,6 +12,7 @@ b2ee0ca0-b5e2-4bc9-8fed-7932fb145f2f bbe99998-1be6-4a40-8bf0-6a7fce9087c9 66d277ca-cbc4-471c-a07e-082363375bcc + 44136020-dc80-4522-9b71-2b9aad5e3039 @@ -22,6 +23,7 @@ 1978-01-23 44136020-dc80-4522-9b71-2b9aad5e3039 + 66d277ca-cbc4-471c-a07e-082363375bcc \ No newline at end of file diff --git a/files/elements.xml b/files/elements.xml index 7fefc5f..553f228 100644 --- a/files/elements.xml +++ b/files/elements.xml @@ -9,11 +9,11 @@ pop - I Want to Hold your Hand - The Beatles + Side To Side + Ariana Grande 186 66d277ca-cbc4-471c-a07e-082363375bcc - i_want_to_hold_your_hand.mp3 + Song/Side_To_Side.wav rock diff --git a/src/musichub/business/AudioElement.java b/src/musichub/business/AudioElement.java index e0a686b..9294b49 100644 --- a/src/musichub/business/AudioElement.java +++ b/src/musichub/business/AudioElement.java @@ -3,8 +3,16 @@ package musichub.business; import org.w3c.dom.Document; import org.w3c.dom.Element; +import java.io.File; +import java.io.IOException; import java.util.UUID; +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Clip; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; + public abstract class AudioElement { protected String title; protected String artist; @@ -84,5 +92,13 @@ public abstract class AudioElement { parentElement.appendChild(contentElement); } + + public void playSong() throws UnsupportedAudioFileException, IOException, LineUnavailableException { + File file = new File(this.content); + AudioInputStream audioStream = AudioSystem.getAudioInputStream(file); + Clip clip = AudioSystem.getClip(); + clip.open(audioStream); + clip.start(); + } } \ No newline at end of file diff --git a/src/musichub/business/MusicHub.java b/src/musichub/business/MusicHub.java index 38e2214..e138d84 100644 --- a/src/musichub/business/MusicHub.java +++ b/src/musichub/business/MusicHub.java @@ -6,8 +6,12 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import java.io.IOException; import java.util.*; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; + class SortByDate implements Comparator { public int compare(Album a1, Album a2) { return a1.getDate().compareTo(a2.getDate()); @@ -326,4 +330,13 @@ public class MusicHub { } xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); } + + public void getSong(List Songs, String songTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { + for (AudioElement s : Songs) { + if (s.getTitle().equalsIgnoreCase(songTitle)) { + s.playSong(); + } + } + + } } \ No newline at end of file diff --git a/src/musichub/business/Song.java b/src/musichub/business/Song.java index 3e9011b..7b90156 100644 --- a/src/musichub/business/Song.java +++ b/src/musichub/business/Song.java @@ -1,5 +1,14 @@ package musichub.business; +import java.io.File; +import java.io.IOException; + +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Clip; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; + import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -53,4 +62,6 @@ public class Song extends AudioElement { parentElement.appendChild(song); } + + } \ No newline at end of file diff --git a/src/musichub/main/Main.java b/src/musichub/main/Main.java index b72a95b..58080bd 100644 --- a/src/musichub/main/Main.java +++ b/src/musichub/main/Main.java @@ -2,11 +2,17 @@ package musichub.main; import musichub.business.*; +import java.io.IOException; +import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import java.util.Scanner; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; + public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { MusicHub theHub = new MusicHub(); @@ -55,7 +61,10 @@ public class Main { albumTitle = scan.nextLine(); try { + List songs = theHub.getAlbumSongs(albumTitle); System.out.println(theHub.getAlbumSongs(albumTitle)); + String song = scan.nextLine(); + theHub.getSong(songs, song); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } -- cgit v1.2.3 From e38c5887682b13b7d9dadc822c02654939fc7401 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 11:06:19 +0200 Subject: Adding the pom.xml and target folder created from mvn package. --- dependency-reduced-pom.xml | 65 ++++++++++++++++ pom.xml | 84 +++++++++++++++++++++ .../javadoc-options-javadoc-resources.xml | 10 +++ target/maven-archiver/pom.properties | 5 ++ target/original-spoteezer-0.1.0.jar | Bin 0 -> 2014 bytes target/spoteezer-0.1.0.jar | Bin 0 -> 337540 bytes 6 files changed, 164 insertions(+) create mode 100644 dependency-reduced-pom.xml create mode 100644 pom.xml create mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/original-spoteezer-0.1.0.jar create mode 100644 target/spoteezer-0.1.0.jar diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..3b838f2 --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + esiea.softwareengineering + spoteezer + 0.1.0 + + + + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + musichub.main.Main + + + + + + + + maven-surefire-plugin + 2.22.0 + + + org.jacoco + jacoco-maven-plugin + 0.8.7 + + + + prepare-agent + + + + report + test + + report + + + + + + maven-compiler-plugin + + 14 + 14 + + + + + + 1.8 + 1.8 + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..b3833f4 --- /dev/null +++ b/pom.xml @@ -0,0 +1,84 @@ + + + 4.0.0 + esiea.softwareengineering + spoteezer + jar + 0.1.0 + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + musichub.main.Main + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + + org.jacoco + jacoco-maven-plugin + 0.8.7 + + + + prepare-agent + + + + + report + test + + report + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 14 + 14 + + + + + + + org.junit.jupiter + junit-jupiter-api + 5.0.2 + + + org.junit.jupiter + junit-jupiter-engine + 5.0.2 + + + \ No newline at end of file diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml new file mode 100644 index 0000000..8b89c97 --- /dev/null +++ b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml @@ -0,0 +1,10 @@ + + + + + + + + + src/main/javadoc + diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..24b2415 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Jun 26 10:59:45 CEST 2021 +groupId=esiea.softwareengineering +artifactId=spoteezer +version=0.1.0 diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar new file mode 100644 index 0000000..3850ad4 Binary files /dev/null and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar new file mode 100644 index 0000000..99be000 Binary files /dev/null and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 05b5bb7d2407006e08f46f66893a972a9f091952 Mon Sep 17 00:00:00 2001 From: said belhadj Date: Sat, 26 Jun 2021 12:01:49 +0200 Subject: Add reset, pause, quit functionality --- .classpath | 6 ++++ .idea/.gitignore | 8 ++++++ .idea/misc.xml | 6 ++++ .idea/modules.xml | 8 ++++++ .idea/vcs.xml | 6 ++++ .project | 17 +++++++++++ bin/.gitignore | 1 + bin/musichub/business/Album.class | Bin 4580 -> 5577 bytes bin/musichub/business/AudioBook.class | Bin 3854 -> 3968 bytes bin/musichub/business/AudioElement.class | Bin 3209 -> 5105 bytes bin/musichub/business/Category.class | Bin 1318 -> 1442 bytes bin/musichub/business/Genre.class | Bin 1329 -> 1453 bytes bin/musichub/business/Language.class | Bin 1316 -> 1440 bytes bin/musichub/business/MusicHub.class | Bin 8924 -> 11575 bytes bin/musichub/business/NoAlbumFoundException.class | Bin 260 -> 387 bytes .../business/NoElementFoundException.class | Bin 264 -> 393 bytes .../business/NoPlayListFoundException.class | Bin 266 -> 396 bytes bin/musichub/business/PlayList.class | Bin 3240 -> 3905 bytes bin/musichub/business/Song.class | Bin 2853 -> 2907 bytes bin/musichub/business/SortByAuthor.class | Bin 719 -> 891 bytes bin/musichub/business/SortByDate.class | Bin 681 -> 844 bytes bin/musichub/business/SortByGenre.class | Bin 685 -> 848 bytes bin/musichub/main/Main.class | Bin 7826 -> 9528 bytes bin/musichub/util/XMLHandler.class | Bin 2388 -> 2909 bytes .../spoteezer/musichub/business/Album.class | Bin 0 -> 5606 bytes .../spoteezer/musichub/business/AudioBook.class | Bin 0 -> 4278 bytes .../spoteezer/musichub/business/AudioElement.class | Bin 0 -> 3752 bytes .../spoteezer/musichub/business/Category.class | Bin 0 -> 1476 bytes .../spoteezer/musichub/business/Genre.class | Bin 0 -> 1487 bytes .../spoteezer/musichub/business/Language.class | Bin 0 -> 1474 bytes .../spoteezer/musichub/business/MusicHub.class | Bin 0 -> 11031 bytes .../musichub/business/NoAlbumFoundException.class | Bin 0 -> 387 bytes .../business/NoElementFoundException.class | Bin 0 -> 393 bytes .../business/NoPlayListFoundException.class | Bin 0 -> 396 bytes .../spoteezer/musichub/business/PlayList.class | Bin 0 -> 3926 bytes .../spoteezer/musichub/business/Song.class | Bin 0 -> 3217 bytes .../spoteezer/musichub/business/SortByAuthor.class | Bin 0 -> 901 bytes .../spoteezer/musichub/business/SortByDate.class | Bin 0 -> 854 bytes .../spoteezer/musichub/business/SortByGenre.class | Bin 0 -> 858 bytes out/production/spoteezer/musichub/main/Main.class | Bin 0 -> 9322 bytes .../spoteezer/musichub/util/XMLHandler.class | Bin 0 -> 2921 bytes spoteezer.iml | 11 +++++++ src/musichub/business/AudioElement.java | 32 +++++++++++++++++++-- src/musichub/business/MusicHub.java | 8 +++--- src/musichub/business/Song.java | 9 ------ src/musichub/main/Main.java | 6 ++-- 46 files changed, 100 insertions(+), 18 deletions(-) create mode 100644 .classpath create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .project create mode 100644 bin/.gitignore create mode 100644 out/production/spoteezer/musichub/business/Album.class create mode 100644 out/production/spoteezer/musichub/business/AudioBook.class create mode 100644 out/production/spoteezer/musichub/business/AudioElement.class create mode 100644 out/production/spoteezer/musichub/business/Category.class create mode 100644 out/production/spoteezer/musichub/business/Genre.class create mode 100644 out/production/spoteezer/musichub/business/Language.class create mode 100644 out/production/spoteezer/musichub/business/MusicHub.class create mode 100644 out/production/spoteezer/musichub/business/NoAlbumFoundException.class create mode 100644 out/production/spoteezer/musichub/business/NoElementFoundException.class create mode 100644 out/production/spoteezer/musichub/business/NoPlayListFoundException.class create mode 100644 out/production/spoteezer/musichub/business/PlayList.class create mode 100644 out/production/spoteezer/musichub/business/Song.class create mode 100644 out/production/spoteezer/musichub/business/SortByAuthor.class create mode 100644 out/production/spoteezer/musichub/business/SortByDate.class create mode 100644 out/production/spoteezer/musichub/business/SortByGenre.class create mode 100644 out/production/spoteezer/musichub/main/Main.class create mode 100644 out/production/spoteezer/musichub/util/XMLHandler.class create mode 100644 spoteezer.iml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0cbf9cd --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..644a944 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8f05ee9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..cf232f0 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + spoteezer + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..0076c39 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/musichub/ diff --git a/bin/musichub/business/Album.class b/bin/musichub/business/Album.class index 0bc7b94..e2e5b03 100644 Binary files a/bin/musichub/business/Album.class and b/bin/musichub/business/Album.class differ diff --git a/bin/musichub/business/AudioBook.class b/bin/musichub/business/AudioBook.class index acd92fc..6ab9f2a 100644 Binary files a/bin/musichub/business/AudioBook.class and b/bin/musichub/business/AudioBook.class differ diff --git a/bin/musichub/business/AudioElement.class b/bin/musichub/business/AudioElement.class index b737756..9f6e12a 100644 Binary files a/bin/musichub/business/AudioElement.class and b/bin/musichub/business/AudioElement.class differ diff --git a/bin/musichub/business/Category.class b/bin/musichub/business/Category.class index 08b0990..85ff126 100644 Binary files a/bin/musichub/business/Category.class and b/bin/musichub/business/Category.class differ diff --git a/bin/musichub/business/Genre.class b/bin/musichub/business/Genre.class index 5a59007..db6f5d7 100644 Binary files a/bin/musichub/business/Genre.class and b/bin/musichub/business/Genre.class differ diff --git a/bin/musichub/business/Language.class b/bin/musichub/business/Language.class index e22490e..dd87891 100644 Binary files a/bin/musichub/business/Language.class and b/bin/musichub/business/Language.class differ diff --git a/bin/musichub/business/MusicHub.class b/bin/musichub/business/MusicHub.class index 0a7ffda..40e09b2 100644 Binary files a/bin/musichub/business/MusicHub.class and b/bin/musichub/business/MusicHub.class differ diff --git a/bin/musichub/business/NoAlbumFoundException.class b/bin/musichub/business/NoAlbumFoundException.class index 2c37b0c..7cee1f4 100644 Binary files a/bin/musichub/business/NoAlbumFoundException.class and b/bin/musichub/business/NoAlbumFoundException.class differ diff --git a/bin/musichub/business/NoElementFoundException.class b/bin/musichub/business/NoElementFoundException.class index 6afa6b4..e8118b9 100644 Binary files a/bin/musichub/business/NoElementFoundException.class and b/bin/musichub/business/NoElementFoundException.class differ diff --git a/bin/musichub/business/NoPlayListFoundException.class b/bin/musichub/business/NoPlayListFoundException.class index 2290022..15a3811 100644 Binary files a/bin/musichub/business/NoPlayListFoundException.class and b/bin/musichub/business/NoPlayListFoundException.class differ diff --git a/bin/musichub/business/PlayList.class b/bin/musichub/business/PlayList.class index 571eac0..9403ae5 100644 Binary files a/bin/musichub/business/PlayList.class and b/bin/musichub/business/PlayList.class differ diff --git a/bin/musichub/business/Song.class b/bin/musichub/business/Song.class index 2cad917..7790568 100644 Binary files a/bin/musichub/business/Song.class and b/bin/musichub/business/Song.class differ diff --git a/bin/musichub/business/SortByAuthor.class b/bin/musichub/business/SortByAuthor.class index 009d9fe..232d4a1 100644 Binary files a/bin/musichub/business/SortByAuthor.class and b/bin/musichub/business/SortByAuthor.class differ diff --git a/bin/musichub/business/SortByDate.class b/bin/musichub/business/SortByDate.class index 4ad6b49..68e775b 100644 Binary files a/bin/musichub/business/SortByDate.class and b/bin/musichub/business/SortByDate.class differ diff --git a/bin/musichub/business/SortByGenre.class b/bin/musichub/business/SortByGenre.class index cf0f29c..78295f9 100644 Binary files a/bin/musichub/business/SortByGenre.class and b/bin/musichub/business/SortByGenre.class differ diff --git a/bin/musichub/main/Main.class b/bin/musichub/main/Main.class index 0ebef6e..9528e6f 100644 Binary files a/bin/musichub/main/Main.class and b/bin/musichub/main/Main.class differ diff --git a/bin/musichub/util/XMLHandler.class b/bin/musichub/util/XMLHandler.class index 9a53fc4..04ba597 100644 Binary files a/bin/musichub/util/XMLHandler.class and b/bin/musichub/util/XMLHandler.class differ diff --git a/out/production/spoteezer/musichub/business/Album.class b/out/production/spoteezer/musichub/business/Album.class new file mode 100644 index 0000000..c08b1be Binary files /dev/null and b/out/production/spoteezer/musichub/business/Album.class differ diff --git a/out/production/spoteezer/musichub/business/AudioBook.class b/out/production/spoteezer/musichub/business/AudioBook.class new file mode 100644 index 0000000..3ad965d Binary files /dev/null and b/out/production/spoteezer/musichub/business/AudioBook.class differ diff --git a/out/production/spoteezer/musichub/business/AudioElement.class b/out/production/spoteezer/musichub/business/AudioElement.class new file mode 100644 index 0000000..ab20d50 Binary files /dev/null and b/out/production/spoteezer/musichub/business/AudioElement.class differ diff --git a/out/production/spoteezer/musichub/business/Category.class b/out/production/spoteezer/musichub/business/Category.class new file mode 100644 index 0000000..51a68d1 Binary files /dev/null and b/out/production/spoteezer/musichub/business/Category.class differ diff --git a/out/production/spoteezer/musichub/business/Genre.class b/out/production/spoteezer/musichub/business/Genre.class new file mode 100644 index 0000000..66a7d69 Binary files /dev/null and b/out/production/spoteezer/musichub/business/Genre.class differ diff --git a/out/production/spoteezer/musichub/business/Language.class b/out/production/spoteezer/musichub/business/Language.class new file mode 100644 index 0000000..31b17c2 Binary files /dev/null and b/out/production/spoteezer/musichub/business/Language.class differ diff --git a/out/production/spoteezer/musichub/business/MusicHub.class b/out/production/spoteezer/musichub/business/MusicHub.class new file mode 100644 index 0000000..e1a0961 Binary files /dev/null and b/out/production/spoteezer/musichub/business/MusicHub.class differ diff --git a/out/production/spoteezer/musichub/business/NoAlbumFoundException.class b/out/production/spoteezer/musichub/business/NoAlbumFoundException.class new file mode 100644 index 0000000..03aff87 Binary files /dev/null and b/out/production/spoteezer/musichub/business/NoAlbumFoundException.class differ diff --git a/out/production/spoteezer/musichub/business/NoElementFoundException.class b/out/production/spoteezer/musichub/business/NoElementFoundException.class new file mode 100644 index 0000000..6ba1c87 Binary files /dev/null and b/out/production/spoteezer/musichub/business/NoElementFoundException.class differ diff --git a/out/production/spoteezer/musichub/business/NoPlayListFoundException.class b/out/production/spoteezer/musichub/business/NoPlayListFoundException.class new file mode 100644 index 0000000..54319de Binary files /dev/null and b/out/production/spoteezer/musichub/business/NoPlayListFoundException.class differ diff --git a/out/production/spoteezer/musichub/business/PlayList.class b/out/production/spoteezer/musichub/business/PlayList.class new file mode 100644 index 0000000..ea68021 Binary files /dev/null and b/out/production/spoteezer/musichub/business/PlayList.class differ diff --git a/out/production/spoteezer/musichub/business/Song.class b/out/production/spoteezer/musichub/business/Song.class new file mode 100644 index 0000000..c3bdeb7 Binary files /dev/null and b/out/production/spoteezer/musichub/business/Song.class differ diff --git a/out/production/spoteezer/musichub/business/SortByAuthor.class b/out/production/spoteezer/musichub/business/SortByAuthor.class new file mode 100644 index 0000000..fb8ee7a Binary files /dev/null and b/out/production/spoteezer/musichub/business/SortByAuthor.class differ diff --git a/out/production/spoteezer/musichub/business/SortByDate.class b/out/production/spoteezer/musichub/business/SortByDate.class new file mode 100644 index 0000000..c52e870 Binary files /dev/null and b/out/production/spoteezer/musichub/business/SortByDate.class differ diff --git a/out/production/spoteezer/musichub/business/SortByGenre.class b/out/production/spoteezer/musichub/business/SortByGenre.class new file mode 100644 index 0000000..2016012 Binary files /dev/null and b/out/production/spoteezer/musichub/business/SortByGenre.class differ diff --git a/out/production/spoteezer/musichub/main/Main.class b/out/production/spoteezer/musichub/main/Main.class new file mode 100644 index 0000000..419fb9c Binary files /dev/null and b/out/production/spoteezer/musichub/main/Main.class differ diff --git a/out/production/spoteezer/musichub/util/XMLHandler.class b/out/production/spoteezer/musichub/util/XMLHandler.class new file mode 100644 index 0000000..4ab0064 Binary files /dev/null and b/out/production/spoteezer/musichub/util/XMLHandler.class differ diff --git a/spoteezer.iml b/spoteezer.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/spoteezer.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/musichub/business/AudioElement.java b/src/musichub/business/AudioElement.java index 9294b49..0c1e9e4 100644 --- a/src/musichub/business/AudioElement.java +++ b/src/musichub/business/AudioElement.java @@ -5,6 +5,7 @@ import org.w3c.dom.Element; import java.io.File; import java.io.IOException; +import java.util.Scanner; import java.util.UUID; import javax.sound.sampled.AudioInputStream; @@ -93,12 +94,39 @@ public abstract class AudioElement { } - public void playSong() throws UnsupportedAudioFileException, IOException, LineUnavailableException { + public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException { + + Scanner scanner = new Scanner(System.in); + File file = new File(this.content); AudioInputStream audioStream = AudioSystem.getAudioInputStream(file); Clip clip = AudioSystem.getClip(); clip.open(audioStream); - clip.start(); + + String action = ""; + + while(!action.equals("Q")) { + System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit"); + System.out.println("Enter your choice"); + action = scanner.next(); + action = action.toUpperCase(); + + switch(action) { + case "S" : clip.stop(); + break; + case "P" : clip.start(); + break; + case "R" : clip.setMicrosecondPosition(0); + break; + case "Q" : clip.stop(); + break; + default : System.out.println("try again"); + } + System.out.println("You stoped the Audio element"); + } + + clip.close(); + } } \ No newline at end of file diff --git a/src/musichub/business/MusicHub.java b/src/musichub/business/MusicHub.java index e138d84..f7cf137 100644 --- a/src/musichub/business/MusicHub.java +++ b/src/musichub/business/MusicHub.java @@ -331,10 +331,10 @@ public class MusicHub { xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); } - public void getSong(List Songs, String songTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { - for (AudioElement s : Songs) { - if (s.getTitle().equalsIgnoreCase(songTitle)) { - s.playSong(); + public void getAudioElement(List audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { + for (AudioElement el : audios) { + if (el.getTitle().equalsIgnoreCase(elementTitle)) { + el.manageAudioElement(); } } diff --git a/src/musichub/business/Song.java b/src/musichub/business/Song.java index 7b90156..564b7c5 100644 --- a/src/musichub/business/Song.java +++ b/src/musichub/business/Song.java @@ -1,14 +1,5 @@ package musichub.business; -import java.io.File; -import java.io.IOException; - -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.Clip; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.UnsupportedAudioFileException; - import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/src/musichub/main/Main.java b/src/musichub/main/Main.java index 58080bd..2876734 100644 --- a/src/musichub/main/Main.java +++ b/src/musichub/main/Main.java @@ -3,7 +3,6 @@ package musichub.main; import musichub.business.*; import java.io.IOException; -import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; @@ -47,7 +46,8 @@ public class Main { albumTitle = scan.nextLine(); try { - System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); + List songs = theHub.getAlbumSongsSortedByGenre(albumTitle); + System.out.println(songs);; } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } @@ -64,7 +64,7 @@ public class Main { List songs = theHub.getAlbumSongs(albumTitle); System.out.println(theHub.getAlbumSongs(albumTitle)); String song = scan.nextLine(); - theHub.getSong(songs, song); + theHub.getAudioElement(songs, song); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } -- cgit v1.2.3 From e64ffae239b19871704b4ac1e9cd58275ed58622 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 12:34:26 +0200 Subject: Changed the architecture to respect maven and generated an empty javadoc --- bin/musichub/business/Album.class | Bin 4580 -> 0 bytes bin/musichub/business/AudioBook.class | Bin 3854 -> 0 bytes bin/musichub/business/AudioElement.class | Bin 3209 -> 0 bytes bin/musichub/business/Category.class | Bin 1318 -> 0 bytes bin/musichub/business/Genre.class | Bin 1329 -> 0 bytes bin/musichub/business/Language.class | Bin 1316 -> 0 bytes bin/musichub/business/MusicHub.class | Bin 8924 -> 0 bytes bin/musichub/business/NoAlbumFoundException.class | Bin 260 -> 0 bytes .../business/NoElementFoundException.class | Bin 264 -> 0 bytes .../business/NoPlayListFoundException.class | Bin 266 -> 0 bytes bin/musichub/business/PlayList.class | Bin 3240 -> 0 bytes bin/musichub/business/Song.class | Bin 2853 -> 0 bytes bin/musichub/business/SortByAuthor.class | Bin 719 -> 0 bytes bin/musichub/business/SortByDate.class | Bin 681 -> 0 bytes bin/musichub/business/SortByGenre.class | Bin 685 -> 0 bytes bin/musichub/main/Main.class | Bin 7826 -> 0 bytes bin/musichub/util/XMLHandler.class | Bin 2388 -> 0 bytes dependency-reduced-pom.xml | 38 +- pom.xml | 10 +- src/main/java/musichub/business/Album.java | 145 ++++ src/main/java/musichub/business/AudioBook.java | 78 ++ src/main/java/musichub/business/AudioElement.java | 88 +++ src/main/java/musichub/business/Category.java | 14 + src/main/java/musichub/business/Genre.java | 14 + src/main/java/musichub/business/Language.java | 14 + src/main/java/musichub/business/MusicHub.java | 329 ++++++++ .../musichub/business/NoAlbumFoundException.java | 8 + .../musichub/business/NoElementFoundException.java | 8 + .../business/NoPlayListFoundException.java | 8 + src/main/java/musichub/business/PlayList.java | 100 +++ src/main/java/musichub/business/Song.java | 56 ++ src/main/java/musichub/main/Main.java | 248 ++++++ src/main/java/musichub/util/XMLHandler.java | 74 ++ src/musichub/business/Album.java | 145 ---- src/musichub/business/AudioBook.java | 78 -- src/musichub/business/AudioElement.java | 88 --- src/musichub/business/Category.java | 14 - src/musichub/business/Genre.java | 14 - src/musichub/business/Language.java | 14 - src/musichub/business/MusicHub.java | 329 -------- src/musichub/business/NoAlbumFoundException.java | 8 - src/musichub/business/NoElementFoundException.java | 8 - .../business/NoPlayListFoundException.java | 8 - src/musichub/business/PlayList.java | 100 --- src/musichub/business/Song.java | 56 -- src/musichub/main/Main.java | 248 ------ src/musichub/util/XMLHandler.java | 74 -- target/classes/musichub/business/Album.class | Bin 0 -> 5606 bytes target/classes/musichub/business/AudioBook.class | Bin 0 -> 4278 bytes .../classes/musichub/business/AudioElement.class | Bin 0 -> 3752 bytes target/classes/musichub/business/Category.class | Bin 0 -> 1476 bytes target/classes/musichub/business/Genre.class | Bin 0 -> 1487 bytes target/classes/musichub/business/Language.class | Bin 0 -> 1474 bytes target/classes/musichub/business/MusicHub.class | Bin 0 -> 11031 bytes .../musichub/business/NoAlbumFoundException.class | Bin 0 -> 387 bytes .../business/NoElementFoundException.class | Bin 0 -> 393 bytes .../business/NoPlayListFoundException.class | Bin 0 -> 396 bytes target/classes/musichub/business/PlayList.class | Bin 0 -> 3926 bytes target/classes/musichub/business/Song.class | Bin 0 -> 3217 bytes .../classes/musichub/business/SortByAuthor.class | Bin 0 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 0 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 0 -> 858 bytes target/classes/musichub/main/Main.class | Bin 0 -> 9390 bytes target/classes/musichub/util/XMLHandler.class | Bin 0 -> 2921 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 64 ++ .../compile/default-compile/createdFiles.lst | 17 + .../compile/default-compile/inputFiles.lst | 14 + .../testCompile/default-testCompile/inputFiles.lst | 0 target/original-spoteezer-0.1.0.jar | Bin 2014 -> 29836 bytes target/site/apidocs/allclasses-index.html | 106 +++ target/site/apidocs/allpackages-index.html | 76 ++ target/site/apidocs/element-list | 3 + target/site/apidocs/help-doc.html | 162 ++++ target/site/apidocs/index-all.html | 375 ++++++++++ target/site/apidocs/index.html | 78 ++ target/site/apidocs/jquery-ui.overrides.css | 34 + target/site/apidocs/member-search-index.js | 1 + target/site/apidocs/module-search-index.js | 1 + target/site/apidocs/musichub/business/Album.html | 250 +++++++ .../site/apidocs/musichub/business/AudioBook.html | 273 +++++++ .../apidocs/musichub/business/AudioElement.html | 307 ++++++++ .../site/apidocs/musichub/business/Category.html | 258 +++++++ target/site/apidocs/musichub/business/Genre.html | 266 +++++++ .../site/apidocs/musichub/business/Language.html | 258 +++++++ .../site/apidocs/musichub/business/MusicHub.html | 390 ++++++++++ .../musichub/business/NoAlbumFoundException.html | 150 ++++ .../musichub/business/NoElementFoundException.html | 150 ++++ .../business/NoPlayListFoundException.html | 150 ++++ .../site/apidocs/musichub/business/PlayList.html | 215 ++++++ target/site/apidocs/musichub/business/Song.html | 251 +++++++ .../apidocs/musichub/business/class-use/Album.html | 99 +++ .../musichub/business/class-use/AudioBook.html | 65 ++ .../musichub/business/class-use/AudioElement.html | 114 +++ .../musichub/business/class-use/Category.html | 101 +++ .../apidocs/musichub/business/class-use/Genre.html | 98 +++ .../musichub/business/class-use/Language.html | 101 +++ .../musichub/business/class-use/MusicHub.html | 65 ++ .../business/class-use/NoAlbumFoundException.html | 97 +++ .../class-use/NoElementFoundException.html | 95 +++ .../class-use/NoPlayListFoundException.html | 94 +++ .../musichub/business/class-use/PlayList.html | 99 +++ .../apidocs/musichub/business/class-use/Song.html | 90 +++ .../apidocs/musichub/business/package-summary.html | 116 +++ .../apidocs/musichub/business/package-tree.html | 114 +++ .../apidocs/musichub/business/package-use.html | 105 +++ target/site/apidocs/musichub/main/Main.html | 166 +++++ .../site/apidocs/musichub/main/class-use/Main.html | 65 ++ .../apidocs/musichub/main/package-summary.html | 80 ++ .../site/apidocs/musichub/main/package-tree.html | 79 ++ target/site/apidocs/musichub/main/package-use.html | 65 ++ target/site/apidocs/musichub/util/XMLHandler.html | 186 +++++ .../musichub/util/class-use/XMLHandler.html | 65 ++ .../apidocs/musichub/util/package-summary.html | 80 ++ .../site/apidocs/musichub/util/package-tree.html | 79 ++ target/site/apidocs/musichub/util/package-use.html | 65 ++ target/site/apidocs/overview-summary.html | 27 + target/site/apidocs/overview-tree.html | 118 +++ target/site/apidocs/package-search-index.js | 1 + target/site/apidocs/resources/glass.png | Bin 0 -> 499 bytes target/site/apidocs/resources/x.png | Bin 0 -> 394 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../script-dir/images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../script-dir/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../script-dir/images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../script-dir/images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../script-dir/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes target/site/apidocs/script-dir/jquery-3.5.1.min.js | 2 + target/site/apidocs/script-dir/jquery-ui.min.css | 7 + target/site/apidocs/script-dir/jquery-ui.min.js | 6 + .../apidocs/script-dir/jquery-ui.structure.min.css | 5 + target/site/apidocs/script.js | 132 ++++ target/site/apidocs/search.js | 354 +++++++++ target/site/apidocs/serialized-form.html | 89 +++ target/site/apidocs/stylesheet.css | 827 +++++++++++++++++++++ target/site/apidocs/tag-search-index.js | 1 + target/site/apidocs/type-search-index.js | 1 + target/spoteezer-0.1.0.jar | Bin 337540 -> 365706 bytes 143 files changed, 9013 insertions(+), 1207 deletions(-) delete mode 100644 bin/musichub/business/Album.class delete mode 100644 bin/musichub/business/AudioBook.class delete mode 100644 bin/musichub/business/AudioElement.class delete mode 100644 bin/musichub/business/Category.class delete mode 100644 bin/musichub/business/Genre.class delete mode 100644 bin/musichub/business/Language.class delete mode 100644 bin/musichub/business/MusicHub.class delete mode 100644 bin/musichub/business/NoAlbumFoundException.class delete mode 100644 bin/musichub/business/NoElementFoundException.class delete mode 100644 bin/musichub/business/NoPlayListFoundException.class delete mode 100644 bin/musichub/business/PlayList.class delete mode 100644 bin/musichub/business/Song.class delete mode 100644 bin/musichub/business/SortByAuthor.class delete mode 100644 bin/musichub/business/SortByDate.class delete mode 100644 bin/musichub/business/SortByGenre.class delete mode 100644 bin/musichub/main/Main.class delete mode 100644 bin/musichub/util/XMLHandler.class create mode 100644 src/main/java/musichub/business/Album.java create mode 100644 src/main/java/musichub/business/AudioBook.java create mode 100644 src/main/java/musichub/business/AudioElement.java create mode 100644 src/main/java/musichub/business/Category.java create mode 100644 src/main/java/musichub/business/Genre.java create mode 100644 src/main/java/musichub/business/Language.java create mode 100644 src/main/java/musichub/business/MusicHub.java create mode 100644 src/main/java/musichub/business/NoAlbumFoundException.java create mode 100644 src/main/java/musichub/business/NoElementFoundException.java create mode 100644 src/main/java/musichub/business/NoPlayListFoundException.java create mode 100644 src/main/java/musichub/business/PlayList.java create mode 100644 src/main/java/musichub/business/Song.java create mode 100644 src/main/java/musichub/main/Main.java create mode 100644 src/main/java/musichub/util/XMLHandler.java delete mode 100644 src/musichub/business/Album.java delete mode 100644 src/musichub/business/AudioBook.java delete mode 100644 src/musichub/business/AudioElement.java delete mode 100644 src/musichub/business/Category.java delete mode 100644 src/musichub/business/Genre.java delete mode 100644 src/musichub/business/Language.java delete mode 100644 src/musichub/business/MusicHub.java delete mode 100644 src/musichub/business/NoAlbumFoundException.java delete mode 100644 src/musichub/business/NoElementFoundException.java delete mode 100644 src/musichub/business/NoPlayListFoundException.java delete mode 100644 src/musichub/business/PlayList.java delete mode 100644 src/musichub/business/Song.java delete mode 100644 src/musichub/main/Main.java delete mode 100644 src/musichub/util/XMLHandler.java create mode 100644 target/classes/musichub/business/Album.class create mode 100644 target/classes/musichub/business/AudioBook.class create mode 100644 target/classes/musichub/business/AudioElement.class create mode 100644 target/classes/musichub/business/Category.class create mode 100644 target/classes/musichub/business/Genre.class create mode 100644 target/classes/musichub/business/Language.class create mode 100644 target/classes/musichub/business/MusicHub.class create mode 100644 target/classes/musichub/business/NoAlbumFoundException.class create mode 100644 target/classes/musichub/business/NoElementFoundException.class create mode 100644 target/classes/musichub/business/NoPlayListFoundException.class create mode 100644 target/classes/musichub/business/PlayList.class create mode 100644 target/classes/musichub/business/Song.class create mode 100644 target/classes/musichub/business/SortByAuthor.class create mode 100644 target/classes/musichub/business/SortByDate.class create mode 100644 target/classes/musichub/business/SortByGenre.class create mode 100644 target/classes/musichub/main/Main.class create mode 100644 target/classes/musichub/util/XMLHandler.class create mode 100644 target/maven-javadoc-plugin-stale-data.txt create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 target/site/apidocs/allclasses-index.html create mode 100644 target/site/apidocs/allpackages-index.html create mode 100644 target/site/apidocs/element-list create mode 100644 target/site/apidocs/help-doc.html create mode 100644 target/site/apidocs/index-all.html create mode 100644 target/site/apidocs/index.html create mode 100644 target/site/apidocs/jquery-ui.overrides.css create mode 100644 target/site/apidocs/member-search-index.js create mode 100644 target/site/apidocs/module-search-index.js create mode 100644 target/site/apidocs/musichub/business/Album.html create mode 100644 target/site/apidocs/musichub/business/AudioBook.html create mode 100644 target/site/apidocs/musichub/business/AudioElement.html create mode 100644 target/site/apidocs/musichub/business/Category.html create mode 100644 target/site/apidocs/musichub/business/Genre.html create mode 100644 target/site/apidocs/musichub/business/Language.html create mode 100644 target/site/apidocs/musichub/business/MusicHub.html create mode 100644 target/site/apidocs/musichub/business/NoAlbumFoundException.html create mode 100644 target/site/apidocs/musichub/business/NoElementFoundException.html create mode 100644 target/site/apidocs/musichub/business/NoPlayListFoundException.html create mode 100644 target/site/apidocs/musichub/business/PlayList.html create mode 100644 target/site/apidocs/musichub/business/Song.html create mode 100644 target/site/apidocs/musichub/business/class-use/Album.html create mode 100644 target/site/apidocs/musichub/business/class-use/AudioBook.html create mode 100644 target/site/apidocs/musichub/business/class-use/AudioElement.html create mode 100644 target/site/apidocs/musichub/business/class-use/Category.html create mode 100644 target/site/apidocs/musichub/business/class-use/Genre.html create mode 100644 target/site/apidocs/musichub/business/class-use/Language.html create mode 100644 target/site/apidocs/musichub/business/class-use/MusicHub.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoElementFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/PlayList.html create mode 100644 target/site/apidocs/musichub/business/class-use/Song.html create mode 100644 target/site/apidocs/musichub/business/package-summary.html create mode 100644 target/site/apidocs/musichub/business/package-tree.html create mode 100644 target/site/apidocs/musichub/business/package-use.html create mode 100644 target/site/apidocs/musichub/main/Main.html create mode 100644 target/site/apidocs/musichub/main/class-use/Main.html create mode 100644 target/site/apidocs/musichub/main/package-summary.html create mode 100644 target/site/apidocs/musichub/main/package-tree.html create mode 100644 target/site/apidocs/musichub/main/package-use.html create mode 100644 target/site/apidocs/musichub/util/XMLHandler.html create mode 100644 target/site/apidocs/musichub/util/class-use/XMLHandler.html create mode 100644 target/site/apidocs/musichub/util/package-summary.html create mode 100644 target/site/apidocs/musichub/util/package-tree.html create mode 100644 target/site/apidocs/musichub/util/package-use.html create mode 100644 target/site/apidocs/overview-summary.html create mode 100644 target/site/apidocs/overview-tree.html create mode 100644 target/site/apidocs/package-search-index.js create mode 100644 target/site/apidocs/resources/glass.png create mode 100644 target/site/apidocs/resources/x.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png create mode 100644 target/site/apidocs/script-dir/jquery-3.5.1.min.js create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.css create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.js create mode 100644 target/site/apidocs/script-dir/jquery-ui.structure.min.css create mode 100644 target/site/apidocs/script.js create mode 100644 target/site/apidocs/search.js create mode 100644 target/site/apidocs/serialized-form.html create mode 100644 target/site/apidocs/stylesheet.css create mode 100644 target/site/apidocs/tag-search-index.js create mode 100644 target/site/apidocs/type-search-index.js diff --git a/bin/musichub/business/Album.class b/bin/musichub/business/Album.class deleted file mode 100644 index 0bc7b94..0000000 Binary files a/bin/musichub/business/Album.class and /dev/null differ diff --git a/bin/musichub/business/AudioBook.class b/bin/musichub/business/AudioBook.class deleted file mode 100644 index acd92fc..0000000 Binary files a/bin/musichub/business/AudioBook.class and /dev/null differ diff --git a/bin/musichub/business/AudioElement.class b/bin/musichub/business/AudioElement.class deleted file mode 100644 index b737756..0000000 Binary files a/bin/musichub/business/AudioElement.class and /dev/null differ diff --git a/bin/musichub/business/Category.class b/bin/musichub/business/Category.class deleted file mode 100644 index 08b0990..0000000 Binary files a/bin/musichub/business/Category.class and /dev/null differ diff --git a/bin/musichub/business/Genre.class b/bin/musichub/business/Genre.class deleted file mode 100644 index 5a59007..0000000 Binary files a/bin/musichub/business/Genre.class and /dev/null differ diff --git a/bin/musichub/business/Language.class b/bin/musichub/business/Language.class deleted file mode 100644 index e22490e..0000000 Binary files a/bin/musichub/business/Language.class and /dev/null differ diff --git a/bin/musichub/business/MusicHub.class b/bin/musichub/business/MusicHub.class deleted file mode 100644 index 0a7ffda..0000000 Binary files a/bin/musichub/business/MusicHub.class and /dev/null differ diff --git a/bin/musichub/business/NoAlbumFoundException.class b/bin/musichub/business/NoAlbumFoundException.class deleted file mode 100644 index 2c37b0c..0000000 Binary files a/bin/musichub/business/NoAlbumFoundException.class and /dev/null differ diff --git a/bin/musichub/business/NoElementFoundException.class b/bin/musichub/business/NoElementFoundException.class deleted file mode 100644 index 6afa6b4..0000000 Binary files a/bin/musichub/business/NoElementFoundException.class and /dev/null differ diff --git a/bin/musichub/business/NoPlayListFoundException.class b/bin/musichub/business/NoPlayListFoundException.class deleted file mode 100644 index 2290022..0000000 Binary files a/bin/musichub/business/NoPlayListFoundException.class and /dev/null differ diff --git a/bin/musichub/business/PlayList.class b/bin/musichub/business/PlayList.class deleted file mode 100644 index 571eac0..0000000 Binary files a/bin/musichub/business/PlayList.class and /dev/null differ diff --git a/bin/musichub/business/Song.class b/bin/musichub/business/Song.class deleted file mode 100644 index 2cad917..0000000 Binary files a/bin/musichub/business/Song.class and /dev/null differ diff --git a/bin/musichub/business/SortByAuthor.class b/bin/musichub/business/SortByAuthor.class deleted file mode 100644 index 009d9fe..0000000 Binary files a/bin/musichub/business/SortByAuthor.class and /dev/null differ diff --git a/bin/musichub/business/SortByDate.class b/bin/musichub/business/SortByDate.class deleted file mode 100644 index 4ad6b49..0000000 Binary files a/bin/musichub/business/SortByDate.class and /dev/null differ diff --git a/bin/musichub/business/SortByGenre.class b/bin/musichub/business/SortByGenre.class deleted file mode 100644 index cf0f29c..0000000 Binary files a/bin/musichub/business/SortByGenre.class and /dev/null differ diff --git a/bin/musichub/main/Main.class b/bin/musichub/main/Main.class deleted file mode 100644 index 0ebef6e..0000000 Binary files a/bin/musichub/main/Main.class and /dev/null differ diff --git a/bin/musichub/util/XMLHandler.class b/bin/musichub/util/XMLHandler.class deleted file mode 100644 index 9a53fc4..0000000 Binary files a/bin/musichub/util/XMLHandler.class and /dev/null differ diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 3b838f2..027738e 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -1,16 +1,16 @@ - 4.0.0 - esiea.softwareengineering - spoteezer - 0.1.0 - - - - maven-shade-plugin - 3.2.4 - + 4.0.0 + esiea.softwareengineering + spoteezer + 0.1.0 + + + + maven-shade-plugin + 3.2.4 + package @@ -51,15 +51,17 @@ maven-compiler-plugin - - 14 - 14 - + + 16 + 16 + - - 1.8 - 1.8 - + + 16 + 16 + 16 + 16 + diff --git a/pom.xml b/pom.xml index b3833f4..821c1b6 100644 --- a/pom.xml +++ b/pom.xml @@ -8,8 +8,10 @@ jar 0.1.0 - 1.8 - 1.8 + 16 + 16 + 16 + 16 @@ -63,8 +65,8 @@ org.apache.maven.plugins maven-compiler-plugin - 14 - 14 + 16 + 16 diff --git a/src/main/java/musichub/business/Album.java b/src/main/java/musichub/business/Album.java new file mode 100644 index 0000000..01fd179 --- /dev/null +++ b/src/main/java/musichub/business/Album.java @@ -0,0 +1,145 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + + +public class Album { + private final String title; + private final int lengthInSeconds; + private final UUID uuid; + private String artist; + private Date date; + private ArrayList songsUIDs; + + public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList songsUIDs) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.fromString(id); + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(date); + } catch (ParseException ex) { + ex.printStackTrace(); + } + this.songsUIDs = songsUIDs; + } + + public Album(String title, String artist, int lengthInSeconds, String date) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.randomUUID(); + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(date); + } catch (ParseException ex) { + ex.printStackTrace(); + } + this.songsUIDs = new ArrayList<>(); + } + + public Album(Element xmlElement) throws Exception { + { + this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("lengthInSeconds").item(0).getTextContent()); + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty album UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(xmlElement.getElementsByTagName("date").item(0).getTextContent()); + //parse list of songs: + Node songsElement = xmlElement.getElementsByTagName("songs").item(0); + NodeList songUUIDNodes = songsElement.getChildNodes(); + if (songUUIDNodes == null) return; + + this.songsUIDs = new ArrayList<>(); + + for (int i = 0; i < songUUIDNodes.getLength(); i++) { + if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element songElement = (Element) songUUIDNodes.item(i); + if (songElement.getNodeName().equals("UUID")) { + try { + this.addSong(UUID.fromString(songElement.getTextContent())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + } + } + } + + + public void addSong(UUID song) { + songsUIDs.add(song); + } + + + public List getSongs() { + return songsUIDs; + } + + public ArrayList getSongsRandomly() { + ArrayList shuffledSongs = songsUIDs; + Collections.shuffle(shuffledSongs); + return shuffledSongs; + } + + public String getTitle() { + return title; + } + + public Date getDate() { + return date; + } + + public void createXMLElement(Document document, Element parentElement) { + Element albumElement = document.createElement("album"); + parentElement.appendChild(albumElement); + + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + albumElement.appendChild(nameElement); + + Element artistElement = document.createElement("artist"); + artistElement.appendChild(document.createTextNode(artist)); + albumElement.appendChild(artistElement); + + Element lengthElement = document.createElement("lengthInSeconds"); + lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); + albumElement.appendChild(lengthElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + albumElement.appendChild(UUIDElement); + + Element dateElement = document.createElement("date"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + dateElement.appendChild(document.createTextNode(sdf.format(date))); + albumElement.appendChild(dateElement); + + Element songsElement = document.createElement("songs"); + for (UUID currentUUID : this.songsUIDs) { + Element songUUIDElement = document.createElement("UUID"); + songUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); + songsElement.appendChild(songUUIDElement); + } + albumElement.appendChild(songsElement); + + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/AudioBook.java b/src/main/java/musichub/business/AudioBook.java new file mode 100644 index 0000000..80392d6 --- /dev/null +++ b/src/main/java/musichub/business/AudioBook.java @@ -0,0 +1,78 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class AudioBook extends AudioElement { + private Language language; + private Category category; + + public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) { + super(title, artist, lengthInSeconds, uid, content); + this.setLanguage(language); + this.setCategory(category); + } + + public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) { + super(title, artist, lengthInSeconds, content); + this.setLanguage(language); + this.setCategory(category); + } + + public AudioBook(Element xmlElement) { + super(xmlElement); + this.setLanguage(xmlElement.getElementsByTagName("language").item(0).getTextContent()); + this.setCategory(xmlElement.getElementsByTagName("category").item(0).getTextContent()); + } + + public Language getLanguage() { + return this.language; + } + + public void setLanguage(String language) { + switch (language.toLowerCase()) { + default -> this.language = Language.ENGLISH; + case "french" -> this.language = Language.FRENCH; + case "german" -> this.language = Language.GERMAN; + case "spanish" -> this.language = Language.SPANISH; + case "italian" -> this.language = Language.ITALIAN; + } + } + + public Category getCategory() { + return this.category; + } + + public void setCategory(String category) { + switch (category.toLowerCase()) { + default -> this.category = Category.YOUTH; + case "novel" -> this.category = Category.NOVEL; + case "theater" -> this.category = Category.THEATER; + case "documentary" -> this.category = Category.DOCUMENTARY; + case "speech" -> this.category = Category.SPEECH; + } + } + + + public String toString() { + return super.toString() + ", Language = " + getLanguage() + ", Category = " + getCategory() + "\n"; + } + + + public void createXMLElement(Document document, Element parentElement) { + // audiobook element + Element audioBook = document.createElement("audiobook"); + + super.createXMLElement(document, audioBook); + + Element languageElement = document.createElement("language"); + languageElement.appendChild(document.createTextNode(language.getLanguage())); + audioBook.appendChild(languageElement); + + Element categoryElement = document.createElement("category"); + categoryElement.appendChild(document.createTextNode(category.getCategory())); + audioBook.appendChild(categoryElement); + + parentElement.appendChild(audioBook); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java new file mode 100644 index 0000000..e0a686b --- /dev/null +++ b/src/main/java/musichub/business/AudioElement.java @@ -0,0 +1,88 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.UUID; + +public abstract class AudioElement { + protected String title; + protected String artist; + protected int lengthInSeconds; + protected UUID uuid; + protected String content; + + public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.fromString(id); + this.content = content; + } + + public AudioElement(String title, String artist, int lengthInSeconds, String content) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.content = content; + this.uuid = UUID.randomUUID(); + } + + public AudioElement(Element xmlElement) { + { + title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + artist = xmlElement.getElementsByTagName("artist").item(0).getTextContent(); + lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("length").item(0).getTextContent()); + content = xmlElement.getElementsByTagName("content").item(0).getTextContent(); + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty element UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + } + } + + public UUID getUUID() { + return this.uuid; + } + + public String getArtist() { + return this.artist; + } + + public String getTitle() { + return this.title; + } + + public String toString() { + return "Title = " + this.title + ", Artist = " + this.artist + ", Length = " + this.lengthInSeconds + ", Content = " + this.content; + } + + public void createXMLElement(Document document, Element parentElement) { + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + parentElement.appendChild(nameElement); + + Element artistElement = document.createElement("artist"); + artistElement.appendChild(document.createTextNode(artist)); + parentElement.appendChild(artistElement); + + Element lengthElement = document.createElement("length"); + lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); + parentElement.appendChild(lengthElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + parentElement.appendChild(UUIDElement); + + Element contentElement = document.createElement("content"); + contentElement.appendChild(document.createTextNode(content)); + parentElement.appendChild(contentElement); + + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Category.java b/src/main/java/musichub/business/Category.java new file mode 100644 index 0000000..f676e51 --- /dev/null +++ b/src/main/java/musichub/business/Category.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Category { + YOUTH("youth"), NOVEL("novel"), THEATER("theater"), DOCUMENTARY("documentary"), SPEECH("speech"); + private final String category; + + Category(String category) { + this.category = category; + } + + public String getCategory() { + return category; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Genre.java b/src/main/java/musichub/business/Genre.java new file mode 100644 index 0000000..18deca6 --- /dev/null +++ b/src/main/java/musichub/business/Genre.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Genre { + JAZZ("jazz"), CLASSIC("classic"), HIPHOP("hiphop"), ROCK("rock"), POP("pop"), RAP("rap"); + private final String genre; + + Genre(String genre) { + this.genre = genre; + } + + public String getGenre() { + return genre; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Language.java b/src/main/java/musichub/business/Language.java new file mode 100644 index 0000000..679e586 --- /dev/null +++ b/src/main/java/musichub/business/Language.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Language { + FRENCH("french"), ENGLISH("english"), ITALIAN("italian"), SPANISH("spanish"), GERMAN("german"); + private final String language; + + Language(String language) { + this.language = language; + } + + public String getLanguage() { + return language; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java new file mode 100644 index 0000000..38e2214 --- /dev/null +++ b/src/main/java/musichub/business/MusicHub.java @@ -0,0 +1,329 @@ +package musichub.business; + +import musichub.util.XMLHandler; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.*; + +class SortByDate implements Comparator { + public int compare(Album a1, Album a2) { + return a1.getDate().compareTo(a2.getDate()); + } +} + +class SortByGenre implements Comparator { + public int compare(Song s1, Song s2) { + return s1.getGenre().compareTo(s2.getGenre()); + } +} + +class SortByAuthor implements Comparator { + public int compare(AudioElement e1, AudioElement e2) { + return e1.getArtist().compareTo(e2.getArtist()); + } +} + +public class MusicHub { + public static final String DIR = System.getProperty("user.dir"); + public static final String ALBUMS_FILE_PATH = DIR + "/files/albums.xml"; + public static final String PLAYLISTS_FILE_PATH = DIR + "/files/playlists.xml"; + public static final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml"; + private final List albums; + private final List playlists; + private final List elements; + private final XMLHandler xmlHandler = new XMLHandler(); + + public MusicHub() { + albums = new LinkedList<>(); + playlists = new LinkedList<>(); + elements = new LinkedList<>(); + this.loadElements(); + this.loadAlbums(); + this.loadPlaylists(); + } + + public void addElement(AudioElement element) { + elements.add(element); + } + + public void addAlbum(Album album) { + albums.add(album); + } + + public void addPlaylist(PlayList playlist) { + playlists.add(playlist); + } + + public void deletePlayList(String playListTitle) throws NoPlayListFoundException { + + PlayList thePlayList = null; + boolean result = false; + for (PlayList pl : playlists) { + if (pl.getTitle().equalsIgnoreCase(playListTitle)) { + thePlayList = pl; + break; + } + } + + if (thePlayList != null) + result = playlists.remove(thePlayList); + if (!result) throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); + } + + public Iterator albums() { + return albums.listIterator(); + } + + public Iterator playlists() { + return playlists.listIterator(); + } + + public Iterator elements() { + return elements.listIterator(); + } + + public String getAlbumsTitlesSortedByDate() { + StringBuilder titleList = new StringBuilder(); + albums.sort(new SortByDate()); + for (Album al : albums) + titleList.append(al.getTitle()).append("\n"); + return titleList.toString(); + } + + public String getAudiobooksTitlesSortedByAuthor() { + StringBuilder titleList = new StringBuilder(); + List audioBookList = new ArrayList<>(); + for (AudioElement ae : elements) + if (ae instanceof AudioBook) + audioBookList.add(ae); + audioBookList.sort(new SortByAuthor()); + for (AudioElement ab : audioBookList) + titleList.append(ab.getArtist()).append("\n"); + return titleList.toString(); + } + + public List getAlbumSongs(String albumTitle) throws NoAlbumFoundException { + Album theAlbum = null; + ArrayList songsInAlbum = new ArrayList<>(); + for (Album al : albums) { + if (al.getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = al; + break; + } + } + if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); + + List songIDs = theAlbum.getSongs(); + for (UUID id : songIDs) + for (AudioElement el : elements) { + if (el instanceof Song) { + if (el.getUUID().equals(id)) songsInAlbum.add(el); + } + } + return songsInAlbum; + + } + + public List getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException { + Album theAlbum = null; + ArrayList songsInAlbum = new ArrayList<>(); + for (Album al : albums) { + if (al.getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = al; + break; + } + } + if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); + + List songIDs = theAlbum.getSongs(); + for (UUID id : songIDs) + for (AudioElement el : elements) { + if (el instanceof Song) { + if (el.getUUID().equals(id)) songsInAlbum.add((Song) el); + } + } + songsInAlbum.sort(new SortByGenre()); + return songsInAlbum; + + } + + public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException { + Album theAlbum = null; + int i; + boolean found = false; + for (i = 0; i < albums.size(); i++) { + if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = albums.get(i); + found = true; + break; + } + } + + if (found) { + AudioElement theElement = null; + for (AudioElement ae : elements) { + if (ae.getTitle().equalsIgnoreCase(elementTitle)) { + theElement = ae; + break; + } + } + if (theElement != null) { + theAlbum.addSong(theElement.getUUID()); + //replace the album in the list + albums.set(i, theAlbum); + } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); + } else throw new NoAlbumFoundException("Album " + albumTitle + " not found!"); + + } + + public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException { + PlayList thePlaylist = null; + int i; + boolean found = false; + + for (i = 0; i < playlists.size(); i++) { + if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) { + thePlaylist = playlists.get(i); + found = true; + break; + } + } + + if (found) { + AudioElement theElement = null; + for (AudioElement ae : elements) { + if (ae.getTitle().equalsIgnoreCase(elementTitle)) { + theElement = ae; + break; + } + } + if (theElement != null) { + thePlaylist.addElement(theElement.getUUID()); + //replace the album in the list + playlists.set(i, thePlaylist); + } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); + + } else throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); + + } + + private void loadAlbums() { + NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH); + if (albumNodes == null) return; + + for (int i = 0; i < albumNodes.getLength(); i++) { + if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element albumElement = (Element) albumNodes.item(i); + if (albumElement.getNodeName().equals("album")) { + try { + this.addAlbum(new Album(albumElement)); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML album element"); + } + } + } + } + } + + private void loadPlaylists() { + NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH); + if (playlistNodes == null) return; + + for (int i = 0; i < playlistNodes.getLength(); i++) { + if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element playlistElement = (Element) playlistNodes.item(i); + if (playlistElement.getNodeName().equals("playlist")) { + try { + this.addPlaylist(new PlayList(playlistElement)); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML playlist element"); + } + } + } + } + } + + private void loadElements() { + NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH); + if (audioelementsNodes == null) return; + + for (int i = 0; i < audioelementsNodes.getLength(); i++) { + if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element audioElement = (Element) audioelementsNodes.item(i); + if (audioElement.getNodeName().equals("song")) { + try { + AudioElement newSong = new Song(audioElement); + this.addElement(newSong); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML song element"); + } + } + if (audioElement.getNodeName().equals("audiobook")) { + try { + AudioElement newAudioBook = new AudioBook(audioElement); + this.addElement(newAudioBook); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML audiobook element"); + } + } + } + } + } + + + public void saveAlbums() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("albums"); + document.appendChild(root); + + //save all albums + for (Iterator albumsIter = this.albums(); albumsIter.hasNext(); ) { + Album currentAlbum = albumsIter.next(); + currentAlbum.createXMLElement(document, root); + } + xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH); + } + + public void savePlayLists() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("playlists"); + document.appendChild(root); + + //save all playlists + for (Iterator playlistsIter = this.playlists(); playlistsIter.hasNext(); ) { + PlayList currentPlayList = playlistsIter.next(); + currentPlayList.createXMLElement(document, root); + } + xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH); + } + + public void saveElements() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("elements"); + document.appendChild(root); + + //save all AudioElements + for (AudioElement currentElement : elements) { + + if (currentElement instanceof Song) { + currentElement.createXMLElement(document, root); + } + if (currentElement instanceof AudioBook) { + currentElement.createXMLElement(document, root); + } + } + xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoAlbumFoundException.java b/src/main/java/musichub/business/NoAlbumFoundException.java new file mode 100644 index 0000000..04cbfcd --- /dev/null +++ b/src/main/java/musichub/business/NoAlbumFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoAlbumFoundException extends Exception { + + public NoAlbumFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoElementFoundException.java b/src/main/java/musichub/business/NoElementFoundException.java new file mode 100644 index 0000000..a9b0d76 --- /dev/null +++ b/src/main/java/musichub/business/NoElementFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoElementFoundException extends Exception { + + public NoElementFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoPlayListFoundException.java b/src/main/java/musichub/business/NoPlayListFoundException.java new file mode 100644 index 0000000..c5eb413 --- /dev/null +++ b/src/main/java/musichub/business/NoPlayListFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoPlayListFoundException extends Exception { + + public NoPlayListFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/PlayList.java b/src/main/java/musichub/business/PlayList.java new file mode 100644 index 0000000..4180a62 --- /dev/null +++ b/src/main/java/musichub/business/PlayList.java @@ -0,0 +1,100 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.UUID; + +public class PlayList { + private final String title; + private final UUID uuid; + private ArrayList elementUUIDs; + + public PlayList(String title, String id, ArrayList elementUUIDs) { + this.title = title; + this.uuid = UUID.fromString(id); + this.elementUUIDs = elementUUIDs; + } + + public PlayList(String title) { + this.title = title; + this.uuid = UUID.randomUUID(); + this.elementUUIDs = new ArrayList<>(); + } + + public PlayList(Element xmlElement) { + { + this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty playlist UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + + //parse list of elements: + Node elementsElement = xmlElement.getElementsByTagName("elements").item(0); + NodeList elementUUIDNodes = elementsElement.getChildNodes(); + if (elementUUIDNodes == null) return; + + this.elementUUIDs = new ArrayList<>(); + + + for (int i = 0; i < elementUUIDNodes.getLength(); i++) { + if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element elementElement = (Element) elementUUIDNodes.item(i); + if (elementElement.getNodeName().equals("UUID")) { + try { + this.addElement(UUID.fromString(elementElement.getTextContent())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + } + } + } + + public void addElement(UUID element) { + elementUUIDs.add(element); + } + + public ArrayList getElements() { + return elementUUIDs; + } + + public String getTitle() { + return title; + } + + public void createXMLElement(Document document, Element parentElement) { + Element playlistElement = document.createElement("playlist"); + parentElement.appendChild(playlistElement); + + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + playlistElement.appendChild(nameElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + playlistElement.appendChild(UUIDElement); + + + Element elementsElement = document.createElement("elements"); + for (UUID currentUUID : this.elementUUIDs) { + + Element elementUUIDElement = document.createElement("UUID"); + elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); + elementsElement.appendChild(elementUUIDElement); + } + playlistElement.appendChild(elementsElement); + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Song.java b/src/main/java/musichub/business/Song.java new file mode 100644 index 0000000..3e9011b --- /dev/null +++ b/src/main/java/musichub/business/Song.java @@ -0,0 +1,56 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +public class Song extends AudioElement { + private Genre genre; + + public Song(String title, String artist, int length, String uid, String content, String genre) { + super(title, artist, length, uid, content); + this.setGenre(genre); + } + + public Song(String title, String artist, int length, String content, String genre) { + super(title, artist, length, content); + this.setGenre(genre); + } + + public Song(Element xmlElement) { + super(xmlElement); + this.setGenre(xmlElement.getElementsByTagName("genre").item(0).getTextContent()); + } + + public String getGenre() { + return genre.getGenre(); + } + + public void setGenre(String genre) { + switch (genre.toLowerCase()) { + default -> this.genre = Genre.JAZZ; + case "classic" -> this.genre = Genre.CLASSIC; + case "hiphop" -> this.genre = Genre.HIPHOP; + case "rock" -> this.genre = Genre.ROCK; + case "pop" -> this.genre = Genre.POP; + case "rap" -> this.genre = Genre.RAP; + } + } + + public String toString() { + return super.toString() + ", Genre = " + getGenre() + "\n"; + } + + public void createXMLElement(Document document, Element parentElement) { + // song element + Element song = document.createElement("song"); + + super.createXMLElement(document, song); + + Element genreElement = document.createElement("genre"); + genreElement.appendChild(document.createTextNode(genre.getGenre())); + song.appendChild(genreElement); + + parentElement.appendChild(song); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java new file mode 100644 index 0000000..b72a95b --- /dev/null +++ b/src/main/java/musichub/main/Main.java @@ -0,0 +1,248 @@ +package musichub.main; + +import musichub.business.*; + +import java.util.Iterator; +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + + MusicHub theHub = new MusicHub(); + + System.out.println("Type h for available commands"); + + + Scanner scan = new Scanner(System.in); + String choice = scan.nextLine(); + + String albumTitle; + + if (choice.length() == 0) System.exit(0); + + while (!choice.equals("")) { //if the user puts nothing, quit the loop/system + switch (choice.charAt(0)) { + case 'q': //added the option directly in the switch instead of the loop + System.exit(0); + case 'h': + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 't': + //album titles, ordered by date + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'g': + //songs of an album, sorted by genre + System.out.println("Songs of an album sorted by genre will be displayed; enter the album name, available albums are:"); + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + + albumTitle = scan.nextLine(); + try { + System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); + } catch (NoAlbumFoundException ex) { + System.out.println("No album found with the requested title " + ex.getMessage()); + } + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'd': + //songs of an album + System.out.println("Songs of an album will be displayed; enter the album name, available albums are:"); + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + + albumTitle = scan.nextLine(); + try { + System.out.println(theHub.getAlbumSongs(albumTitle)); + } catch (NoAlbumFoundException ex) { + System.out.println("No album found with the requested title " + ex.getMessage()); + } + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'u': + //audiobooks ordered by author + System.out.println(theHub.getAudiobooksTitlesSortedByAuthor()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'c': + // add a new song + System.out.println("Enter a new song: "); + System.out.println("Song title: "); + String title = scan.nextLine(); + System.out.println("Song genre (jazz, classic, hiphop, rock, pop, rap):"); + String genre = scan.nextLine(); + System.out.println("Song artist: "); + String artist = scan.nextLine(); + System.out.println("Song length in seconds: "); + int length = Integer.parseInt(scan.nextLine()); + System.out.println("Song content: "); + String content = scan.nextLine(); + Song s = new Song(title, artist, length, content, genre); + theHub.addElement(s); + System.out.println("New element list: "); + Iterator it = theHub.elements(); + while (it.hasNext()) System.out.println(it.next().getTitle()); + System.out.println("Song created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'a': + // add a new album + System.out.println("Enter a new album: "); + System.out.println("Album title: "); + String aTitle = scan.nextLine(); + System.out.println("Album artist: "); + String aArtist = scan.nextLine(); + System.out.println("Album length in seconds: "); + int aLength = Integer.parseInt(scan.nextLine()); + System.out.println("Album date as YYYY-DD-MM: "); + String aDate = scan.nextLine(); + Album a = new Album(aTitle, aArtist, aLength, aDate); + theHub.addAlbum(a); + System.out.println("New list of albums: "); + Iterator ita = theHub.albums(); + while (ita.hasNext()) System.out.println(ita.next().getTitle()); + System.out.println("Album created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case '+': + //add a song to an album: + System.out.println("Add an existing song to an existing album"); + System.out.println("Type the name of the song you wish to add. Available songs: "); + Iterator itae = theHub.elements(); + while (itae.hasNext()) { + AudioElement ae = itae.next(); + if (ae instanceof Song) System.out.println(ae.getTitle()); + } + String songTitle = scan.nextLine(); + + System.out.println("Type the name of the album you wish to enrich. Available albums: "); + Iterator ait = theHub.albums(); + while (ait.hasNext()) { + Album al = ait.next(); + System.out.println(al.getTitle()); + } + String titleAlbum = scan.nextLine(); + try { + theHub.addElementToAlbum(songTitle, titleAlbum); + } catch (NoAlbumFoundException | NoElementFoundException ex) { + System.out.println(ex.getMessage()); + } + System.out.println("Song added to the album!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'l': + // add a new audiobook + System.out.println("Enter a new audiobook: "); + System.out.println("AudioBook title: "); + String bTitle = scan.nextLine(); + System.out.println("AudioBook category (youth, novel, theater, documentary, speech)"); + String bCategory = scan.nextLine(); + System.out.println("AudioBook artist: "); + String bArtist = scan.nextLine(); + System.out.println("AudioBook length in seconds: "); + int bLength = Integer.parseInt(scan.nextLine()); + System.out.println("AudioBook content: "); + String bContent = scan.nextLine(); + System.out.println("AudioBook language (french, english, italian, spanish, german)"); + String bLanguage = scan.nextLine(); + AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory); + theHub.addElement(b); + System.out.println("Audiobook created! New element list: "); + Iterator itl = theHub.elements(); + while (itl.hasNext()) System.out.println(itl.next().getTitle()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'p': + //create a new playlist from existing elements + System.out.println("Add an existing song or audiobook to a new playlist"); + System.out.println("Existing playlists:"); + Iterator itpl = theHub.playlists(); + while (itpl.hasNext()) { + PlayList pl = itpl.next(); + System.out.println(pl.getTitle()); + } + System.out.println("Type the name of the playlist you wish to create:"); + String playListTitle = scan.nextLine(); + PlayList pl = new PlayList(playListTitle); + theHub.addPlaylist(pl); + System.out.println("Available elements: "); + + Iterator itael = theHub.elements(); + while (itael.hasNext()) { + AudioElement ae = itael.next(); + System.out.println(ae.getTitle()); + } + while (choice.charAt(0) != 'n') { + System.out.println("Type the name of the audio element you wish to add or 'n' to exit:"); + String elementTitle = scan.nextLine(); + try { + theHub.addElementToPlayList(elementTitle, playListTitle); + } catch (NoPlayListFoundException | NoElementFoundException ex) { + System.out.println(ex.getMessage()); + } + + System.out.println("Type y to add a new one, n to end"); + choice = scan.nextLine(); + } + System.out.println("Playlist created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case '-': + //delete a playlist + System.out.println("Delete an existing playlist. Available playlists:"); + Iterator itp = theHub.playlists(); + while (itp.hasNext()) { + PlayList p = itp.next(); + System.out.println(p.getTitle()); + } + String plTitle = scan.nextLine(); + try { + theHub.deletePlayList(plTitle); + } catch (NoPlayListFoundException ex) { + System.out.println(ex.getMessage()); + } + System.out.println("Playlist deleted!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 's': + //save elements, albums, playlists + theHub.saveElements(); + theHub.saveAlbums(); + theHub.savePlayLists(); + System.out.println("Elements, albums and playlists saved!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + default: + + break; + } + } + scan.close(); + } + + private static void printAvailableCommands() { + System.out.println("t: display the album titles, ordered by date"); + System.out.println("g: display songs of an album, ordered by genre"); + System.out.println("d: display songs of an album"); + System.out.println("u: display audiobooks ordered by author"); + System.out.println("c: add a new song"); + System.out.println("a: add a new album"); + System.out.println("+: add a song to an album"); + System.out.println("l: add a new audiobook"); + System.out.println("p: create a new playlist from existing songs and audio books"); + System.out.println("-: delete an existing playlist"); + System.out.println("s: save elements, albums, playlists"); + System.out.println("q: quit program"); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/util/XMLHandler.java b/src/main/java/musichub/util/XMLHandler.java new file mode 100644 index 0000000..4b61842 --- /dev/null +++ b/src/main/java/musichub/util/XMLHandler.java @@ -0,0 +1,74 @@ +package musichub.util; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.File; +import java.io.IOException; + + +public class XMLHandler { + TransformerFactory transformerFactory; + Transformer transformer; + DocumentBuilderFactory documentFactory; + DocumentBuilder documentBuilder; + + public XMLHandler() { + try { + transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + documentFactory = DocumentBuilderFactory.newInstance(); + documentBuilder = documentFactory.newDocumentBuilder(); + } catch (TransformerException | ParserConfigurationException tfe) { + tfe.printStackTrace(); + } + } + + public void createXMLFile(Document document, String filePath) { + try { + // create the xml file + //transform the DOM Object to an XML File + DOMSource domSource = new DOMSource(document); + StreamResult streamResult = new StreamResult(new File(filePath)); + + // If you use + // StreamResult result = new StreamResult(System.out); + // the output will be pushed to the standard output ... + // You can use that for debugging + + transformer.transform(domSource, streamResult); + + } catch (TransformerException tfe) { + tfe.printStackTrace(); + } + } + + public Document createXMLDocument() { + return documentBuilder.newDocument(); + } + + public NodeList parseXMLFile(String filePath) { + NodeList elementNodes = null; + try { + Document document = documentBuilder.parse(new File(filePath)); + Element root = document.getDocumentElement(); + + elementNodes = root.getChildNodes(); + } catch (SAXException | IOException e) { + e.printStackTrace(); + } + return elementNodes; + } + + +} \ No newline at end of file diff --git a/src/musichub/business/Album.java b/src/musichub/business/Album.java deleted file mode 100644 index 01fd179..0000000 --- a/src/musichub/business/Album.java +++ /dev/null @@ -1,145 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; - - -public class Album { - private final String title; - private final int lengthInSeconds; - private final UUID uuid; - private String artist; - private Date date; - private ArrayList songsUIDs; - - public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList songsUIDs) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.fromString(id); - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(date); - } catch (ParseException ex) { - ex.printStackTrace(); - } - this.songsUIDs = songsUIDs; - } - - public Album(String title, String artist, int lengthInSeconds, String date) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.randomUUID(); - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(date); - } catch (ParseException ex) { - ex.printStackTrace(); - } - this.songsUIDs = new ArrayList<>(); - } - - public Album(Element xmlElement) throws Exception { - { - this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("lengthInSeconds").item(0).getTextContent()); - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty album UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(xmlElement.getElementsByTagName("date").item(0).getTextContent()); - //parse list of songs: - Node songsElement = xmlElement.getElementsByTagName("songs").item(0); - NodeList songUUIDNodes = songsElement.getChildNodes(); - if (songUUIDNodes == null) return; - - this.songsUIDs = new ArrayList<>(); - - for (int i = 0; i < songUUIDNodes.getLength(); i++) { - if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element songElement = (Element) songUUIDNodes.item(i); - if (songElement.getNodeName().equals("UUID")) { - try { - this.addSong(UUID.fromString(songElement.getTextContent())); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } - } - } - } - - - public void addSong(UUID song) { - songsUIDs.add(song); - } - - - public List getSongs() { - return songsUIDs; - } - - public ArrayList getSongsRandomly() { - ArrayList shuffledSongs = songsUIDs; - Collections.shuffle(shuffledSongs); - return shuffledSongs; - } - - public String getTitle() { - return title; - } - - public Date getDate() { - return date; - } - - public void createXMLElement(Document document, Element parentElement) { - Element albumElement = document.createElement("album"); - parentElement.appendChild(albumElement); - - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - albumElement.appendChild(nameElement); - - Element artistElement = document.createElement("artist"); - artistElement.appendChild(document.createTextNode(artist)); - albumElement.appendChild(artistElement); - - Element lengthElement = document.createElement("lengthInSeconds"); - lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); - albumElement.appendChild(lengthElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - albumElement.appendChild(UUIDElement); - - Element dateElement = document.createElement("date"); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - dateElement.appendChild(document.createTextNode(sdf.format(date))); - albumElement.appendChild(dateElement); - - Element songsElement = document.createElement("songs"); - for (UUID currentUUID : this.songsUIDs) { - Element songUUIDElement = document.createElement("UUID"); - songUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); - songsElement.appendChild(songUUIDElement); - } - albumElement.appendChild(songsElement); - - } -} \ No newline at end of file diff --git a/src/musichub/business/AudioBook.java b/src/musichub/business/AudioBook.java deleted file mode 100644 index 80392d6..0000000 --- a/src/musichub/business/AudioBook.java +++ /dev/null @@ -1,78 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public class AudioBook extends AudioElement { - private Language language; - private Category category; - - public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) { - super(title, artist, lengthInSeconds, uid, content); - this.setLanguage(language); - this.setCategory(category); - } - - public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) { - super(title, artist, lengthInSeconds, content); - this.setLanguage(language); - this.setCategory(category); - } - - public AudioBook(Element xmlElement) { - super(xmlElement); - this.setLanguage(xmlElement.getElementsByTagName("language").item(0).getTextContent()); - this.setCategory(xmlElement.getElementsByTagName("category").item(0).getTextContent()); - } - - public Language getLanguage() { - return this.language; - } - - public void setLanguage(String language) { - switch (language.toLowerCase()) { - default -> this.language = Language.ENGLISH; - case "french" -> this.language = Language.FRENCH; - case "german" -> this.language = Language.GERMAN; - case "spanish" -> this.language = Language.SPANISH; - case "italian" -> this.language = Language.ITALIAN; - } - } - - public Category getCategory() { - return this.category; - } - - public void setCategory(String category) { - switch (category.toLowerCase()) { - default -> this.category = Category.YOUTH; - case "novel" -> this.category = Category.NOVEL; - case "theater" -> this.category = Category.THEATER; - case "documentary" -> this.category = Category.DOCUMENTARY; - case "speech" -> this.category = Category.SPEECH; - } - } - - - public String toString() { - return super.toString() + ", Language = " + getLanguage() + ", Category = " + getCategory() + "\n"; - } - - - public void createXMLElement(Document document, Element parentElement) { - // audiobook element - Element audioBook = document.createElement("audiobook"); - - super.createXMLElement(document, audioBook); - - Element languageElement = document.createElement("language"); - languageElement.appendChild(document.createTextNode(language.getLanguage())); - audioBook.appendChild(languageElement); - - Element categoryElement = document.createElement("category"); - categoryElement.appendChild(document.createTextNode(category.getCategory())); - audioBook.appendChild(categoryElement); - - parentElement.appendChild(audioBook); - } -} \ No newline at end of file diff --git a/src/musichub/business/AudioElement.java b/src/musichub/business/AudioElement.java deleted file mode 100644 index e0a686b..0000000 --- a/src/musichub/business/AudioElement.java +++ /dev/null @@ -1,88 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.UUID; - -public abstract class AudioElement { - protected String title; - protected String artist; - protected int lengthInSeconds; - protected UUID uuid; - protected String content; - - public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.fromString(id); - this.content = content; - } - - public AudioElement(String title, String artist, int lengthInSeconds, String content) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.content = content; - this.uuid = UUID.randomUUID(); - } - - public AudioElement(Element xmlElement) { - { - title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - artist = xmlElement.getElementsByTagName("artist").item(0).getTextContent(); - lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("length").item(0).getTextContent()); - content = xmlElement.getElementsByTagName("content").item(0).getTextContent(); - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty element UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - } - } - - public UUID getUUID() { - return this.uuid; - } - - public String getArtist() { - return this.artist; - } - - public String getTitle() { - return this.title; - } - - public String toString() { - return "Title = " + this.title + ", Artist = " + this.artist + ", Length = " + this.lengthInSeconds + ", Content = " + this.content; - } - - public void createXMLElement(Document document, Element parentElement) { - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - parentElement.appendChild(nameElement); - - Element artistElement = document.createElement("artist"); - artistElement.appendChild(document.createTextNode(artist)); - parentElement.appendChild(artistElement); - - Element lengthElement = document.createElement("length"); - lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); - parentElement.appendChild(lengthElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - parentElement.appendChild(UUIDElement); - - Element contentElement = document.createElement("content"); - contentElement.appendChild(document.createTextNode(content)); - parentElement.appendChild(contentElement); - - } - -} \ No newline at end of file diff --git a/src/musichub/business/Category.java b/src/musichub/business/Category.java deleted file mode 100644 index f676e51..0000000 --- a/src/musichub/business/Category.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Category { - YOUTH("youth"), NOVEL("novel"), THEATER("theater"), DOCUMENTARY("documentary"), SPEECH("speech"); - private final String category; - - Category(String category) { - this.category = category; - } - - public String getCategory() { - return category; - } -} \ No newline at end of file diff --git a/src/musichub/business/Genre.java b/src/musichub/business/Genre.java deleted file mode 100644 index 18deca6..0000000 --- a/src/musichub/business/Genre.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Genre { - JAZZ("jazz"), CLASSIC("classic"), HIPHOP("hiphop"), ROCK("rock"), POP("pop"), RAP("rap"); - private final String genre; - - Genre(String genre) { - this.genre = genre; - } - - public String getGenre() { - return genre; - } -} \ No newline at end of file diff --git a/src/musichub/business/Language.java b/src/musichub/business/Language.java deleted file mode 100644 index 679e586..0000000 --- a/src/musichub/business/Language.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Language { - FRENCH("french"), ENGLISH("english"), ITALIAN("italian"), SPANISH("spanish"), GERMAN("german"); - private final String language; - - Language(String language) { - this.language = language; - } - - public String getLanguage() { - return language; - } -} \ No newline at end of file diff --git a/src/musichub/business/MusicHub.java b/src/musichub/business/MusicHub.java deleted file mode 100644 index 38e2214..0000000 --- a/src/musichub/business/MusicHub.java +++ /dev/null @@ -1,329 +0,0 @@ -package musichub.business; - -import musichub.util.XMLHandler; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.util.*; - -class SortByDate implements Comparator { - public int compare(Album a1, Album a2) { - return a1.getDate().compareTo(a2.getDate()); - } -} - -class SortByGenre implements Comparator { - public int compare(Song s1, Song s2) { - return s1.getGenre().compareTo(s2.getGenre()); - } -} - -class SortByAuthor implements Comparator { - public int compare(AudioElement e1, AudioElement e2) { - return e1.getArtist().compareTo(e2.getArtist()); - } -} - -public class MusicHub { - public static final String DIR = System.getProperty("user.dir"); - public static final String ALBUMS_FILE_PATH = DIR + "/files/albums.xml"; - public static final String PLAYLISTS_FILE_PATH = DIR + "/files/playlists.xml"; - public static final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml"; - private final List albums; - private final List playlists; - private final List elements; - private final XMLHandler xmlHandler = new XMLHandler(); - - public MusicHub() { - albums = new LinkedList<>(); - playlists = new LinkedList<>(); - elements = new LinkedList<>(); - this.loadElements(); - this.loadAlbums(); - this.loadPlaylists(); - } - - public void addElement(AudioElement element) { - elements.add(element); - } - - public void addAlbum(Album album) { - albums.add(album); - } - - public void addPlaylist(PlayList playlist) { - playlists.add(playlist); - } - - public void deletePlayList(String playListTitle) throws NoPlayListFoundException { - - PlayList thePlayList = null; - boolean result = false; - for (PlayList pl : playlists) { - if (pl.getTitle().equalsIgnoreCase(playListTitle)) { - thePlayList = pl; - break; - } - } - - if (thePlayList != null) - result = playlists.remove(thePlayList); - if (!result) throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); - } - - public Iterator albums() { - return albums.listIterator(); - } - - public Iterator playlists() { - return playlists.listIterator(); - } - - public Iterator elements() { - return elements.listIterator(); - } - - public String getAlbumsTitlesSortedByDate() { - StringBuilder titleList = new StringBuilder(); - albums.sort(new SortByDate()); - for (Album al : albums) - titleList.append(al.getTitle()).append("\n"); - return titleList.toString(); - } - - public String getAudiobooksTitlesSortedByAuthor() { - StringBuilder titleList = new StringBuilder(); - List audioBookList = new ArrayList<>(); - for (AudioElement ae : elements) - if (ae instanceof AudioBook) - audioBookList.add(ae); - audioBookList.sort(new SortByAuthor()); - for (AudioElement ab : audioBookList) - titleList.append(ab.getArtist()).append("\n"); - return titleList.toString(); - } - - public List getAlbumSongs(String albumTitle) throws NoAlbumFoundException { - Album theAlbum = null; - ArrayList songsInAlbum = new ArrayList<>(); - for (Album al : albums) { - if (al.getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = al; - break; - } - } - if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); - - List songIDs = theAlbum.getSongs(); - for (UUID id : songIDs) - for (AudioElement el : elements) { - if (el instanceof Song) { - if (el.getUUID().equals(id)) songsInAlbum.add(el); - } - } - return songsInAlbum; - - } - - public List getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException { - Album theAlbum = null; - ArrayList songsInAlbum = new ArrayList<>(); - for (Album al : albums) { - if (al.getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = al; - break; - } - } - if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); - - List songIDs = theAlbum.getSongs(); - for (UUID id : songIDs) - for (AudioElement el : elements) { - if (el instanceof Song) { - if (el.getUUID().equals(id)) songsInAlbum.add((Song) el); - } - } - songsInAlbum.sort(new SortByGenre()); - return songsInAlbum; - - } - - public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException { - Album theAlbum = null; - int i; - boolean found = false; - for (i = 0; i < albums.size(); i++) { - if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = albums.get(i); - found = true; - break; - } - } - - if (found) { - AudioElement theElement = null; - for (AudioElement ae : elements) { - if (ae.getTitle().equalsIgnoreCase(elementTitle)) { - theElement = ae; - break; - } - } - if (theElement != null) { - theAlbum.addSong(theElement.getUUID()); - //replace the album in the list - albums.set(i, theAlbum); - } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); - } else throw new NoAlbumFoundException("Album " + albumTitle + " not found!"); - - } - - public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException { - PlayList thePlaylist = null; - int i; - boolean found = false; - - for (i = 0; i < playlists.size(); i++) { - if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) { - thePlaylist = playlists.get(i); - found = true; - break; - } - } - - if (found) { - AudioElement theElement = null; - for (AudioElement ae : elements) { - if (ae.getTitle().equalsIgnoreCase(elementTitle)) { - theElement = ae; - break; - } - } - if (theElement != null) { - thePlaylist.addElement(theElement.getUUID()); - //replace the album in the list - playlists.set(i, thePlaylist); - } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); - - } else throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); - - } - - private void loadAlbums() { - NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH); - if (albumNodes == null) return; - - for (int i = 0; i < albumNodes.getLength(); i++) { - if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element albumElement = (Element) albumNodes.item(i); - if (albumElement.getNodeName().equals("album")) { - try { - this.addAlbum(new Album(albumElement)); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML album element"); - } - } - } - } - } - - private void loadPlaylists() { - NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH); - if (playlistNodes == null) return; - - for (int i = 0; i < playlistNodes.getLength(); i++) { - if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element playlistElement = (Element) playlistNodes.item(i); - if (playlistElement.getNodeName().equals("playlist")) { - try { - this.addPlaylist(new PlayList(playlistElement)); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML playlist element"); - } - } - } - } - } - - private void loadElements() { - NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH); - if (audioelementsNodes == null) return; - - for (int i = 0; i < audioelementsNodes.getLength(); i++) { - if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element audioElement = (Element) audioelementsNodes.item(i); - if (audioElement.getNodeName().equals("song")) { - try { - AudioElement newSong = new Song(audioElement); - this.addElement(newSong); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML song element"); - } - } - if (audioElement.getNodeName().equals("audiobook")) { - try { - AudioElement newAudioBook = new AudioBook(audioElement); - this.addElement(newAudioBook); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML audiobook element"); - } - } - } - } - } - - - public void saveAlbums() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("albums"); - document.appendChild(root); - - //save all albums - for (Iterator albumsIter = this.albums(); albumsIter.hasNext(); ) { - Album currentAlbum = albumsIter.next(); - currentAlbum.createXMLElement(document, root); - } - xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH); - } - - public void savePlayLists() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("playlists"); - document.appendChild(root); - - //save all playlists - for (Iterator playlistsIter = this.playlists(); playlistsIter.hasNext(); ) { - PlayList currentPlayList = playlistsIter.next(); - currentPlayList.createXMLElement(document, root); - } - xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH); - } - - public void saveElements() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("elements"); - document.appendChild(root); - - //save all AudioElements - for (AudioElement currentElement : elements) { - - if (currentElement instanceof Song) { - currentElement.createXMLElement(document, root); - } - if (currentElement instanceof AudioBook) { - currentElement.createXMLElement(document, root); - } - } - xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoAlbumFoundException.java b/src/musichub/business/NoAlbumFoundException.java deleted file mode 100644 index 04cbfcd..0000000 --- a/src/musichub/business/NoAlbumFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoAlbumFoundException extends Exception { - - public NoAlbumFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoElementFoundException.java b/src/musichub/business/NoElementFoundException.java deleted file mode 100644 index a9b0d76..0000000 --- a/src/musichub/business/NoElementFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoElementFoundException extends Exception { - - public NoElementFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoPlayListFoundException.java b/src/musichub/business/NoPlayListFoundException.java deleted file mode 100644 index c5eb413..0000000 --- a/src/musichub/business/NoPlayListFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoPlayListFoundException extends Exception { - - public NoPlayListFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/PlayList.java b/src/musichub/business/PlayList.java deleted file mode 100644 index 4180a62..0000000 --- a/src/musichub/business/PlayList.java +++ /dev/null @@ -1,100 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.util.ArrayList; -import java.util.UUID; - -public class PlayList { - private final String title; - private final UUID uuid; - private ArrayList elementUUIDs; - - public PlayList(String title, String id, ArrayList elementUUIDs) { - this.title = title; - this.uuid = UUID.fromString(id); - this.elementUUIDs = elementUUIDs; - } - - public PlayList(String title) { - this.title = title; - this.uuid = UUID.randomUUID(); - this.elementUUIDs = new ArrayList<>(); - } - - public PlayList(Element xmlElement) { - { - this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty playlist UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - - //parse list of elements: - Node elementsElement = xmlElement.getElementsByTagName("elements").item(0); - NodeList elementUUIDNodes = elementsElement.getChildNodes(); - if (elementUUIDNodes == null) return; - - this.elementUUIDs = new ArrayList<>(); - - - for (int i = 0; i < elementUUIDNodes.getLength(); i++) { - if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element elementElement = (Element) elementUUIDNodes.item(i); - if (elementElement.getNodeName().equals("UUID")) { - try { - this.addElement(UUID.fromString(elementElement.getTextContent())); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } - } - } - } - - public void addElement(UUID element) { - elementUUIDs.add(element); - } - - public ArrayList getElements() { - return elementUUIDs; - } - - public String getTitle() { - return title; - } - - public void createXMLElement(Document document, Element parentElement) { - Element playlistElement = document.createElement("playlist"); - parentElement.appendChild(playlistElement); - - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - playlistElement.appendChild(nameElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - playlistElement.appendChild(UUIDElement); - - - Element elementsElement = document.createElement("elements"); - for (UUID currentUUID : this.elementUUIDs) { - - Element elementUUIDElement = document.createElement("UUID"); - elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); - elementsElement.appendChild(elementUUIDElement); - } - playlistElement.appendChild(elementsElement); - } - -} \ No newline at end of file diff --git a/src/musichub/business/Song.java b/src/musichub/business/Song.java deleted file mode 100644 index 3e9011b..0000000 --- a/src/musichub/business/Song.java +++ /dev/null @@ -1,56 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -public class Song extends AudioElement { - private Genre genre; - - public Song(String title, String artist, int length, String uid, String content, String genre) { - super(title, artist, length, uid, content); - this.setGenre(genre); - } - - public Song(String title, String artist, int length, String content, String genre) { - super(title, artist, length, content); - this.setGenre(genre); - } - - public Song(Element xmlElement) { - super(xmlElement); - this.setGenre(xmlElement.getElementsByTagName("genre").item(0).getTextContent()); - } - - public String getGenre() { - return genre.getGenre(); - } - - public void setGenre(String genre) { - switch (genre.toLowerCase()) { - default -> this.genre = Genre.JAZZ; - case "classic" -> this.genre = Genre.CLASSIC; - case "hiphop" -> this.genre = Genre.HIPHOP; - case "rock" -> this.genre = Genre.ROCK; - case "pop" -> this.genre = Genre.POP; - case "rap" -> this.genre = Genre.RAP; - } - } - - public String toString() { - return super.toString() + ", Genre = " + getGenre() + "\n"; - } - - public void createXMLElement(Document document, Element parentElement) { - // song element - Element song = document.createElement("song"); - - super.createXMLElement(document, song); - - Element genreElement = document.createElement("genre"); - genreElement.appendChild(document.createTextNode(genre.getGenre())); - song.appendChild(genreElement); - - parentElement.appendChild(song); - } -} \ No newline at end of file diff --git a/src/musichub/main/Main.java b/src/musichub/main/Main.java deleted file mode 100644 index b72a95b..0000000 --- a/src/musichub/main/Main.java +++ /dev/null @@ -1,248 +0,0 @@ -package musichub.main; - -import musichub.business.*; - -import java.util.Iterator; -import java.util.Scanner; - -public class Main { - public static void main(String[] args) { - - MusicHub theHub = new MusicHub(); - - System.out.println("Type h for available commands"); - - - Scanner scan = new Scanner(System.in); - String choice = scan.nextLine(); - - String albumTitle; - - if (choice.length() == 0) System.exit(0); - - while (!choice.equals("")) { //if the user puts nothing, quit the loop/system - switch (choice.charAt(0)) { - case 'q': //added the option directly in the switch instead of the loop - System.exit(0); - case 'h': - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 't': - //album titles, ordered by date - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'g': - //songs of an album, sorted by genre - System.out.println("Songs of an album sorted by genre will be displayed; enter the album name, available albums are:"); - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - - albumTitle = scan.nextLine(); - try { - System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); - } catch (NoAlbumFoundException ex) { - System.out.println("No album found with the requested title " + ex.getMessage()); - } - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'd': - //songs of an album - System.out.println("Songs of an album will be displayed; enter the album name, available albums are:"); - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - - albumTitle = scan.nextLine(); - try { - System.out.println(theHub.getAlbumSongs(albumTitle)); - } catch (NoAlbumFoundException ex) { - System.out.println("No album found with the requested title " + ex.getMessage()); - } - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'u': - //audiobooks ordered by author - System.out.println(theHub.getAudiobooksTitlesSortedByAuthor()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'c': - // add a new song - System.out.println("Enter a new song: "); - System.out.println("Song title: "); - String title = scan.nextLine(); - System.out.println("Song genre (jazz, classic, hiphop, rock, pop, rap):"); - String genre = scan.nextLine(); - System.out.println("Song artist: "); - String artist = scan.nextLine(); - System.out.println("Song length in seconds: "); - int length = Integer.parseInt(scan.nextLine()); - System.out.println("Song content: "); - String content = scan.nextLine(); - Song s = new Song(title, artist, length, content, genre); - theHub.addElement(s); - System.out.println("New element list: "); - Iterator it = theHub.elements(); - while (it.hasNext()) System.out.println(it.next().getTitle()); - System.out.println("Song created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'a': - // add a new album - System.out.println("Enter a new album: "); - System.out.println("Album title: "); - String aTitle = scan.nextLine(); - System.out.println("Album artist: "); - String aArtist = scan.nextLine(); - System.out.println("Album length in seconds: "); - int aLength = Integer.parseInt(scan.nextLine()); - System.out.println("Album date as YYYY-DD-MM: "); - String aDate = scan.nextLine(); - Album a = new Album(aTitle, aArtist, aLength, aDate); - theHub.addAlbum(a); - System.out.println("New list of albums: "); - Iterator ita = theHub.albums(); - while (ita.hasNext()) System.out.println(ita.next().getTitle()); - System.out.println("Album created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case '+': - //add a song to an album: - System.out.println("Add an existing song to an existing album"); - System.out.println("Type the name of the song you wish to add. Available songs: "); - Iterator itae = theHub.elements(); - while (itae.hasNext()) { - AudioElement ae = itae.next(); - if (ae instanceof Song) System.out.println(ae.getTitle()); - } - String songTitle = scan.nextLine(); - - System.out.println("Type the name of the album you wish to enrich. Available albums: "); - Iterator ait = theHub.albums(); - while (ait.hasNext()) { - Album al = ait.next(); - System.out.println(al.getTitle()); - } - String titleAlbum = scan.nextLine(); - try { - theHub.addElementToAlbum(songTitle, titleAlbum); - } catch (NoAlbumFoundException | NoElementFoundException ex) { - System.out.println(ex.getMessage()); - } - System.out.println("Song added to the album!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'l': - // add a new audiobook - System.out.println("Enter a new audiobook: "); - System.out.println("AudioBook title: "); - String bTitle = scan.nextLine(); - System.out.println("AudioBook category (youth, novel, theater, documentary, speech)"); - String bCategory = scan.nextLine(); - System.out.println("AudioBook artist: "); - String bArtist = scan.nextLine(); - System.out.println("AudioBook length in seconds: "); - int bLength = Integer.parseInt(scan.nextLine()); - System.out.println("AudioBook content: "); - String bContent = scan.nextLine(); - System.out.println("AudioBook language (french, english, italian, spanish, german)"); - String bLanguage = scan.nextLine(); - AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory); - theHub.addElement(b); - System.out.println("Audiobook created! New element list: "); - Iterator itl = theHub.elements(); - while (itl.hasNext()) System.out.println(itl.next().getTitle()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'p': - //create a new playlist from existing elements - System.out.println("Add an existing song or audiobook to a new playlist"); - System.out.println("Existing playlists:"); - Iterator itpl = theHub.playlists(); - while (itpl.hasNext()) { - PlayList pl = itpl.next(); - System.out.println(pl.getTitle()); - } - System.out.println("Type the name of the playlist you wish to create:"); - String playListTitle = scan.nextLine(); - PlayList pl = new PlayList(playListTitle); - theHub.addPlaylist(pl); - System.out.println("Available elements: "); - - Iterator itael = theHub.elements(); - while (itael.hasNext()) { - AudioElement ae = itael.next(); - System.out.println(ae.getTitle()); - } - while (choice.charAt(0) != 'n') { - System.out.println("Type the name of the audio element you wish to add or 'n' to exit:"); - String elementTitle = scan.nextLine(); - try { - theHub.addElementToPlayList(elementTitle, playListTitle); - } catch (NoPlayListFoundException | NoElementFoundException ex) { - System.out.println(ex.getMessage()); - } - - System.out.println("Type y to add a new one, n to end"); - choice = scan.nextLine(); - } - System.out.println("Playlist created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case '-': - //delete a playlist - System.out.println("Delete an existing playlist. Available playlists:"); - Iterator itp = theHub.playlists(); - while (itp.hasNext()) { - PlayList p = itp.next(); - System.out.println(p.getTitle()); - } - String plTitle = scan.nextLine(); - try { - theHub.deletePlayList(plTitle); - } catch (NoPlayListFoundException ex) { - System.out.println(ex.getMessage()); - } - System.out.println("Playlist deleted!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 's': - //save elements, albums, playlists - theHub.saveElements(); - theHub.saveAlbums(); - theHub.savePlayLists(); - System.out.println("Elements, albums and playlists saved!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - default: - - break; - } - } - scan.close(); - } - - private static void printAvailableCommands() { - System.out.println("t: display the album titles, ordered by date"); - System.out.println("g: display songs of an album, ordered by genre"); - System.out.println("d: display songs of an album"); - System.out.println("u: display audiobooks ordered by author"); - System.out.println("c: add a new song"); - System.out.println("a: add a new album"); - System.out.println("+: add a song to an album"); - System.out.println("l: add a new audiobook"); - System.out.println("p: create a new playlist from existing songs and audio books"); - System.out.println("-: delete an existing playlist"); - System.out.println("s: save elements, albums, playlists"); - System.out.println("q: quit program"); - } -} \ No newline at end of file diff --git a/src/musichub/util/XMLHandler.java b/src/musichub/util/XMLHandler.java deleted file mode 100644 index 4b61842..0000000 --- a/src/musichub/util/XMLHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -package musichub.util; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.File; -import java.io.IOException; - - -public class XMLHandler { - TransformerFactory transformerFactory; - Transformer transformer; - DocumentBuilderFactory documentFactory; - DocumentBuilder documentBuilder; - - public XMLHandler() { - try { - transformerFactory = TransformerFactory.newInstance(); - transformer = transformerFactory.newTransformer(); - documentFactory = DocumentBuilderFactory.newInstance(); - documentBuilder = documentFactory.newDocumentBuilder(); - } catch (TransformerException | ParserConfigurationException tfe) { - tfe.printStackTrace(); - } - } - - public void createXMLFile(Document document, String filePath) { - try { - // create the xml file - //transform the DOM Object to an XML File - DOMSource domSource = new DOMSource(document); - StreamResult streamResult = new StreamResult(new File(filePath)); - - // If you use - // StreamResult result = new StreamResult(System.out); - // the output will be pushed to the standard output ... - // You can use that for debugging - - transformer.transform(domSource, streamResult); - - } catch (TransformerException tfe) { - tfe.printStackTrace(); - } - } - - public Document createXMLDocument() { - return documentBuilder.newDocument(); - } - - public NodeList parseXMLFile(String filePath) { - NodeList elementNodes = null; - try { - Document document = documentBuilder.parse(new File(filePath)); - Element root = document.getDocumentElement(); - - elementNodes = root.getChildNodes(); - } catch (SAXException | IOException e) { - e.printStackTrace(); - } - return elementNodes; - } - - -} \ No newline at end of file diff --git a/target/classes/musichub/business/Album.class b/target/classes/musichub/business/Album.class new file mode 100644 index 0000000..c08b1be Binary files /dev/null and b/target/classes/musichub/business/Album.class differ diff --git a/target/classes/musichub/business/AudioBook.class b/target/classes/musichub/business/AudioBook.class new file mode 100644 index 0000000..3ad965d Binary files /dev/null and b/target/classes/musichub/business/AudioBook.class differ diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class new file mode 100644 index 0000000..ab20d50 Binary files /dev/null and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/Category.class b/target/classes/musichub/business/Category.class new file mode 100644 index 0000000..51a68d1 Binary files /dev/null and b/target/classes/musichub/business/Category.class differ diff --git a/target/classes/musichub/business/Genre.class b/target/classes/musichub/business/Genre.class new file mode 100644 index 0000000..66a7d69 Binary files /dev/null and b/target/classes/musichub/business/Genre.class differ diff --git a/target/classes/musichub/business/Language.class b/target/classes/musichub/business/Language.class new file mode 100644 index 0000000..31b17c2 Binary files /dev/null and b/target/classes/musichub/business/Language.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class new file mode 100644 index 0000000..e1a0961 Binary files /dev/null and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/NoAlbumFoundException.class b/target/classes/musichub/business/NoAlbumFoundException.class new file mode 100644 index 0000000..03aff87 Binary files /dev/null and b/target/classes/musichub/business/NoAlbumFoundException.class differ diff --git a/target/classes/musichub/business/NoElementFoundException.class b/target/classes/musichub/business/NoElementFoundException.class new file mode 100644 index 0000000..6ba1c87 Binary files /dev/null and b/target/classes/musichub/business/NoElementFoundException.class differ diff --git a/target/classes/musichub/business/NoPlayListFoundException.class b/target/classes/musichub/business/NoPlayListFoundException.class new file mode 100644 index 0000000..54319de Binary files /dev/null and b/target/classes/musichub/business/NoPlayListFoundException.class differ diff --git a/target/classes/musichub/business/PlayList.class b/target/classes/musichub/business/PlayList.class new file mode 100644 index 0000000..ea68021 Binary files /dev/null and b/target/classes/musichub/business/PlayList.class differ diff --git a/target/classes/musichub/business/Song.class b/target/classes/musichub/business/Song.class new file mode 100644 index 0000000..c3bdeb7 Binary files /dev/null and b/target/classes/musichub/business/Song.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class new file mode 100644 index 0000000..fb8ee7a Binary files /dev/null and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class new file mode 100644 index 0000000..c52e870 Binary files /dev/null and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class new file mode 100644 index 0000000..2016012 Binary files /dev/null and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class new file mode 100644 index 0000000..06c19ac Binary files /dev/null and b/target/classes/musichub/main/Main.class differ diff --git a/target/classes/musichub/util/XMLHandler.class b/target/classes/musichub/util/XMLHandler.class new file mode 100644 index 0000000..4ab0064 Binary files /dev/null and b/target/classes/musichub/util/XMLHandler.class differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 24b2415..2665c29 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 10:59:45 CEST 2021 +#Sat Jun 26 12:33:30 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt new file mode 100644 index 0000000..4368553 --- /dev/null +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -0,0 +1,64 @@ +@options +@argfile +-classpath +'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar' +-encoding +'Cp1252' +-protected +--release +16 +-sourcepath +'C:/Users/SoftA/Documents/spoteezer/src/main/java' +-author +-bottom +'Copyright © 2021. All rights reserved.' +-charset +'UTF-8' +-d +'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs' +-docencoding +'UTF-8' +-doctitle +'spoteezer 0.1.0 API' +-use +-version +-windowtitle +'spoteezer 0.1.0 API' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java' +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799 +C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785 +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624701235404 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624703620814 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624703620816 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624703620727 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624703620841 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624703620837 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624703620798 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624703620864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624703620820 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624703620817 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624703620839 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624703620795 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624703620818 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624703620845 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624703620848 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624703620749 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624703620844 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624703620821 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624703620819 \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..a388223 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,17 @@ +musichub\util\XMLHandler.class +musichub\business\NoElementFoundException.class +musichub\business\Language.class +musichub\business\PlayList.class +musichub\main\Main.class +musichub\business\Album.class +musichub\business\SortByDate.class +musichub\business\AudioElement.class +musichub\business\SortByAuthor.class +musichub\business\NoAlbumFoundException.class +musichub\business\AudioBook.class +musichub\business\Song.class +musichub\business\Genre.class +musichub\business\NoPlayListFoundException.class +musichub\business\Category.class +musichub\business\MusicHub.class +musichub\business\SortByGenre.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..5354743 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,14 @@ +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Genre.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Song.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PlayList.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\main\Main.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioBook.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoElementFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\XMLHandler.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 3850ad4..1acfbb8 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html new file mode 100644 index 0000000..cf6d8b7 --- /dev/null +++ b/target/site/apidocs/allclasses-index.html @@ -0,0 +1,106 @@ + + + + + +All Classes (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes

+
+
+
+
+
+
Class
+
Description
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html new file mode 100644 index 0000000..28ab802 --- /dev/null +++ b/target/site/apidocs/allpackages-index.html @@ -0,0 +1,76 @@ + + + + + +All Packages (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

All Packages

+
+
Package Summary
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/element-list b/target/site/apidocs/element-list new file mode 100644 index 0000000..87e8cdc --- /dev/null +++ b/target/site/apidocs/element-list @@ -0,0 +1,3 @@ +musichub.business +musichub.main +musichub.util diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html new file mode 100644 index 0000000..678cc80 --- /dev/null +++ b/target/site/apidocs/help-doc.html @@ -0,0 +1,162 @@ + + + + + +API Help (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+

Overview

+

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+
+
+

Package

+

Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

+
    +
  • Interfaces
  • +
  • Classes
  • +
  • Enum Classes
  • +
  • Exceptions
  • +
  • Errors
  • +
  • Annotation Interfaces
  • +
+
+
+

Class or Interface

+

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

+
    +
  • Class Inheritance Diagram
  • +
  • Direct Subclasses
  • +
  • All Known Subinterfaces
  • +
  • All Known Implementing Classes
  • +
  • Class or Interface Declaration
  • +
  • Class or Interface Description
  • +
+
+
    +
  • Nested Class Summary
  • +
  • Field Summary
  • +
  • Property Summary
  • +
  • Constructor Summary
  • +
  • Method Summary
  • +
+
+
    +
  • Field Details
  • +
  • Property Details
  • +
  • Constructor Details
  • +
  • Method Details
  • +
+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Annotation Interface

+

Each annotation interface has its own separate page with the following sections:

+
    +
  • Annotation Interface Declaration
  • +
  • Annotation Interface Description
  • +
  • Required Element Summary
  • +
  • Optional Element Summary
  • +
  • Element Details
  • +
+
+
+

Enum Class

+

Each enum class has its own separate page with the following sections:

+
    +
  • Enum Declaration
  • +
  • Enum Description
  • +
  • Enum Constant Summary
  • +
  • Enum Constant Details
  • +
+
+
+

Use

+

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

+
+
+

Tree (Class Hierarchy)

+

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

+
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • +
  • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
  • +
+
+
+

Index

+

The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

+
+
+

Serialized Form

+

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

+
+
+

Search

+

You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:

+
    +
  • j.l.obj will match "java.lang.Object"
  • +
  • InpStr will match "java.io.InputStream"
  • +
  • HM.cK will match "java.util.HashMap.containsKey(Object)"
  • +
+

Refer to the Javadoc Search Specification for a full description of search features.

+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html new file mode 100644 index 0000000..4260fa8 --- /dev/null +++ b/target/site/apidocs/index-all.html @@ -0,0 +1,375 @@ + + + + + +Index (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A C D E F G H I J L M N P R S T U V X Y 
All Classes|All Packages|Serialized Form +

A

+
+
addAlbum(Album) - Method in class musichub.business.MusicHub
+
 
+
addElement(UUID) - Method in class musichub.business.PlayList
+
 
+
addElement(AudioElement) - Method in class musichub.business.MusicHub
+
 
+
addElementToAlbum(String, String) - Method in class musichub.business.MusicHub
+
 
+
addElementToPlayList(String, String) - Method in class musichub.business.MusicHub
+
 
+
addPlaylist(PlayList) - Method in class musichub.business.MusicHub
+
 
+
addSong(UUID) - Method in class musichub.business.Album
+
 
+
Album - Class in musichub.business
+
 
+
Album(String, String, int, String) - Constructor for class musichub.business.Album
+
 
+
Album(String, String, int, String, String, ArrayList<UUID>) - Constructor for class musichub.business.Album
+
 
+
Album(Element) - Constructor for class musichub.business.Album
+
 
+
albums() - Method in class musichub.business.MusicHub
+
 
+
ALBUMS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
artist - Variable in class musichub.business.AudioElement
+
 
+
AudioBook - Class in musichub.business
+
 
+
AudioBook(String, String, int, String, String, String) - Constructor for class musichub.business.AudioBook
+
 
+
AudioBook(String, String, int, String, String, String, String) - Constructor for class musichub.business.AudioBook
+
 
+
AudioBook(Element) - Constructor for class musichub.business.AudioBook
+
 
+
AudioElement - Class in musichub.business
+
 
+
AudioElement(String, String, int, String) - Constructor for class musichub.business.AudioElement
+
 
+
AudioElement(String, String, int, String, String) - Constructor for class musichub.business.AudioElement
+
 
+
AudioElement(Element) - Constructor for class musichub.business.AudioElement
+
 
+
+

C

+
+
Category - Enum Class in musichub.business
+
 
+
CLASSIC - Enum constant in enum class musichub.business.Genre
+
 
+
content - Variable in class musichub.business.AudioElement
+
 
+
createXMLDocument() - Method in class musichub.util.XMLHandler
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.Album
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.AudioBook
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.AudioElement
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.PlayList
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.Song
+
 
+
createXMLFile(Document, String) - Method in class musichub.util.XMLHandler
+
 
+
+

D

+
+
deletePlayList(String) - Method in class musichub.business.MusicHub
+
 
+
DIR - Static variable in class musichub.business.MusicHub
+
 
+
DOCUMENTARY - Enum constant in enum class musichub.business.Category
+
 
+
+

E

+
+
elements() - Method in class musichub.business.MusicHub
+
 
+
ELEMENTS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
ENGLISH - Enum constant in enum class musichub.business.Language
+
 
+
+

F

+
+
FRENCH - Enum constant in enum class musichub.business.Language
+
 
+
+

G

+
+
Genre - Enum Class in musichub.business
+
 
+
GERMAN - Enum constant in enum class musichub.business.Language
+
 
+
getAlbumSongs(String) - Method in class musichub.business.MusicHub
+
 
+
getAlbumSongsSortedByGenre(String) - Method in class musichub.business.MusicHub
+
 
+
getAlbumsTitlesSortedByDate() - Method in class musichub.business.MusicHub
+
 
+
getArtist() - Method in class musichub.business.AudioElement
+
 
+
getAudiobooksTitlesSortedByAuthor() - Method in class musichub.business.MusicHub
+
 
+
getCategory() - Method in class musichub.business.AudioBook
+
 
+
getCategory() - Method in enum class musichub.business.Category
+
 
+
getDate() - Method in class musichub.business.Album
+
 
+
getElements() - Method in class musichub.business.PlayList
+
 
+
getGenre() - Method in enum class musichub.business.Genre
+
 
+
getGenre() - Method in class musichub.business.Song
+
 
+
getLanguage() - Method in class musichub.business.AudioBook
+
 
+
getLanguage() - Method in enum class musichub.business.Language
+
 
+
getSongs() - Method in class musichub.business.Album
+
 
+
getSongsRandomly() - Method in class musichub.business.Album
+
 
+
getTitle() - Method in class musichub.business.Album
+
 
+
getTitle() - Method in class musichub.business.AudioElement
+
 
+
getTitle() - Method in class musichub.business.PlayList
+
 
+
getUUID() - Method in class musichub.business.AudioElement
+
 
+
+

H

+
+
HIPHOP - Enum constant in enum class musichub.business.Genre
+
 
+
+

I

+
+
ITALIAN - Enum constant in enum class musichub.business.Language
+
 
+
+

J

+
+
JAZZ - Enum constant in enum class musichub.business.Genre
+
 
+
+

L

+
+
Language - Enum Class in musichub.business
+
 
+
lengthInSeconds - Variable in class musichub.business.AudioElement
+
 
+
+

M

+
+
main(String[]) - Static method in class musichub.main.Main
+
 
+
Main - Class in musichub.main
+
 
+
Main() - Constructor for class musichub.main.Main
+
 
+
MusicHub - Class in musichub.business
+
 
+
MusicHub() - Constructor for class musichub.business.MusicHub
+
 
+
musichub.business - package musichub.business
+
 
+
musichub.main - package musichub.main
+
 
+
musichub.util - package musichub.util
+
 
+
+

N

+
+
NoAlbumFoundException - Exception in musichub.business
+
 
+
NoAlbumFoundException(String) - Constructor for exception musichub.business.NoAlbumFoundException
+
 
+
NoElementFoundException - Exception in musichub.business
+
 
+
NoElementFoundException(String) - Constructor for exception musichub.business.NoElementFoundException
+
 
+
NoPlayListFoundException - Exception in musichub.business
+
 
+
NoPlayListFoundException(String) - Constructor for exception musichub.business.NoPlayListFoundException
+
 
+
NOVEL - Enum constant in enum class musichub.business.Category
+
 
+
+

P

+
+
parseXMLFile(String) - Method in class musichub.util.XMLHandler
+
 
+
PlayList - Class in musichub.business
+
 
+
PlayList(String) - Constructor for class musichub.business.PlayList
+
 
+
PlayList(String, String, ArrayList<UUID>) - Constructor for class musichub.business.PlayList
+
 
+
PlayList(Element) - Constructor for class musichub.business.PlayList
+
 
+
playlists() - Method in class musichub.business.MusicHub
+
 
+
PLAYLISTS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
POP - Enum constant in enum class musichub.business.Genre
+
 
+
+

R

+
+
RAP - Enum constant in enum class musichub.business.Genre
+
 
+
ROCK - Enum constant in enum class musichub.business.Genre
+
 
+
+

S

+
+
saveAlbums() - Method in class musichub.business.MusicHub
+
 
+
saveElements() - Method in class musichub.business.MusicHub
+
 
+
savePlayLists() - Method in class musichub.business.MusicHub
+
 
+
setCategory(String) - Method in class musichub.business.AudioBook
+
 
+
setGenre(String) - Method in class musichub.business.Song
+
 
+
setLanguage(String) - Method in class musichub.business.AudioBook
+
 
+
Song - Class in musichub.business
+
 
+
Song(String, String, int, String, String) - Constructor for class musichub.business.Song
+
 
+
Song(String, String, int, String, String, String) - Constructor for class musichub.business.Song
+
 
+
Song(Element) - Constructor for class musichub.business.Song
+
 
+
SPANISH - Enum constant in enum class musichub.business.Language
+
 
+
SPEECH - Enum constant in enum class musichub.business.Category
+
 
+
+

T

+
+
THEATER - Enum constant in enum class musichub.business.Category
+
 
+
title - Variable in class musichub.business.AudioElement
+
 
+
toString() - Method in class musichub.business.AudioBook
+
 
+
toString() - Method in class musichub.business.AudioElement
+
 
+
toString() - Method in class musichub.business.Song
+
 
+
+

U

+
+
uuid - Variable in class musichub.business.AudioElement
+
 
+
+

V

+
+
valueOf(String) - Static method in enum class musichub.business.Category
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class musichub.business.Genre
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class musichub.business.Language
+
+
Returns the enum constant of this class with the specified name.
+
+
values() - Static method in enum class musichub.business.Category
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class musichub.business.Genre
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class musichub.business.Language
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
+

X

+
+
XMLHandler - Class in musichub.util
+
 
+
XMLHandler() - Constructor for class musichub.util.XMLHandler
+
 
+
+

Y

+
+
YOUTH - Enum constant in enum class musichub.business.Category
+
 
+
+A C D E F G H I J L M N P R S T U V X Y 
All Classes|All Packages|Serialized Form
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html new file mode 100644 index 0000000..62084d5 --- /dev/null +++ b/target/site/apidocs/index.html @@ -0,0 +1,78 @@ + + + + + +Overview (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

spoteezer 0.1.0 API

+
+
+
Packages
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/jquery-ui.overrides.css b/target/site/apidocs/jquery-ui.overrides.css new file mode 100644 index 0000000..f89acb6 --- /dev/null +++ b/target/site/apidocs/jquery-ui.overrides.css @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; +} diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js new file mode 100644 index 0000000..d356ad0 --- /dev/null +++ b/target/site/apidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/module-search-index.js b/target/site/apidocs/module-search-index.js new file mode 100644 index 0000000..0d59754 --- /dev/null +++ b/target/site/apidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html new file mode 100644 index 0000000..4c8007c --- /dev/null +++ b/target/site/apidocs/musichub/business/Album.html @@ -0,0 +1,250 @@ + + + + + +Album (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Album

+
+
java.lang.Object +
musichub.business.Album
+
+
+
+
public class Album +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addSong

      +
      public void addSong(UUID song)
      +
      +
    • +
    • +
      +

      getSongs

      +
      public List<UUID> getSongs()
      +
      +
    • +
    • +
      +

      getSongsRandomly

      +
      public ArrayList<UUID> getSongsRandomly()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      getDate

      +
      public Date getDate()
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html new file mode 100644 index 0000000..cb3aae7 --- /dev/null +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -0,0 +1,273 @@ + + + + + +AudioBook (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AudioBook

+
+
java.lang.Object +
musichub.business.AudioElement +
musichub.business.AudioBook
+
+
+
+
+
public class AudioBook +extends AudioElement
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AudioBook

      +
      public AudioBook(String title, + String artist, + int lengthInSeconds, + String uid, + String content, + String language, + String category)
      +
      +
    • +
    • +
      +

      AudioBook

      +
      public AudioBook(String title, + String artist, + int lengthInSeconds, + String content, + String language, + String category)
      +
      +
    • +
    • +
      +

      AudioBook

      +
      public AudioBook(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getLanguage

      +
      public Language getLanguage()
      +
      +
    • +
    • +
      +

      setLanguage

      +
      public void setLanguage(String language)
      +
      +
    • +
    • +
      +

      getCategory

      +
      public Category getCategory()
      +
      +
    • +
    • +
      +

      setCategory

      +
      public void setCategory(String category)
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      +
      Overrides:
      +
      toString in class AudioElement
      +
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
      Overrides:
      +
      createXMLElement in class AudioElement
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html new file mode 100644 index 0000000..3679f49 --- /dev/null +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -0,0 +1,307 @@ + + + + + +AudioElement (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AudioElement

+
+
java.lang.Object +
musichub.business.AudioElement
+
+
+
+
Direct Known Subclasses:
+
AudioBook, Song
+
+
+
public abstract class AudioElement +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      title

      +
      protected String title
      +
      +
    • +
    • +
      +

      artist

      +
      protected String artist
      +
      +
    • +
    • +
      +

      lengthInSeconds

      +
      protected int lengthInSeconds
      +
      +
    • +
    • +
      +

      uuid

      +
      protected UUID uuid
      +
      +
    • +
    • +
      +

      content

      +
      protected String content
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AudioElement

      +
      public AudioElement(String title, + String artist, + int lengthInSeconds, + String id, + String content)
      +
      +
    • +
    • +
      +

      AudioElement

      +
      public AudioElement(String title, + String artist, + int lengthInSeconds, + String content)
      +
      +
    • +
    • +
      +

      AudioElement

      +
      public AudioElement(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getUUID

      +
      public UUID getUUID()
      +
      +
    • +
    • +
      +

      getArtist

      +
      public String getArtist()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      +
      Overrides:
      +
      toString in class Object
      +
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html new file mode 100644 index 0000000..7a26b6d --- /dev/null +++ b/target/site/apidocs/musichub/business/Category.html @@ -0,0 +1,258 @@ + + + + + +Category (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Category

+
+
java.lang.Object +
java.lang.Enum<Category> +
musichub.business.Category
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Category>, Constable
+
+
+
public enum Category +extends Enum<Category>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      YOUTH

      +
      public static final Category YOUTH
      +
      +
    • +
    • +
      +

      NOVEL

      +
      public static final Category NOVEL
      +
      +
    • +
    • +
      +

      THEATER

      +
      public static final Category THEATER
      +
      +
    • +
    • +
      +

      DOCUMENTARY

      +
      public static final Category DOCUMENTARY
      +
      +
    • +
    • +
      +

      SPEECH

      +
      public static final Category SPEECH
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Category[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Category valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getCategory

      +
      public String getCategory()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html new file mode 100644 index 0000000..eac735c --- /dev/null +++ b/target/site/apidocs/musichub/business/Genre.html @@ -0,0 +1,266 @@ + + + + + +Genre (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Genre

+
+
java.lang.Object +
java.lang.Enum<Genre> +
musichub.business.Genre
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Genre>, Constable
+
+
+
public enum Genre +extends Enum<Genre>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      JAZZ

      +
      public static final Genre JAZZ
      +
      +
    • +
    • +
      +

      CLASSIC

      +
      public static final Genre CLASSIC
      +
      +
    • +
    • +
      +

      HIPHOP

      +
      public static final Genre HIPHOP
      +
      +
    • +
    • +
      +

      ROCK

      +
      public static final Genre ROCK
      +
      +
    • +
    • +
      +

      POP

      +
      public static final Genre POP
      +
      +
    • +
    • +
      +

      RAP

      +
      public static final Genre RAP
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Genre[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Genre valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getGenre

      +
      public String getGenre()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html new file mode 100644 index 0000000..e220e63 --- /dev/null +++ b/target/site/apidocs/musichub/business/Language.html @@ -0,0 +1,258 @@ + + + + + +Language (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Language

+
+
java.lang.Object +
java.lang.Enum<Language> +
musichub.business.Language
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Language>, Constable
+
+
+
public enum Language +extends Enum<Language>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      FRENCH

      +
      public static final Language FRENCH
      +
      +
    • +
    • +
      +

      ENGLISH

      +
      public static final Language ENGLISH
      +
      +
    • +
    • +
      +

      ITALIAN

      +
      public static final Language ITALIAN
      +
      +
    • +
    • +
      +

      SPANISH

      +
      public static final Language SPANISH
      +
      +
    • +
    • +
      +

      GERMAN

      +
      public static final Language GERMAN
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Language[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Language valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getLanguage

      +
      public String getLanguage()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html new file mode 100644 index 0000000..87380ec --- /dev/null +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -0,0 +1,390 @@ + + + + + +MusicHub (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MusicHub

+
+
java.lang.Object +
musichub.business.MusicHub
+
+
+
+
public class MusicHub +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html new file mode 100644 index 0000000..f906ae8 --- /dev/null +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoAlbumFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoAlbumFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoAlbumFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoAlbumFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoAlbumFoundException

      +
      public NoAlbumFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html new file mode 100644 index 0000000..a15f7a4 --- /dev/null +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoElementFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoElementFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoElementFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoElementFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoElementFoundException

      +
      public NoElementFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html new file mode 100644 index 0000000..65dfbeb --- /dev/null +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoPlayListFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoPlayListFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoPlayListFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoPlayListFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoPlayListFoundException

      +
      public NoPlayListFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html new file mode 100644 index 0000000..5688387 --- /dev/null +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -0,0 +1,215 @@ + + + + + +PlayList (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlayList

+
+
java.lang.Object +
musichub.business.PlayList
+
+
+
+
public class PlayList +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PlayList

      +
      public PlayList(String title, + String id, + ArrayList<UUID> elementUUIDs)
      +
      +
    • +
    • +
      +

      PlayList

      +
      public PlayList(String title)
      +
      +
    • +
    • +
      +

      PlayList

      +
      public PlayList(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addElement

      +
      public void addElement(UUID element)
      +
      +
    • +
    • +
      +

      getElements

      +
      public ArrayList<UUID> getElements()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html new file mode 100644 index 0000000..cfbc99a --- /dev/null +++ b/target/site/apidocs/musichub/business/Song.html @@ -0,0 +1,251 @@ + + + + + +Song (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Song

+
+ +
+
+
public class Song +extends AudioElement
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html new file mode 100644 index 0000000..98538f1 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -0,0 +1,99 @@ + + + + + +Uses of Class musichub.business.Album (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.Album

+
+
Packages that use Album
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html new file mode 100644 index 0000000..bd1fe37 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.AudioBook

+
+No usage of musichub.business.AudioBook
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html new file mode 100644 index 0000000..805e3cb --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -0,0 +1,114 @@ + + + + + +Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.AudioElement

+
+
Packages that use AudioElement
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html new file mode 100644 index 0000000..cb51f60 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -0,0 +1,101 @@ + + + + + +Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Category

+
+
Packages that use Category
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html new file mode 100644 index 0000000..224ace7 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -0,0 +1,98 @@ + + + + + +Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Genre

+
+
Packages that use Genre
+
+
Package
+
Description
+ +
 
+
+
+
    +
  • +
    +

    Uses of Genre in musichub.business

    +
    Methods in musichub.business that return Genre
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static Genre
    +
    Genre.valueOf​(String name)
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    static Genre[]
    +
    Genre.values()
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html new file mode 100644 index 0000000..c02b71d --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -0,0 +1,101 @@ + + + + + +Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Language

+
+
Packages that use Language
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html new file mode 100644 index 0000000..0c5288d --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.MusicHub

+
+No usage of musichub.business.MusicHub
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html new file mode 100644 index 0000000..69c1a6c --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -0,0 +1,97 @@ + + + + + +Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoAlbumFoundException

+
+
Packages that use NoAlbumFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html new file mode 100644 index 0000000..47178b8 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -0,0 +1,95 @@ + + + + + +Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoElementFoundException

+
+
Packages that use NoElementFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html new file mode 100644 index 0000000..0a7cd6f --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -0,0 +1,94 @@ + + + + + +Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoPlayListFoundException

+
+
Packages that use NoPlayListFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html new file mode 100644 index 0000000..39e18c2 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -0,0 +1,99 @@ + + + + + +Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.PlayList

+
+
Packages that use PlayList
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html new file mode 100644 index 0000000..1303885 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -0,0 +1,90 @@ + + + + + +Uses of Class musichub.business.Song (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.Song

+
+
Packages that use Song
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html new file mode 100644 index 0000000..79ed6a4 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -0,0 +1,116 @@ + + + + + +musichub.business (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.business

+
+
+
package musichub.business
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html new file mode 100644 index 0000000..1a6bff9 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -0,0 +1,114 @@ + + + + + +musichub.business Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.business

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html new file mode 100644 index 0000000..a793731 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-use.html @@ -0,0 +1,105 @@ + + + + + +Uses of Package musichub.business (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.business

+
+
Packages that use musichub.business
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html new file mode 100644 index 0000000..3156088 --- /dev/null +++ b/target/site/apidocs/musichub/main/Main.html @@ -0,0 +1,166 @@ + + + + + +Main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+
Package musichub.main
+

Class Main

+
+
java.lang.Object +
musichub.main.Main
+
+
+
+
public class Main +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Main

      +
      public Main()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      main

      +
      public static void main(String[] args)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html new file mode 100644 index 0000000..2c0e0ad --- /dev/null +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.main.Main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.main.Main

+
+No usage of musichub.main.Main
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html new file mode 100644 index 0000000..316cd6d --- /dev/null +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -0,0 +1,80 @@ + + + + + +musichub.main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.main

+
+
+
package musichub.main
+
+
    +
  • +
    Class Summary
    +
    +
    Class
    +
    Description
    + +
     
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html new file mode 100644 index 0000000..57cd805 --- /dev/null +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -0,0 +1,79 @@ + + + + + +musichub.main Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.main

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html new file mode 100644 index 0000000..d98a9cf --- /dev/null +++ b/target/site/apidocs/musichub/main/package-use.html @@ -0,0 +1,65 @@ + + + + + +Uses of Package musichub.main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.main

+
+No usage of musichub.main
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html new file mode 100644 index 0000000..fae13b3 --- /dev/null +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -0,0 +1,186 @@ + + + + + +XMLHandler (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+
Package musichub.util
+

Class XMLHandler

+
+
java.lang.Object +
musichub.util.XMLHandler
+
+
+
+
public class XMLHandler +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      XMLHandler

      +
      public XMLHandler()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      createXMLFile

      +
      public void createXMLFile(Document document, + String filePath)
      +
      +
    • +
    • +
      +

      createXMLDocument

      +
      public Document createXMLDocument()
      +
      +
    • +
    • +
      +

      parseXMLFile

      +
      public NodeList parseXMLFile(String filePath)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html new file mode 100644 index 0000000..86a8a19 --- /dev/null +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.util.XMLHandler

+
+No usage of musichub.util.XMLHandler
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html new file mode 100644 index 0000000..ba36654 --- /dev/null +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -0,0 +1,80 @@ + + + + + +musichub.util (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.util

+
+
+
package musichub.util
+
+
    +
  • +
    Class Summary
    +
    +
    Class
    +
    Description
    + +
     
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html new file mode 100644 index 0000000..f2ad19b --- /dev/null +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -0,0 +1,79 @@ + + + + + +musichub.util Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.util

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html new file mode 100644 index 0000000..7a3d44d --- /dev/null +++ b/target/site/apidocs/musichub/util/package-use.html @@ -0,0 +1,65 @@ + + + + + +Uses of Package musichub.util (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.util

+
+No usage of musichub.util
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html new file mode 100644 index 0000000..33c47d8 --- /dev/null +++ b/target/site/apidocs/overview-summary.html @@ -0,0 +1,27 @@ + + + + + +spoteezer 0.1.0 API + + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html new file mode 100644 index 0000000..dbb2e21 --- /dev/null +++ b/target/site/apidocs/overview-tree.html @@ -0,0 +1,118 @@ + + + + + +Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/package-search-index.js b/target/site/apidocs/package-search-index.js new file mode 100644 index 0000000..3098d0e --- /dev/null +++ b/target/site/apidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"musichub.business"},{"l":"musichub.main"},{"l":"musichub.util"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/resources/glass.png b/target/site/apidocs/resources/glass.png new file mode 100644 index 0000000..a7f591f Binary files /dev/null and b/target/site/apidocs/resources/glass.png differ diff --git a/target/site/apidocs/resources/x.png b/target/site/apidocs/resources/x.png new file mode 100644 index 0000000..30548a7 Binary files /dev/null and b/target/site/apidocs/resources/x.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..34abd18 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png new file mode 100644 index 0000000..f058a93 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..2ce04c1 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..a90afb8 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..dbe091f Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..5dc3593 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..e723e17 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..1f5f497 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..618f5b0 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..ee5e33f Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..7e8ebc1 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png differ diff --git a/target/site/apidocs/script-dir/jquery-3.5.1.min.js b/target/site/apidocs/script-dir/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/target/site/apidocs/script-dir/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file diff --git a/target/site/apidocs/script-dir/jquery-ui.structure.min.css b/target/site/apidocs/script-dir/jquery-ui.structure.min.css new file mode 100644 index 0000000..e880892 --- /dev/null +++ b/target/site/apidocs/script-dir/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-12-06 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/target/site/apidocs/script.js b/target/site/apidocs/script.js new file mode 100644 index 0000000..864989c --- /dev/null +++ b/target/site/apidocs/script.js @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} + +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/target/site/apidocs/search.js b/target/site/apidocs/search.js new file mode 100644 index 0000000..2c2ced0 --- /dev/null +++ b/target/site/apidocs/search.js @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; +var RANKING_THRESHOLD = 2; +var NO_MATCH = 0xffff; +var MIN_RESULTS = 3; +var MAX_RESULTS = 500; +var UNNAMED = ""; +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(item, matcher, fallbackMatcher) { + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; +} +function getURLPrefix(ui) { + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); + } + } + return urlPrefix; +} +function createSearchPattern(term) { + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } + } + }); + return pattern; +} +function createMatcher(pattern, flags) { + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); +} +var watermark = 'Search'; +$(function() { + var search = $("#search"); + var reset = $("#reset"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + item.category + "
    • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
      " + + item.d + "
      "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; + } +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + +} +function doSearch(request, response) { + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); + + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); + } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } + } + + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); + } + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search").focus(); + } + } + }); +}); diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html new file mode 100644 index 0000000..a693241 --- /dev/null +++ b/target/site/apidocs/serialized-form.html @@ -0,0 +1,89 @@ + + + + + +Serialized Form (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Serialized Form

      +
      + +
      +
      +
      + +
      +
      +
      + + diff --git a/target/site/apidocs/stylesheet.css b/target/site/apidocs/stylesheet.css new file mode 100644 index 0000000..932e56c --- /dev/null +++ b/target/site/apidocs/stylesheet.css @@ -0,0 +1,827 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +.summary-table dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0; + overflow:hidden; +} +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +@media screen { + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.sub-nav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.sub-nav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list { + padding-top:5px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; +} +.nav-list-search label { + position:relative; + right:-16px; +} +ul.sub-nav-list li { + list-style:none; + float:left; + padding-top:10px; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.nav-bar-cell1-rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header and footer. + */ +.title { + color:#2c4557; + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +dl.notes > dd { + margin:5px 0 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +/* + * Styles for tables. + */ +.summary-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.summary-table { + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; +} +.caption a:hover, +.caption a:active { + color:#FFFFFF; +} +.caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} + +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; +} +div.table-tabs > button.active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +@media screen and (max-width: 800px) { + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:#dee3e9; + font-weight: bold; +} +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; +} +.table-sub-heading-color { + background-color:#EEEEFF; +} +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; +} +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.deprecated-content { + margin:0; + padding:10px 0; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .interface-name { + font-style:italic; +} +.deprecation-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment, div.block div.block span.emphasized-phrase, +div.block div.block span.interface-name { + font-style:normal; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.result-item { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.result-highlight { + font-weight:bold; +} +#search { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; +} +#reset { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:yellow; +} +.module-graph span { + display:none; + position:absolute; +} +.module-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak font sizes and paddings for small screens. + */ +@media screen and (max-width: 1050px) { + #search { + width: 300px; + } +} +@media screen and (max-width: 800px) { + #search { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 500px) { + #search { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } +} diff --git a/target/site/apidocs/tag-search-index.js b/target/site/apidocs/tag-search-index.js new file mode 100644 index 0000000..f38b3cb --- /dev/null +++ b/target/site/apidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js new file mode 100644 index 0000000..2401962 --- /dev/null +++ b/target/site/apidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 99be000..2c80e1b 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 443140cfbde040afd3f1b279c77e2b8d61765c85 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 12:57:09 +0200 Subject: Update --- dependency-reduced-pom.xml | 38 ++++++++++----------- target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 38 ++++++++++----------- target/original-spoteezer-0.1.0.jar | Bin 29836 -> 29836 bytes target/site/apidocs/allclasses-index.html | 2 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 2 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 2 +- .../apidocs/musichub/business/AudioElement.html | 2 +- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 2 +- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 2 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 2 +- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 2 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 2 +- .../apidocs/musichub/business/package-tree.html | 2 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 2 +- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 2 +- target/site/apidocs/serialized-form.html | 2 +- target/spoteezer-0.1.0.jar | Bin 365706 -> 365706 bytes 50 files changed, 84 insertions(+), 84 deletions(-) diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 027738e..de729db 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -11,16 +11,16 @@ maven-shade-plugin 3.2.4 - - package - - shade - - - - - musichub.main.Main - + + package + + shade + + + + + musichub.main.Main + @@ -49,15 +49,15 @@ - - maven-compiler-plugin - - 16 - 16 - - - - + + maven-compiler-plugin + + 16 + 16 + + + + 16 16 diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 2665c29..93fc220 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 12:33:30 CEST 2021 +#Sat Jun 26 12:55:18 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index 4368553..106bfed 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -43,22 +43,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624701235404 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624703620814 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624703620816 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624703620727 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624703620841 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624703620837 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624703620798 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624703620864 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624703620820 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624703620817 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624703620839 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624703620795 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624703620818 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624703620845 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624703620848 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624703620749 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624703620844 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624703620821 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624703620819 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624704746958 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624704928892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624704928894 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624704928806 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624704928918 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624704928914 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624704928876 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624704928938 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624704928898 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624704928895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624704928916 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624704928873 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624704928896 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624704928921 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624704928924 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624704928827 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624704928920 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624704928899 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624704928897 \ No newline at end of file diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 1acfbb8..28e38bb 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index cf6d8b7..fb49088 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index 28ab802..9c043ad 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index 678cc80..e124b74 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index 4260fa8..f91c9b3 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 62084d5..7c966a1 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 4c8007c..3e67075 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index cb3aae7..48361da 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 3679f49..89abaab 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 7a26b6d..839a958 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index eac735c..0b854bf 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index e220e63..96488c5 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 87380ec..9c5266c 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index f906ae8..5a480c3 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index a15f7a4..704f5ce 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 65dfbeb..9d832fc 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index 5688387..80f0b18 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index cfbc99a..0a4f1fd 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index 98538f1..c7a6a88 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index bd1fe37..83d738a 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index 805e3cb..1a553bf 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index cb51f60..62d35c3 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index 224ace7..e87b8fb 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index c02b71d..cf13a0c 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 0c5288d..7ae64d9 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index 69c1a6c..165de5a 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index 47178b8..b26799b 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index 0a7cd6f..0ff787f 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index 39e18c2..f230f7f 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 1303885..9d1c95e 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index 79ed6a4..0df1343 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index 1a6bff9..8104cc3 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index a793731..a1cf6fb 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index 3156088..f0ef281 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 2c0e0ad..0af879d 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 316cd6d..4be4c16 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 57cd805..96aab23 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index d98a9cf..e22beef 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index fae13b3..4b8d7ba 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index 86a8a19..7435f8d 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index ba36654..b38851e 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index f2ad19b..c4625b5 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index 7a3d44d..471f563 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index 33c47d8..f15374c 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index dbb2e21..cecf679 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index a693241..d1ab954 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 2c80e1b..3f4d90b 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 0270397f9c1207e5ebe703164135d9d53a4dbe0a Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Sat, 26 Jun 2021 11:03:22 +0000 Subject: Delete .idea directory --- .idea/.gitignore | 8 -------- .idea/misc.xml | 6 ------ .idea/modules.xml | 8 -------- .idea/vcs.xml | 6 ------ 4 files changed, 28 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 73f69e0..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 644a944..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 8f05ee9..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file -- cgit v1.2.3 From a826e2ba63205f8d7c1cd21ea79af34d82f0989b Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Sat, 26 Jun 2021 11:04:46 +0000 Subject: Delete .project --- .project | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .project diff --git a/.project b/.project deleted file mode 100644 index cf232f0..0000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - spoteezer - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - -- cgit v1.2.3 From 2291069c473ded69640a28ba11c223c5fc241426 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Sat, 26 Jun 2021 11:04:52 +0000 Subject: Delete .classpath --- .classpath | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 .classpath diff --git a/.classpath b/.classpath deleted file mode 100644 index 0cbf9cd..0000000 --- a/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - -- cgit v1.2.3 From 8e13dba6e1c39dd841d60fddc3c4060f9b4a4b85 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 13:32:26 +0200 Subject: Removed reduced pom and added the content of STZ-0001 with a switch modif. --- Song/Side_To_Side.wav | Bin 0 -> 43422962 bytes dependency-reduced-pom.xml | 67 --------------------- files/albums.xml | 2 + files/elements.xml | 6 +- pom.xml | 1 + src/main/java/musichub/business/AudioElement.java | 34 +++++++++++ src/main/java/musichub/business/MusicHub.java | 12 ++++ src/main/java/musichub/business/Song.java | 2 + src/main/java/musichub/main/Main.java | 12 +++- .../classes/musichub/business/AudioElement.class | Bin 3752 -> 5392 bytes target/classes/musichub/business/MusicHub.class | Bin 11031 -> 11543 bytes .../classes/musichub/business/SortByAuthor.class | Bin 901 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 854 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 858 -> 858 bytes target/classes/musichub/main/Main.class | Bin 9390 -> 9840 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 38 ++++++------ target/original-spoteezer-0.1.0.jar | Bin 29836 -> 31130 bytes target/site/apidocs/allclasses-index.html | 2 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 6 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/member-search-index.js | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 4 +- .../apidocs/musichub/business/AudioElement.html | 24 +++++++- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 36 ++++++++--- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 4 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 12 +++- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 6 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 2 +- .../apidocs/musichub/business/package-tree.html | 2 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 13 +++- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 2 +- target/site/apidocs/serialized-form.html | 2 +- target/spoteezer-0.1.0.jar | Bin 365706 -> 367000 bytes 65 files changed, 208 insertions(+), 149 deletions(-) create mode 100644 Song/Side_To_Side.wav delete mode 100644 dependency-reduced-pom.xml diff --git a/Song/Side_To_Side.wav b/Song/Side_To_Side.wav new file mode 100644 index 0000000..3c874db Binary files /dev/null and b/Song/Side_To_Side.wav differ diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml deleted file mode 100644 index de729db..0000000 --- a/dependency-reduced-pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - esiea.softwareengineering - spoteezer - 0.1.0 - - - - maven-shade-plugin - 3.2.4 - - - package - - shade - - - - - musichub.main.Main - - - - - - - - maven-surefire-plugin - 2.22.0 - - - org.jacoco - jacoco-maven-plugin - 0.8.7 - - - - prepare-agent - - - - report - test - - report - - - - - - maven-compiler-plugin - - 16 - 16 - - - - - - 16 - 16 - 16 - 16 - - diff --git a/files/albums.xml b/files/albums.xml index edfd610..edb2a94 100644 --- a/files/albums.xml +++ b/files/albums.xml @@ -12,6 +12,7 @@ b2ee0ca0-b5e2-4bc9-8fed-7932fb145f2f bbe99998-1be6-4a40-8bf0-6a7fce9087c9 66d277ca-cbc4-471c-a07e-082363375bcc + 44136020-dc80-4522-9b71-2b9aad5e3039 @@ -22,6 +23,7 @@ 1978-01-23 44136020-dc80-4522-9b71-2b9aad5e3039 + 66d277ca-cbc4-471c-a07e-082363375bcc \ No newline at end of file diff --git a/files/elements.xml b/files/elements.xml index 7fefc5f..553f228 100644 --- a/files/elements.xml +++ b/files/elements.xml @@ -9,11 +9,11 @@ pop - I Want to Hold your Hand - The Beatles + Side To Side + Ariana Grande 186 66d277ca-cbc4-471c-a07e-082363375bcc - i_want_to_hold_your_hand.mp3 + Song/Side_To_Side.wav rock diff --git a/pom.xml b/pom.xml index 821c1b6..7ebddc1 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ shade + false diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java index e0a686b..0a51c16 100644 --- a/src/main/java/musichub/business/AudioElement.java +++ b/src/main/java/musichub/business/AudioElement.java @@ -3,6 +3,10 @@ package musichub.business; import org.w3c.dom.Document; import org.w3c.dom.Element; +import javax.sound.sampled.*; +import java.io.File; +import java.io.IOException; +import java.util.Scanner; import java.util.UUID; public abstract class AudioElement { @@ -85,4 +89,34 @@ public abstract class AudioElement { } + public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException { + + Scanner scanner = new Scanner(System.in); + + File file = new File(this.content); + AudioInputStream audioStream = AudioSystem.getAudioInputStream(file); + Clip clip = AudioSystem.getClip(); + clip.open(audioStream); + + String action = ""; + + while (!action.equals("Q")) { + System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit"); + System.out.println("Enter your choice"); + action = scanner.next(); + action = action.toUpperCase(); + + switch (action) { + case "S", "Q" -> clip.stop(); + case "P" -> clip.start(); + case "R" -> clip.setMicrosecondPosition(0); + default -> System.out.println("try again"); + } + System.out.println("You stopped the Audio element"); + } + + clip.close(); + + } + } \ No newline at end of file diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index 38e2214..f289f1a 100644 --- a/src/main/java/musichub/business/MusicHub.java +++ b/src/main/java/musichub/business/MusicHub.java @@ -6,6 +6,9 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.IOException; import java.util.*; class SortByDate implements Comparator { @@ -326,4 +329,13 @@ public class MusicHub { } xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); } + + public void getAudioElement(List audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { + for (AudioElement el : audios) { + if (el.getTitle().equalsIgnoreCase(elementTitle)) { + el.manageAudioElement(); + } + } + + } } \ No newline at end of file diff --git a/src/main/java/musichub/business/Song.java b/src/main/java/musichub/business/Song.java index 3e9011b..5d044a9 100644 --- a/src/main/java/musichub/business/Song.java +++ b/src/main/java/musichub/business/Song.java @@ -53,4 +53,6 @@ public class Song extends AudioElement { parentElement.appendChild(song); } + + } \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index b72a95b..c820b5d 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -2,11 +2,15 @@ package musichub.main; import musichub.business.*; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.IOException; import java.util.Iterator; +import java.util.List; import java.util.Scanner; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { MusicHub theHub = new MusicHub(); @@ -41,7 +45,8 @@ public class Main { albumTitle = scan.nextLine(); try { - System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); + List songs = theHub.getAlbumSongsSortedByGenre(albumTitle); + System.out.println(songs); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } @@ -55,7 +60,10 @@ public class Main { albumTitle = scan.nextLine(); try { + List songs = theHub.getAlbumSongs(albumTitle); System.out.println(theHub.getAlbumSongs(albumTitle)); + String song = scan.nextLine(); + theHub.getAudioElement(songs, song); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class index ab20d50..3579513 100644 Binary files a/target/classes/musichub/business/AudioElement.class and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class index e1a0961..8b8b280 100644 Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class index fb8ee7a..ac4474a 100644 Binary files a/target/classes/musichub/business/SortByAuthor.class and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class index c52e870..6892059 100644 Binary files a/target/classes/musichub/business/SortByDate.class and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class index 2016012..7cabb3e 100644 Binary files a/target/classes/musichub/business/SortByGenre.class and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index 06c19ac..1e19601 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 93fc220..1b408a6 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 12:55:18 CEST 2021 +#Sat Jun 26 13:25:26 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index 106bfed..c701b12 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -43,22 +43,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624704746958 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624704928892 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624704928894 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624704928806 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624704928918 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624704928914 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624704928876 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624704928938 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624704928898 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624704928895 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624704928916 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624704928873 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624704928896 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624704928921 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624704928924 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624704928827 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624704928920 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624704928899 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624704928897 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624705682872 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624706731862 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624706731864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624706731767 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624706731890 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624706731885 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624706731838 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624706731909 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624706731868 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624706731865 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624706731887 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624706731835 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624706731866 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624706731894 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624706731895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624706731788 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624706731892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624706731869 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624706731867 \ No newline at end of file diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 28e38bb..b2c45cf 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index fb49088..83bf57c 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index 9c043ad..a9e8eb8 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index e124b74..a2e0731 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index f91c9b3..cd292d0 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) @@ -164,6 +164,8 @@ loadScripts(document, 'script');
       
      getAudiobooksTitlesSortedByAuthor() - Method in class musichub.business.MusicHub
       
      +
      getAudioElement(List<AudioElement>, String) - Method in class musichub.business.MusicHub
      +
       
      getCategory() - Method in class musichub.business.AudioBook
       
      getCategory() - Method in enum class musichub.business.Category
      @@ -223,6 +225,8 @@ loadScripts(document, 'script');
       
      Main() - Constructor for class musichub.main.Main
       
      +
      manageAudioElement() - Method in class musichub.business.AudioElement
      +
       
      MusicHub - Class in musichub.business
       
      MusicHub() - Constructor for class musichub.business.MusicHub
      diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 7c966a1..87cf0ec 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js index d356ad0..784449a 100644 --- a/target/site/apidocs/member-search-index.js +++ b/target/site/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 3e67075..8d24dd6 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index 48361da..0d8d9b5 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) @@ -159,7 +159,7 @@ loadScripts(document, 'script');

      Methods inherited from class musichub.business.AudioElement

      -getArtist, getTitle, getUUID
      +getArtist, getTitle, getUUID, manageAudioElement
    • Methods inherited from class java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 89abaab..493874c 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) @@ -164,9 +164,12 @@ loadScripts(document, 'script');
       
      - - +
      void
      +
       
      + + +
       
      @@ -290,6 +293,21 @@ loadScripts(document, 'script'); Element parentElement)
+
  • +
    +

    manageAudioElement

    +
    public void manageAudioElement() + throws UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
    +
    +
  • diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 839a958..7748822 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index 0b854bf..f943c15 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index 96488c5..3690e27 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 9c5266c..9ef7adf 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) @@ -171,18 +171,22 @@ loadScripts(document, 'script');
     
    - - +
    void
    +
    getAudioElement​(List<AudioElement> audios, + String elementTitle)
     
    -
    void
    - + +
     
    void
    - +
     
    void
    - +
     
    +
    void
    + +
     
    @@ -373,6 +377,24 @@ loadScripts(document, 'script');
    public void saveElements()
    +
  • +
    +

    getAudioElement

    +
    public void getAudioElement(List<AudioElement> audios, + String elementTitle) + throws NoAlbumFoundException, +UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    NoAlbumFoundException
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
    +
    +
  • diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index 5a480c3..0809462 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index 704f5ce..81e9dce 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 9d832fc..6a2c7a3 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index 80f0b18..c294b58 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index 0a4f1fd..57e0fa5 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) @@ -151,7 +151,7 @@ loadScripts(document, 'script');

    Methods inherited from class musichub.business.AudioElement

    -getArtist, getTitle, getUUID
    +getArtist, getTitle, getUUID, manageAudioElement

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index c7a6a88..eeb9cfe 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index 83d738a..07abecb 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index 1a553bf..a0c35cf 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) @@ -99,6 +99,16 @@ loadScripts(document, 'script');
    MusicHub.addElement​(AudioElement element)
     
    +
    Method parameters in musichub.business with type arguments of type AudioElement
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    +
    MusicHub.getAudioElement​(List<AudioElement> audios, + String elementTitle)
    +
     
    +
    diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index 62d35c3..f916411 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index e87b8fb..a952ca6 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index cf13a0c..6205bc4 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 7ae64d9..8f239ba 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index 165de5a..d948beb 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) @@ -81,6 +81,10 @@ loadScripts(document, 'script');
    MusicHub.getAlbumSongsSortedByGenre​(String albumTitle)
     
    +
    void
    +
    MusicHub.getAudioElement​(List<AudioElement> audios, + String elementTitle)
    +
     
    diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index b26799b..ae74b4d 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index 0ff787f..aab3251 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index f230f7f..4fdd1e0 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 9d1c95e..92d62d4 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index 0df1343..b5af4ec 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index 8104cc3..f640a6b 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index a1cf6fb..7ed1edb 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index f0ef281..f8bfd28 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) @@ -146,7 +146,16 @@ loadScripts(document, 'script');
  • main

    -
    public static void main(String[] args)
    +
    public static void main(String[] args) + throws UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
  • diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 0af879d..6d45c1a 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 4be4c16..350f1ec 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 96aab23..8322e63 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index e22beef..698c432 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index 4b8d7ba..942ecac 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index 7435f8d..f3cd47c 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index b38851e..12cbd12 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index c4625b5..b987ff3 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index 471f563..cf30494 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index f15374c..0415e8e 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index cecf679..b53ddc6 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index d1ab954..de7162a 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 3f4d90b..9f65573 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 01796fd4f6160d57bbad26d66d5c1f6c1b6c83ad Mon Sep 17 00:00:00 2001 From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com> Date: Sat, 26 Jun 2021 11:40:10 +0000 Subject: Delete out/production/spoteezer/musichub directory --- out/production/spoteezer/musichub/business/Album.class | Bin 5606 -> 0 bytes .../spoteezer/musichub/business/AudioBook.class | Bin 4278 -> 0 bytes .../spoteezer/musichub/business/AudioElement.class | Bin 3752 -> 0 bytes .../spoteezer/musichub/business/Category.class | Bin 1476 -> 0 bytes out/production/spoteezer/musichub/business/Genre.class | Bin 1487 -> 0 bytes .../spoteezer/musichub/business/Language.class | Bin 1474 -> 0 bytes .../spoteezer/musichub/business/MusicHub.class | Bin 11031 -> 0 bytes .../musichub/business/NoAlbumFoundException.class | Bin 387 -> 0 bytes .../musichub/business/NoElementFoundException.class | Bin 393 -> 0 bytes .../musichub/business/NoPlayListFoundException.class | Bin 396 -> 0 bytes .../spoteezer/musichub/business/PlayList.class | Bin 3926 -> 0 bytes out/production/spoteezer/musichub/business/Song.class | Bin 3217 -> 0 bytes .../spoteezer/musichub/business/SortByAuthor.class | Bin 901 -> 0 bytes .../spoteezer/musichub/business/SortByDate.class | Bin 854 -> 0 bytes .../spoteezer/musichub/business/SortByGenre.class | Bin 858 -> 0 bytes out/production/spoteezer/musichub/main/Main.class | Bin 9322 -> 0 bytes out/production/spoteezer/musichub/util/XMLHandler.class | Bin 2921 -> 0 bytes 17 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 out/production/spoteezer/musichub/business/Album.class delete mode 100644 out/production/spoteezer/musichub/business/AudioBook.class delete mode 100644 out/production/spoteezer/musichub/business/AudioElement.class delete mode 100644 out/production/spoteezer/musichub/business/Category.class delete mode 100644 out/production/spoteezer/musichub/business/Genre.class delete mode 100644 out/production/spoteezer/musichub/business/Language.class delete mode 100644 out/production/spoteezer/musichub/business/MusicHub.class delete mode 100644 out/production/spoteezer/musichub/business/NoAlbumFoundException.class delete mode 100644 out/production/spoteezer/musichub/business/NoElementFoundException.class delete mode 100644 out/production/spoteezer/musichub/business/NoPlayListFoundException.class delete mode 100644 out/production/spoteezer/musichub/business/PlayList.class delete mode 100644 out/production/spoteezer/musichub/business/Song.class delete mode 100644 out/production/spoteezer/musichub/business/SortByAuthor.class delete mode 100644 out/production/spoteezer/musichub/business/SortByDate.class delete mode 100644 out/production/spoteezer/musichub/business/SortByGenre.class delete mode 100644 out/production/spoteezer/musichub/main/Main.class delete mode 100644 out/production/spoteezer/musichub/util/XMLHandler.class diff --git a/out/production/spoteezer/musichub/business/Album.class b/out/production/spoteezer/musichub/business/Album.class deleted file mode 100644 index c08b1be..0000000 Binary files a/out/production/spoteezer/musichub/business/Album.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/AudioBook.class b/out/production/spoteezer/musichub/business/AudioBook.class deleted file mode 100644 index 3ad965d..0000000 Binary files a/out/production/spoteezer/musichub/business/AudioBook.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/AudioElement.class b/out/production/spoteezer/musichub/business/AudioElement.class deleted file mode 100644 index ab20d50..0000000 Binary files a/out/production/spoteezer/musichub/business/AudioElement.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/Category.class b/out/production/spoteezer/musichub/business/Category.class deleted file mode 100644 index 51a68d1..0000000 Binary files a/out/production/spoteezer/musichub/business/Category.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/Genre.class b/out/production/spoteezer/musichub/business/Genre.class deleted file mode 100644 index 66a7d69..0000000 Binary files a/out/production/spoteezer/musichub/business/Genre.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/Language.class b/out/production/spoteezer/musichub/business/Language.class deleted file mode 100644 index 31b17c2..0000000 Binary files a/out/production/spoteezer/musichub/business/Language.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/MusicHub.class b/out/production/spoteezer/musichub/business/MusicHub.class deleted file mode 100644 index e1a0961..0000000 Binary files a/out/production/spoteezer/musichub/business/MusicHub.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/NoAlbumFoundException.class b/out/production/spoteezer/musichub/business/NoAlbumFoundException.class deleted file mode 100644 index 03aff87..0000000 Binary files a/out/production/spoteezer/musichub/business/NoAlbumFoundException.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/NoElementFoundException.class b/out/production/spoteezer/musichub/business/NoElementFoundException.class deleted file mode 100644 index 6ba1c87..0000000 Binary files a/out/production/spoteezer/musichub/business/NoElementFoundException.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/NoPlayListFoundException.class b/out/production/spoteezer/musichub/business/NoPlayListFoundException.class deleted file mode 100644 index 54319de..0000000 Binary files a/out/production/spoteezer/musichub/business/NoPlayListFoundException.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/PlayList.class b/out/production/spoteezer/musichub/business/PlayList.class deleted file mode 100644 index ea68021..0000000 Binary files a/out/production/spoteezer/musichub/business/PlayList.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/Song.class b/out/production/spoteezer/musichub/business/Song.class deleted file mode 100644 index c3bdeb7..0000000 Binary files a/out/production/spoteezer/musichub/business/Song.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/SortByAuthor.class b/out/production/spoteezer/musichub/business/SortByAuthor.class deleted file mode 100644 index fb8ee7a..0000000 Binary files a/out/production/spoteezer/musichub/business/SortByAuthor.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/SortByDate.class b/out/production/spoteezer/musichub/business/SortByDate.class deleted file mode 100644 index c52e870..0000000 Binary files a/out/production/spoteezer/musichub/business/SortByDate.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/business/SortByGenre.class b/out/production/spoteezer/musichub/business/SortByGenre.class deleted file mode 100644 index 2016012..0000000 Binary files a/out/production/spoteezer/musichub/business/SortByGenre.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/main/Main.class b/out/production/spoteezer/musichub/main/Main.class deleted file mode 100644 index 419fb9c..0000000 Binary files a/out/production/spoteezer/musichub/main/Main.class and /dev/null differ diff --git a/out/production/spoteezer/musichub/util/XMLHandler.class b/out/production/spoteezer/musichub/util/XMLHandler.class deleted file mode 100644 index 4ab0064..0000000 Binary files a/out/production/spoteezer/musichub/util/XMLHandler.class and /dev/null differ -- cgit v1.2.3 From 4ff84568723b1663b9e20f95535d3213f8d3e92e Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 13:44:18 +0200 Subject: Modified compile.bat and run.bat to use maven. --- compile.bat | 2 +- run.bat | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compile.bat b/compile.bat index 5bc7896..ddae61c 100644 --- a/compile.bat +++ b/compile.bat @@ -1 +1 @@ -javac -d bin src\musichub\business\*.java src\musichub\util\*.java src\musichub\main\*.java -encoding UTF-8 \ No newline at end of file +mvn compile \ No newline at end of file diff --git a/run.bat b/run.bat index c43dd82..4e901e9 100644 --- a/run.bat +++ b/run.bat @@ -1 +1 @@ -java -classpath bin musichub.main.Main \ No newline at end of file +java -jar target/spoteezer-0.1.0.jar \ No newline at end of file -- cgit v1.2.3 From a57fd29902578adf7238d71cf9bbd55408584557 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 14:02:34 +0200 Subject: Applying the latest package architecture. --- .../java/musichub/business/PathValidation.java | 28 +++++++++++++++++++++ src/main/java/musichub/main/Main.java | 14 ++++++++--- .../java/musichub/business/PathValidationTest.java | 8 ++++++ .../classes/musichub/business/AudioElement.class | Bin 5392 -> 5422 bytes target/classes/musichub/business/MusicHub.class | Bin 11543 -> 11543 bytes .../classes/musichub/business/SortByAuthor.class | Bin 901 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 854 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 858 -> 858 bytes target/classes/musichub/main/Main.class | Bin 9840 -> 10064 bytes 9 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 src/main/java/musichub/business/PathValidation.java create mode 100644 src/test/java/musichub/business/PathValidationTest.java diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/business/PathValidation.java new file mode 100644 index 0000000..97f8759 --- /dev/null +++ b/src/main/java/musichub/business/PathValidation.java @@ -0,0 +1,28 @@ +package musichub.business; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +/** + * Class offering a path validation method. + * + * @author Aimeric ADJUTOR + * @version 1.0 + */ + +public class PathValidation { + + /** + * Methode that checks the validity of a given path + * + * @param inputPath the path given by the user + * @return a boolean + */ + + public static boolean isPathValid(String inputPath) { + Path path = Paths.get(inputPath); + return Files.exists(path); + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index 2876734..e2e4731 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -2,13 +2,14 @@ package musichub.main; import musichub.business.*; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Scanner; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.UnsupportedAudioFileException; +import static musichub.business.PathValidation.isPathValid; public class Main { public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { @@ -47,7 +48,7 @@ public class Main { albumTitle = scan.nextLine(); try { List songs = theHub.getAlbumSongsSortedByGenre(albumTitle); - System.out.println(songs);; + System.out.println(songs); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } @@ -88,8 +89,15 @@ public class Main { String artist = scan.nextLine(); System.out.println("Song length in seconds: "); int length = Integer.parseInt(scan.nextLine()); + System.out.println("Song content: "); String content = scan.nextLine(); + if (!isPathValid(content)) { + System.out.println("The music file was not found with the path you've provided.\nType h for available commands"); + choice = scan.nextLine(); + break; + } + Song s = new Song(title, artist, length, content, genre); theHub.addElement(s); System.out.println("New element list: "); diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/business/PathValidationTest.java new file mode 100644 index 0000000..2b24d7a --- /dev/null +++ b/src/test/java/musichub/business/PathValidationTest.java @@ -0,0 +1,8 @@ +package musichub.business; + + +public class PathValidationTest { + void testIsPathValid() { + //Not implemented yet + } +} \ No newline at end of file diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class index 3579513..bb0f170 100644 Binary files a/target/classes/musichub/business/AudioElement.class and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class index 8b8b280..9554eeb 100644 Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class index ac4474a..e366c32 100644 Binary files a/target/classes/musichub/business/SortByAuthor.class and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class index 6892059..9d330cb 100644 Binary files a/target/classes/musichub/business/SortByDate.class and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class index 7cabb3e..512232f 100644 Binary files a/target/classes/musichub/business/SortByGenre.class and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index 1e19601..d9ad38a 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ -- cgit v1.2.3 From e9ee951e570c441151385d1ccd8c4230abf704ca Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 14:32:12 +0200 Subject: Updated javadoc, added jacoco and the necessary JUnit for this feature. --- .../java/musichub/business/PathValidation.java | 15 +- .../java/musichub/business/PathValidationTest.java | 22 +- .../classes/musichub/business/PathValidation.class | Bin 0 -> 865 bytes target/classes/musichub/main/Main.class | Bin 10064 -> 10064 bytes target/jacoco.exec | Bin 0 -> 80650 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 39 +- .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 1 + .../default-testCompile/createdFiles.lst | 1 + .../testCompile/default-testCompile/inputFiles.lst | 1 + target/original-spoteezer-0.1.0.jar | Bin 31130 -> 31900 bytes target/site/apidocs/allclasses-index.html | 14 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 14 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/member-search-index.js | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 2 +- .../apidocs/musichub/business/AudioElement.html | 2 +- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 2 +- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../apidocs/musichub/business/PathValidation.html | 189 +++ .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 2 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 2 +- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 2 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../business/class-use/PathValidation.html | 65 + .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 12 +- .../apidocs/musichub/business/package-tree.html | 3 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 2 +- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 3 +- target/site/apidocs/serialized-form.html | 2 +- target/site/apidocs/type-search-index.js | 2 +- target/site/jacoco/index.html | 1 + target/site/jacoco/jacoco-resources/branchfc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/branchnc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/branchpc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/bundle.gif | Bin 0 -> 709 bytes target/site/jacoco/jacoco-resources/class.gif | Bin 0 -> 586 bytes target/site/jacoco/jacoco-resources/down.gif | Bin 0 -> 67 bytes target/site/jacoco/jacoco-resources/greenbar.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/group.gif | Bin 0 -> 351 bytes target/site/jacoco/jacoco-resources/method.gif | Bin 0 -> 193 bytes target/site/jacoco/jacoco-resources/package.gif | Bin 0 -> 227 bytes target/site/jacoco/jacoco-resources/prettify.css | 13 + target/site/jacoco/jacoco-resources/prettify.js | 1510 ++++++++++++++++++++ target/site/jacoco/jacoco-resources/redbar.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/report.css | 243 ++++ target/site/jacoco/jacoco-resources/report.gif | Bin 0 -> 363 bytes target/site/jacoco/jacoco-resources/session.gif | Bin 0 -> 213 bytes target/site/jacoco/jacoco-resources/sort.gif | Bin 0 -> 58 bytes target/site/jacoco/jacoco-resources/sort.js | 148 ++ target/site/jacoco/jacoco-resources/source.gif | Bin 0 -> 354 bytes target/site/jacoco/jacoco-resources/up.gif | Bin 0 -> 67 bytes target/site/jacoco/jacoco-sessions.html | 1 + target/site/jacoco/jacoco.csv | 19 + target/site/jacoco/jacoco.xml | 1 + target/site/jacoco/musichub.business/Album.html | 1 + .../site/jacoco/musichub.business/Album.java.html | 146 ++ .../site/jacoco/musichub.business/AudioBook.html | 1 + .../jacoco/musichub.business/AudioBook.java.html | 79 + .../jacoco/musichub.business/AudioElement.html | 1 + .../musichub.business/AudioElement.java.html | 133 ++ target/site/jacoco/musichub.business/Category.html | 1 + .../jacoco/musichub.business/Category.java.html | 15 + target/site/jacoco/musichub.business/Genre.html | 1 + .../site/jacoco/musichub.business/Genre.java.html | 15 + target/site/jacoco/musichub.business/Language.html | 1 + .../jacoco/musichub.business/Language.java.html | 15 + target/site/jacoco/musichub.business/MusicHub.html | 1 + .../jacoco/musichub.business/MusicHub.java.html | 343 +++++ .../musichub.business/NoAlbumFoundException.html | 1 + .../NoAlbumFoundException.java.html | 9 + .../musichub.business/NoElementFoundException.html | 1 + .../NoElementFoundException.java.html | 9 + .../NoPlayListFoundException.html | 1 + .../NoPlayListFoundException.java.html | 9 + .../jacoco/musichub.business/PathValidation.html | 1 + .../musichub.business/PathValidation.java.html | 39 + target/site/jacoco/musichub.business/PlayList.html | 1 + .../jacoco/musichub.business/PlayList.java.html | 101 ++ target/site/jacoco/musichub.business/Song.html | 1 + .../site/jacoco/musichub.business/Song.java.html | 59 + .../jacoco/musichub.business/SortByAuthor.html | 1 + .../site/jacoco/musichub.business/SortByDate.html | 1 + .../site/jacoco/musichub.business/SortByGenre.html | 1 + target/site/jacoco/musichub.business/index.html | 1 + .../jacoco/musichub.business/index.source.html | 1 + target/site/jacoco/musichub.main/Main.html | 1 + target/site/jacoco/musichub.main/Main.java.html | 266 ++++ target/site/jacoco/musichub.main/index.html | 1 + target/site/jacoco/musichub.main/index.source.html | 1 + target/site/jacoco/musichub.util/XMLHandler.html | 1 + .../site/jacoco/musichub.util/XMLHandler.java.html | 75 + target/site/jacoco/musichub.util/index.html | 1 + target/site/jacoco/musichub.util/index.source.html | 1 + target/spoteezer-0.1.0.jar | Bin 367000 -> 367786 bytes .../TEST-musichub.business.PathValidationTest.xml | 60 + .../musichub.business.PathValidationTest.txt | 4 + .../musichub/business/PathValidationTest.class | Bin 0 -> 1190 bytes 128 files changed, 3725 insertions(+), 78 deletions(-) create mode 100644 target/classes/musichub/business/PathValidation.class create mode 100644 target/jacoco.exec create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/site/apidocs/musichub/business/PathValidation.html create mode 100644 target/site/apidocs/musichub/business/class-use/PathValidation.html create mode 100644 target/site/jacoco/index.html create mode 100644 target/site/jacoco/jacoco-resources/branchfc.gif create mode 100644 target/site/jacoco/jacoco-resources/branchnc.gif create mode 100644 target/site/jacoco/jacoco-resources/branchpc.gif create mode 100644 target/site/jacoco/jacoco-resources/bundle.gif create mode 100644 target/site/jacoco/jacoco-resources/class.gif create mode 100644 target/site/jacoco/jacoco-resources/down.gif create mode 100644 target/site/jacoco/jacoco-resources/greenbar.gif create mode 100644 target/site/jacoco/jacoco-resources/group.gif create mode 100644 target/site/jacoco/jacoco-resources/method.gif create mode 100644 target/site/jacoco/jacoco-resources/package.gif create mode 100644 target/site/jacoco/jacoco-resources/prettify.css create mode 100644 target/site/jacoco/jacoco-resources/prettify.js create mode 100644 target/site/jacoco/jacoco-resources/redbar.gif create mode 100644 target/site/jacoco/jacoco-resources/report.css create mode 100644 target/site/jacoco/jacoco-resources/report.gif create mode 100644 target/site/jacoco/jacoco-resources/session.gif create mode 100644 target/site/jacoco/jacoco-resources/sort.gif create mode 100644 target/site/jacoco/jacoco-resources/sort.js create mode 100644 target/site/jacoco/jacoco-resources/source.gif create mode 100644 target/site/jacoco/jacoco-resources/up.gif create mode 100644 target/site/jacoco/jacoco-sessions.html create mode 100644 target/site/jacoco/jacoco.csv create mode 100644 target/site/jacoco/jacoco.xml create mode 100644 target/site/jacoco/musichub.business/Album.html create mode 100644 target/site/jacoco/musichub.business/Album.java.html create mode 100644 target/site/jacoco/musichub.business/AudioBook.html create mode 100644 target/site/jacoco/musichub.business/AudioBook.java.html create mode 100644 target/site/jacoco/musichub.business/AudioElement.html create mode 100644 target/site/jacoco/musichub.business/AudioElement.java.html create mode 100644 target/site/jacoco/musichub.business/Category.html create mode 100644 target/site/jacoco/musichub.business/Category.java.html create mode 100644 target/site/jacoco/musichub.business/Genre.html create mode 100644 target/site/jacoco/musichub.business/Genre.java.html create mode 100644 target/site/jacoco/musichub.business/Language.html create mode 100644 target/site/jacoco/musichub.business/Language.java.html create mode 100644 target/site/jacoco/musichub.business/MusicHub.html create mode 100644 target/site/jacoco/musichub.business/MusicHub.java.html create mode 100644 target/site/jacoco/musichub.business/NoAlbumFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoAlbumFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/NoElementFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoElementFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/NoPlayListFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoPlayListFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/PathValidation.html create mode 100644 target/site/jacoco/musichub.business/PathValidation.java.html create mode 100644 target/site/jacoco/musichub.business/PlayList.html create mode 100644 target/site/jacoco/musichub.business/PlayList.java.html create mode 100644 target/site/jacoco/musichub.business/Song.html create mode 100644 target/site/jacoco/musichub.business/Song.java.html create mode 100644 target/site/jacoco/musichub.business/SortByAuthor.html create mode 100644 target/site/jacoco/musichub.business/SortByDate.html create mode 100644 target/site/jacoco/musichub.business/SortByGenre.html create mode 100644 target/site/jacoco/musichub.business/index.html create mode 100644 target/site/jacoco/musichub.business/index.source.html create mode 100644 target/site/jacoco/musichub.main/Main.html create mode 100644 target/site/jacoco/musichub.main/Main.java.html create mode 100644 target/site/jacoco/musichub.main/index.html create mode 100644 target/site/jacoco/musichub.main/index.source.html create mode 100644 target/site/jacoco/musichub.util/XMLHandler.html create mode 100644 target/site/jacoco/musichub.util/XMLHandler.java.html create mode 100644 target/site/jacoco/musichub.util/index.html create mode 100644 target/site/jacoco/musichub.util/index.source.html create mode 100644 target/surefire-reports/TEST-musichub.business.PathValidationTest.xml create mode 100644 target/surefire-reports/musichub.business.PathValidationTest.txt create mode 100644 target/test-classes/musichub/business/PathValidationTest.class diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/business/PathValidation.java index 97f8759..b0281ba 100644 --- a/src/main/java/musichub/business/PathValidation.java +++ b/src/main/java/musichub/business/PathValidation.java @@ -11,10 +11,21 @@ import java.nio.file.Paths; * @version 1.0 */ -public class PathValidation { +public final class PathValidation { /** - * Methode that checks the validity of a given path + * Method that just throws an AssertionError if the class is called + * + * @throws AssertionError you can't instantiate this class + * @author Aimeric ADJUTOR + */ + + public PathValidation() { + throw new AssertionError("You just can't instantiate this class."); + } + + /** + * Method that checks the validity of a given path * * @param inputPath the path given by the user * @return a boolean diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/business/PathValidationTest.java index 2b24d7a..fffbdde 100644 --- a/src/test/java/musichub/business/PathValidationTest.java +++ b/src/test/java/musichub/business/PathValidationTest.java @@ -1,8 +1,26 @@ package musichub.business; +import org.junit.jupiter.api.Test; + +import static musichub.business.PathValidation.isPathValid; +import static org.junit.jupiter.api.Assertions.*; + public class PathValidationTest { + @Test void testIsPathValid() { - //Not implemented yet + assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path + assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path + assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension + } + + @Test + void testPathValidationClass() { + try { + PathValidation pathValidationClass = new PathValidation(); + } catch (Error ex) { + assertTrue(ex instanceof AssertionError); + assertEquals("You just can't instantiate this class.", ex.getMessage()); + } } -} \ No newline at end of file +} diff --git a/target/classes/musichub/business/PathValidation.class b/target/classes/musichub/business/PathValidation.class new file mode 100644 index 0000000..5e3ac15 Binary files /dev/null and b/target/classes/musichub/business/PathValidation.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index d9ad38a..f3d2052 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ diff --git a/target/jacoco.exec b/target/jacoco.exec new file mode 100644 index 0000000..a11f908 Binary files /dev/null and b/target/jacoco.exec differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 1b408a6..1d6eb92 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 13:25:26 CEST 2021 +#Sat Jun 26 14:29:09 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index c701b12..211d1c0 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -34,6 +34,7 @@ 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PathValidation.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java' @@ -43,22 +44,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624705682872 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624706731862 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624706731864 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624706731767 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624706731890 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624706731885 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624706731838 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624706731909 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624706731868 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624706731865 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624706731887 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624706731835 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624706731866 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624706731894 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624706731895 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624706731788 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624706731892 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624706731869 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624706731867 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624710556861 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624710556864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624710556758 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624710556888 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624710556884 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624710556844 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624710556910 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624710556868 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624710556865 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624710556885 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624710556841 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624710556866 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624710556892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624710556895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624710556785 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624710556891 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624710556869 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624710556867 \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index a388223..26c13ed 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,4 +1,5 @@ musichub\util\XMLHandler.class +musichub\business\PathValidation.class musichub\business\NoElementFoundException.class musichub\business\Language.class musichub\business\PlayList.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 5354743..93f6593 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -7,6 +7,7 @@ C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PathValidation.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..649a939 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1 @@ +musichub\business\PathValidationTest.class diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index e69de29..9b5d3f0 100644 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PathValidationTest.java diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index b2c45cf..fbeb8a5 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index 83bf57c..767b8ab 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) @@ -86,12 +86,16 @@ loadScripts(document, 'script');
     
     
    - -
     
    - + +
    +
    Class offering a path validation method.
    +
    +
     
    - +
     
    + +
     
    diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index a9e8eb8..daffbfc 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index a2e0731..084eeb0 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index cd292d0..bb26bd1 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) @@ -202,6 +202,10 @@ loadScripts(document, 'script');

    I

    +
    isPathValid(String) - Static method in class musichub.business.PathValidation
    +
    +
    Method that checks the validity of a given path
    +
    ITALIAN - Enum constant in enum class musichub.business.Language
     
    @@ -259,6 +263,14 @@ loadScripts(document, 'script');
    parseXMLFile(String) - Method in class musichub.util.XMLHandler
     
    +
    PathValidation - Class in musichub.business
    +
    +
    Class offering a path validation method.
    +
    +
    PathValidation() - Constructor for class musichub.business.PathValidation
    +
    +
    Method that just throws an AssertionError if the class is called
    +
    PlayList - Class in musichub.business
     
    PlayList(String) - Constructor for class musichub.business.PlayList
    diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 87cf0ec..a865d2c 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js index 784449a..7c431d3 100644 --- a/target/site/apidocs/member-search-index.js +++ b/target/site/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 8d24dd6..824d2f6 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index 0d8d9b5..f171946 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 493874c..f2ecb62 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 7748822..6fa6ed1 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index f943c15..404433a 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index 3690e27..7c71eef 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 9ef7adf..a96d88e 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index 0809462..51defb8 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index 81e9dce..b935b6c 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 6a2c7a3..56d2aaf 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PathValidation.html b/target/site/apidocs/musichub/business/PathValidation.html new file mode 100644 index 0000000..9a7945c --- /dev/null +++ b/target/site/apidocs/musichub/business/PathValidation.html @@ -0,0 +1,189 @@ + + + + + +PathValidation (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class PathValidation

    +
    +
    java.lang.Object +
    musichub.business.PathValidation
    +
    +
    +
    +
    public final class PathValidation +extends Object
    +
    Class offering a path validation method.
    +
    +
    Version:
    +
    1.0
    +
    Author:
    +
    Aimeric ADJUTOR
    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        PathValidation

        +
        public PathValidation()
        +
        Method that just throws an AssertionError if the class is called
        +
        +
        Throws:
        +
        AssertionError - you can't instantiate this class
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        isPathValid

        +
        public static boolean isPathValid(String inputPath)
        +
        Method that checks the validity of a given path
        +
        +
        Parameters:
        +
        inputPath - the path given by the user
        +
        Returns:
        +
        a boolean
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + +
    +
    +
    + + diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index c294b58..533a2ad 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index 57e0fa5..aa13772 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index eeb9cfe..a799c69 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index 07abecb..6054d2d 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index a0c35cf..ab20cf8 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index f916411..d0b7007 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index a952ca6..94c178d 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index 6205bc4..6df04ff 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 8f239ba..2f00178 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index d948beb..c11e6be 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index ae74b4d..70bbffa 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index aab3251..97c5c34 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PathValidation.html b/target/site/apidocs/musichub/business/class-use/PathValidation.html new file mode 100644 index 0000000..b8a4f5a --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/PathValidation.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.PathValidation (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Uses of Class
    musichub.business.PathValidation

    +
    +No usage of musichub.business.PathValidation
    +
    +
    + +
    +
    +
    + + diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index 4fdd1e0..7d039a5 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 92d62d4..853c506 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index b5af4ec..57c22af 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) @@ -71,10 +71,14 @@ loadScripts(document, 'script');
     
     
    - -
     
    - + +
    +
    Class offering a path validation method.
    +
    +
     
    + +
     
  • diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index f640a6b..31cbe13 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) @@ -71,6 +71,7 @@ loadScripts(document, 'script');
  • musichub.business.MusicHub
  • +
  • musichub.business.PathValidation
  • musichub.business.PlayList
  • java.lang.Throwable (implements java.io.Serializable)
      diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index 7ed1edb..c75e960 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index f8bfd28..d060888 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 6d45c1a..2ea6da4 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 350f1ec..87c57b3 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 8322e63..d6354f0 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index 698c432..68e7ada 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index 942ecac..52734c9 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index f3cd47c..04b02a0 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index 12cbd12..72ff644 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index b987ff3..7817d93 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index cf30494..afe8c6d 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index 0415e8e..1961838 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index b53ddc6..69d606a 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) @@ -74,6 +74,7 @@ loadScripts(document, 'script');
    • musichub.main.Main
    • musichub.business.MusicHub
    • +
    • musichub.business.PathValidation
    • musichub.business.PlayList
    • java.lang.Throwable (implements java.io.Serializable)
        diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index de7162a..011c84f 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js index 2401962..be00fa7 100644 --- a/target/site/apidocs/type-search-index.js +++ b/target/site/apidocs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html new file mode 100644 index 0000000..f0faf92 --- /dev/null +++ b/target/site/jacoco/index.html @@ -0,0 +1 @@ +spoteezer

        spoteezer

        ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
        Total2 723 of 2 7400 %209 of 2090 %20520772372788901718
        musichub.business2 0630 %1690 %17217449950381831516
        musichub.main5880 %400 %29291991993311
        musichub.util720 %n/a4425254411
        \ No newline at end of file diff --git a/target/site/jacoco/jacoco-resources/branchfc.gif b/target/site/jacoco/jacoco-resources/branchfc.gif new file mode 100644 index 0000000..989b46d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchfc.gif differ diff --git a/target/site/jacoco/jacoco-resources/branchnc.gif b/target/site/jacoco/jacoco-resources/branchnc.gif new file mode 100644 index 0000000..1933e07 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchnc.gif differ diff --git a/target/site/jacoco/jacoco-resources/branchpc.gif b/target/site/jacoco/jacoco-resources/branchpc.gif new file mode 100644 index 0000000..cbf711b Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchpc.gif differ diff --git a/target/site/jacoco/jacoco-resources/bundle.gif b/target/site/jacoco/jacoco-resources/bundle.gif new file mode 100644 index 0000000..fca9c53 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/bundle.gif differ diff --git a/target/site/jacoco/jacoco-resources/class.gif b/target/site/jacoco/jacoco-resources/class.gif new file mode 100644 index 0000000..eb348fb Binary files /dev/null and b/target/site/jacoco/jacoco-resources/class.gif differ diff --git a/target/site/jacoco/jacoco-resources/down.gif b/target/site/jacoco/jacoco-resources/down.gif new file mode 100644 index 0000000..440a14d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/down.gif differ diff --git a/target/site/jacoco/jacoco-resources/greenbar.gif b/target/site/jacoco/jacoco-resources/greenbar.gif new file mode 100644 index 0000000..0ba6567 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/greenbar.gif differ diff --git a/target/site/jacoco/jacoco-resources/group.gif b/target/site/jacoco/jacoco-resources/group.gif new file mode 100644 index 0000000..a4ea580 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/group.gif differ diff --git a/target/site/jacoco/jacoco-resources/method.gif b/target/site/jacoco/jacoco-resources/method.gif new file mode 100644 index 0000000..7d24707 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/method.gif differ diff --git a/target/site/jacoco/jacoco-resources/package.gif b/target/site/jacoco/jacoco-resources/package.gif new file mode 100644 index 0000000..131c28d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/package.gif differ diff --git a/target/site/jacoco/jacoco-resources/prettify.css b/target/site/jacoco/jacoco-resources/prettify.css new file mode 100644 index 0000000..be5166e --- /dev/null +++ b/target/site/jacoco/jacoco-resources/prettify.css @@ -0,0 +1,13 @@ +/* Pretty printing styles. Used with prettify.js. */ + +.str { color: #2A00FF; } +.kwd { color: #7F0055; font-weight:bold; } +.com { color: #3F5FBF; } +.typ { color: #606; } +.lit { color: #066; } +.pun { color: #660; } +.pln { color: #000; } +.tag { color: #008; } +.atn { color: #606; } +.atv { color: #080; } +.dec { color: #606; } diff --git a/target/site/jacoco/jacoco-resources/prettify.js b/target/site/jacoco/jacoco-resources/prettify.js new file mode 100644 index 0000000..b2766fe --- /dev/null +++ b/target/site/jacoco/jacoco-resources/prettify.js @@ -0,0 +1,1510 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

        + * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

        + * Usage:

          + *
        1. include this source file in an html page via + * {@code } + *
        2. define style rules. See the example page for examples. + *
        3. mark the {@code
          } and {@code } tags in your source with
          + *    {@code class=prettyprint.}
          + *    You can also use the (html deprecated) {@code } tag, but the pretty
          + *    printer needs to do more substantial DOM manipulations to support that, so
          + *    some css styles may not be preserved.
          + * </ol>
          + * That's it.  I wanted to keep the API as simple as possible, so there's no
          + * need to specify which language the code is in, but if you wish, you can add
          + * another class to the {@code <pre>} or {@code <code>} element to specify the
          + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
          + * starts with "lang-" followed by a file extension, specifies the file type.
          + * See the "lang-*.js" files in this directory for code that implements
          + * per-language file handlers.
          + * <p>
          + * Change log:<br>
          + * cbeust, 2006/08/22
          + * <blockquote>
          + *   Java annotations (start with "@") are now captured as literals ("lit")
          + * </blockquote>
          + * @requires console
          + */
          +
          +// JSLint declarations
          +/*global console, document, navigator, setTimeout, window */
          +
          +/**
          + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
          + * UI events.
          + * If set to {@code false}, {@code prettyPrint()} is synchronous.
          + */
          +window['PR_SHOULD_USE_CONTINUATION'] = true;
          +
          +/** the number of characters between tab columns */
          +window['PR_TAB_WIDTH'] = 8;
          +
          +/** Walks the DOM returning a properly escaped version of innerHTML.
          +  * @param {Node} node
          +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
          +  */
          +window['PR_normalizedHtml']
          +
          +/** Contains functions for creating and registering new language handlers.
          +  * @type {Object}
          +  */
          +  = window['PR']
          +
          +/** Pretty print a chunk of code.
          +  *
          +  * @param {string} sourceCodeHtml code as html
          +  * @return {string} code as html, but prettier
          +  */
          +  = window['prettyPrintOne']
          +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
          +  * {@code class=prettyprint} and prettify them.
          +  * @param {Function?} opt_whenDone if specified, called when the last entry
          +  *     has been finished.
          +  */
          +  = window['prettyPrint'] = void 0;
          +
          +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
          +window['_pr_isIE6'] = function () {
          +  var ieVersion = navigator && navigator.userAgent &&
          +      navigator.userAgent.match(/\bMSIE ([678])\./);
          +  ieVersion = ieVersion ? +ieVersion[1] : false;
          +  window['_pr_isIE6'] = function () { return ieVersion; };
          +  return ieVersion;
          +};
          +
          +
          +(function () {
          +  // Keyword lists for various languages.
          +  var FLOW_CONTROL_KEYWORDS =
          +      "break continue do else for if return while ";
          +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
          +      "double enum extern float goto int long register short signed sizeof " +
          +      "static struct switch typedef union unsigned void volatile ";
          +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
          +      "new operator private protected public this throw true try typeof ";
          +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
          +      "concept concept_map const_cast constexpr decltype " +
          +      "dynamic_cast explicit export friend inline late_check " +
          +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
          +      "template typeid typename using virtual wchar_t where ";
          +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
          +      "abstract boolean byte extends final finally implements import " +
          +      "instanceof null native package strictfp super synchronized throws " +
          +      "transient ";
          +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
          +      "as base by checked decimal delegate descending event " +
          +      "fixed foreach from group implicit in interface internal into is lock " +
          +      "object out override orderby params partial readonly ref sbyte sealed " +
          +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
          +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
          +      "debugger eval export function get null set undefined var with " +
          +      "Infinity NaN ";
          +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
          +      "goto if import last local my next no our print package redo require " +
          +      "sub undef unless until use wantarray while BEGIN END ";
          +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
          +      "elif except exec finally from global import in is lambda " +
          +      "nonlocal not or pass print raise try with yield " +
          +      "False True None ";
          +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
          +      " defined elsif end ensure false in module next nil not or redo rescue " +
          +      "retry self super then true undef unless until when yield BEGIN END ";
          +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
          +      "function in local set then until ";
          +  var ALL_KEYWORDS = (
          +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
          +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
          +
          +  // token style names.  correspond to css classes
          +  /** token style for a string literal */
          +  var PR_STRING = 'str';
          +  /** token style for a keyword */
          +  var PR_KEYWORD = 'kwd';
          +  /** token style for a comment */
          +  var PR_COMMENT = 'com';
          +  /** token style for a type */
          +  var PR_TYPE = 'typ';
          +  /** token style for a literal value.  e.g. 1, null, true. */
          +  var PR_LITERAL = 'lit';
          +  /** token style for a punctuation string. */
          +  var PR_PUNCTUATION = 'pun';
          +  /** token style for a punctuation string. */
          +  var PR_PLAIN = 'pln';
          +
          +  /** token style for an sgml tag. */
          +  var PR_TAG = 'tag';
          +  /** token style for a markup declaration such as a DOCTYPE. */
          +  var PR_DECLARATION = 'dec';
          +  /** token style for embedded source. */
          +  var PR_SOURCE = 'src';
          +  /** token style for an sgml attribute name. */
          +  var PR_ATTRIB_NAME = 'atn';
          +  /** token style for an sgml attribute value. */
          +  var PR_ATTRIB_VALUE = 'atv';
          +
          +  /**
          +   * A class that indicates a section of markup that is not code, e.g. to allow
          +   * embedding of line numbers within code listings.
          +   */
          +  var PR_NOCODE = 'nocode';
          +
          +  /** A set of tokens that can precede a regular expression literal in
          +    * javascript.
          +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
          +    * list, but I've removed ones that might be problematic when seen in
          +    * languages that don't support regular expression literals.
          +    *
          +    * <p>Specifically, I've removed any keywords that can't precede a regexp
          +    * literal in a syntactically legal javascript program, and I've removed the
          +    * "in" keyword since it's not a keyword in many languages, and might be used
          +    * as a count of inches.
          +    *
          +    * <p>The link a above does not accurately describe EcmaScript rules since
          +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
          +    * very well in practice.
          +    *
          +    * @private
          +    */
          +  var REGEXP_PRECEDER_PATTERN = function () {
          +      var preceders = [
          +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
          +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
          +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
          +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
          +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
          +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
          +          "||=", "~" /* handles =~ and !~ */,
          +          "break", "case", "continue", "delete",
          +          "do", "else", "finally", "instanceof",
          +          "return", "throw", "try", "typeof"
          +          ];
          +      var pattern = '(?:^^|[+-]';
          +      for (var i = 0; i < preceders.length; ++i) {
          +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
          +      }
          +      pattern += ')\\s*';  // matches at end, and matches empty string
          +      return pattern;
          +      // CAVEAT: this does not properly handle the case where a regular
          +      // expression immediately follows another since a regular expression may
          +      // have flags for case-sensitivity and the like.  Having regexp tokens
          +      // adjacent is not valid in any language I'm aware of, so I'm punting.
          +      // TODO: maybe style special characters inside a regexp as punctuation.
          +    }();
          +
          +  // Define regexps here so that the interpreter doesn't have to create an
          +  // object each time the function containing them is called.
          +  // The language spec requires a new object created even if you don't access
          +  // the $1 members.
          +  var pr_amp = /&/g;
          +  var pr_lt = /</g;
          +  var pr_gt = />/g;
          +  var pr_quot = /\"/g;
          +  /** like textToHtml but escapes double quotes to be attribute safe. */
          +  function attribToHtml(str) {
          +    return str.replace(pr_amp, '&amp;')
          +        .replace(pr_lt, '&lt;')
          +        .replace(pr_gt, '&gt;')
          +        .replace(pr_quot, '&quot;');
          +  }
          +
          +  /** escapest html special characters to html. */
          +  function textToHtml(str) {
          +    return str.replace(pr_amp, '&amp;')
          +        .replace(pr_lt, '&lt;')
          +        .replace(pr_gt, '&gt;');
          +  }
          +
          +
          +  var pr_ltEnt = /&lt;/g;
          +  var pr_gtEnt = /&gt;/g;
          +  var pr_aposEnt = /&apos;/g;
          +  var pr_quotEnt = /&quot;/g;
          +  var pr_ampEnt = /&amp;/g;
          +  var pr_nbspEnt = /&nbsp;/g;
          +  /** unescapes html to plain text. */
          +  function htmlToText(html) {
          +    var pos = html.indexOf('&');
          +    if (pos < 0) { return html; }
          +    // Handle numeric entities specially.  We can't use functional substitution
          +    // since that doesn't work in older versions of Safari.
          +    // These should be rare since most browsers convert them to normal chars.
          +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
          +      var end = html.indexOf(';', pos);
          +      if (end >= 0) {
          +        var num = html.substring(pos + 3, end);
          +        var radix = 10;
          +        if (num && num.charAt(0) === 'x') {
          +          num = num.substring(1);
          +          radix = 16;
          +        }
          +        var codePoint = parseInt(num, radix);
          +        if (!isNaN(codePoint)) {
          +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
          +                  html.substring(end + 1));
          +        }
          +      }
          +    }
          +
          +    return html.replace(pr_ltEnt, '<')
          +        .replace(pr_gtEnt, '>')
          +        .replace(pr_aposEnt, "'")
          +        .replace(pr_quotEnt, '"')
          +        .replace(pr_nbspEnt, ' ')
          +        .replace(pr_ampEnt, '&');
          +  }
          +
          +  /** is the given node's innerHTML normally unescaped? */
          +  function isRawContent(node) {
          +    return 'XMP' === node.tagName;
          +  }
          +
          +  var newlineRe = /[\r\n]/g;
          +  /**
          +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
          +   */
          +  function isPreformatted(node, content) {
          +    // PRE means preformatted, and is a very common case, so don't create
          +    // unnecessary computed style objects.
          +    if ('PRE' === node.tagName) { return true; }
          +    if (!newlineRe.test(content)) { return true; }  // Don't care
          +    var whitespace = '';
          +    // For disconnected nodes, IE has no currentStyle.
          +    if (node.currentStyle) {
          +      whitespace = node.currentStyle.whiteSpace;
          +    } else if (window.getComputedStyle) {
          +      // Firefox makes a best guess if node is disconnected whereas Safari
          +      // returns the empty string.
          +      whitespace = window.getComputedStyle(node, null).whiteSpace;
          +    }
          +    return !whitespace || whitespace === 'pre';
          +  }
          +
          +  function normalizedHtml(node, out, opt_sortAttrs) {
          +    switch (node.nodeType) {
          +      case 1:  // an element
          +        var name = node.tagName.toLowerCase();
          +
          +        out.push('<', name);
          +        var attrs = node.attributes;
          +        var n = attrs.length;
          +        if (n) {
          +          if (opt_sortAttrs) {
          +            var sortedAttrs = [];
          +            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
          +            sortedAttrs.sort(function (a, b) {
          +                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
          +              });
          +            attrs = sortedAttrs;
          +          }
          +          for (var i = 0; i < n; ++i) {
          +            var attr = attrs[i];
          +            if (!attr.specified) { continue; }
          +            out.push(' ', attr.name.toLowerCase(),
          +                     '="', attribToHtml(attr.value), '"');
          +          }
          +        }
          +        out.push('>');
          +        for (var child = node.firstChild; child; child = child.nextSibling) {
          +          normalizedHtml(child, out, opt_sortAttrs);
          +        }
          +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
          +          out.push('<\/', name, '>');
          +        }
          +        break;
          +      case 3: case 4: // text
          +        out.push(textToHtml(node.nodeValue));
          +        break;
          +    }
          +  }
          +
          +  /**
          +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
          +   * matches the union o the sets o strings matched d by the input RegExp.
          +   * Since it matches globally, if the input strings have a start-of-input
          +   * anchor (/^.../), it is ignored for the purposes of unioning.
          +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
          +   * @return {RegExp} a global regex.
          +   */
          +  function combinePrefixPatterns(regexs) {
          +    var capturedGroupIndex = 0;
          +
          +    var needToFoldCase = false;
          +    var ignoreCase = false;
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.ignoreCase) {
          +        ignoreCase = true;
          +      } else if (/[a-z]/i.test(regex.source.replace(
          +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
          +        needToFoldCase = true;
          +        ignoreCase = false;
          +        break;
          +      }
          +    }
          +
          +    function decodeEscape(charsetPart) {
          +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
          +      switch (charsetPart.charAt(1)) {
          +        case 'b': return 8;
          +        case 't': return 9;
          +        case 'n': return 0xa;
          +        case 'v': return 0xb;
          +        case 'f': return 0xc;
          +        case 'r': return 0xd;
          +        case 'u': case 'x':
          +          return parseInt(charsetPart.substring(2), 16)
          +              || charsetPart.charCodeAt(1);
          +        case '0': case '1': case '2': case '3': case '4':
          +        case '5': case '6': case '7':
          +          return parseInt(charsetPart.substring(1), 8);
          +        default: return charsetPart.charCodeAt(1);
          +      }
          +    }
          +
          +    function encodeEscape(charCode) {
          +      if (charCode < 0x20) {
          +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
          +      }
          +      var ch = String.fromCharCode(charCode);
          +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
          +        ch = '\\' + ch;
          +      }
          +      return ch;
          +    }
          +
          +    function caseFoldCharset(charSet) {
          +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
          +          new RegExp(
          +              '\\\\u[0-9A-Fa-f]{4}'
          +              + '|\\\\x[0-9A-Fa-f]{2}'
          +              + '|\\\\[0-3][0-7]{0,2}'
          +              + '|\\\\[0-7]{1,2}'
          +              + '|\\\\[\\s\\S]'
          +              + '|-'
          +              + '|[^-\\\\]',
          +              'g'));
          +      var groups = [];
          +      var ranges = [];
          +      var inverse = charsetParts[0] === '^';
          +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
          +        var p = charsetParts[i];
          +        switch (p) {
          +          case '\\B': case '\\b':
          +          case '\\D': case '\\d':
          +          case '\\S': case '\\s':
          +          case '\\W': case '\\w':
          +            groups.push(p);
          +            continue;
          +        }
          +        var start = decodeEscape(p);
          +        var end;
          +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
          +          end = decodeEscape(charsetParts[i + 2]);
          +          i += 2;
          +        } else {
          +          end = start;
          +        }
          +        ranges.push([start, end]);
          +        // If the range might intersect letters, then expand it.
          +        if (!(end < 65 || start > 122)) {
          +          if (!(end < 65 || start > 90)) {
          +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
          +          }
          +          if (!(end < 97 || start > 122)) {
          +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
          +          }
          +        }
          +      }
          +
          +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
          +      // -> [[1, 12], [14, 14], [16, 17]]
          +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
          +      var consolidatedRanges = [];
          +      var lastRange = [NaN, NaN];
          +      for (var i = 0; i < ranges.length; ++i) {
          +        var range = ranges[i];
          +        if (range[0] <= lastRange[1] + 1) {
          +          lastRange[1] = Math.max(lastRange[1], range[1]);
          +        } else {
          +          consolidatedRanges.push(lastRange = range);
          +        }
          +      }
          +
          +      var out = ['['];
          +      if (inverse) { out.push('^'); }
          +      out.push.apply(out, groups);
          +      for (var i = 0; i < consolidatedRanges.length; ++i) {
          +        var range = consolidatedRanges[i];
          +        out.push(encodeEscape(range[0]));
          +        if (range[1] > range[0]) {
          +          if (range[1] + 1 > range[0]) { out.push('-'); }
          +          out.push(encodeEscape(range[1]));
          +        }
          +      }
          +      out.push(']');
          +      return out.join('');
          +    }
          +
          +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
          +      // Split into character sets, escape sequences, punctuation strings
          +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
          +      // include any of the above.
          +      var parts = regex.source.match(
          +          new RegExp(
          +              '(?:'
          +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
          +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
          +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
          +              + '|\\\\[0-9]+'  // a back-reference or octal escape
          +              + '|\\\\[^ux0-9]'  // other escape sequence
          +              + '|\\(\\?[:!=]'  // start of a non-capturing group
          +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
          +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
          +              + ')',
          +              'g'));
          +      var n = parts.length;
          +
          +      // Maps captured group numbers to the number they will occupy in
          +      // the output or to -1 if that has not been determined, or to
          +      // undefined if they need not be capturing in the output.
          +      var capturedGroups = [];
          +
          +      // Walk over and identify back references to build the capturedGroups
          +      // mapping.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          // groups are 1-indexed, so max group index is count of '('
          +          ++groupIndex;
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            capturedGroups[decimalValue] = -1;
          +          }
          +        }
          +      }
          +
          +      // Renumber groups and reduce capturing groups to non-capturing groups
          +      // where possible.
          +      for (var i = 1; i < capturedGroups.length; ++i) {
          +        if (-1 === capturedGroups[i]) {
          +          capturedGroups[i] = ++capturedGroupIndex;
          +        }
          +      }
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          ++groupIndex;
          +          if (capturedGroups[groupIndex] === undefined) {
          +            parts[i] = '(?:';
          +          }
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            parts[i] = '\\' + capturedGroups[groupIndex];
          +          }
          +        }
          +      }
          +
          +      // Remove any prefix anchors so that the output will match anywhere.
          +      // ^^ really does mean an anchored match though.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
          +      }
          +
          +      // Expand letters to groupts to handle mixing of case-sensitive and
          +      // case-insensitive patterns if necessary.
          +      if (regex.ignoreCase && needToFoldCase) {
          +        for (var i = 0; i < n; ++i) {
          +          var p = parts[i];
          +          var ch0 = p.charAt(0);
          +          if (p.length >= 2 && ch0 === '[') {
          +            parts[i] = caseFoldCharset(p);
          +          } else if (ch0 !== '\\') {
          +            // TODO: handle letters in numeric escapes.
          +            parts[i] = p.replace(
          +                /[a-zA-Z]/g,
          +                function (ch) {
          +                  var cc = ch.charCodeAt(0);
          +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
          +                });
          +          }
          +        }
          +      }
          +
          +      return parts.join('');
          +    }
          +
          +    var rewritten = [];
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
          +      rewritten.push(
          +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
          +    }
          +
          +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
          +  }
          +
          +  var PR_innerHtmlWorks = null;
          +  function getInnerHtml(node) {
          +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
          +    // an html description of well formed XML and the containing tag is a PRE
          +    // tag, so we detect that case and emulate innerHTML.
          +    if (null === PR_innerHtmlWorks) {
          +      var testNode = document.createElement('PRE');
          +      testNode.appendChild(
          +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
          +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
          +    }
          +
          +    if (PR_innerHtmlWorks) {
          +      var content = node.innerHTML;
          +      // XMP tags contain unescaped entities so require special handling.
          +      if (isRawContent(node)) {
          +        content = textToHtml(content);
          +      } else if (!isPreformatted(node, content)) {
          +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
          +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
          +      }
          +      return content;
          +    }
          +
          +    var out = [];
          +    for (var child = node.firstChild; child; child = child.nextSibling) {
          +      normalizedHtml(child, out);
          +    }
          +    return out.join('');
          +  }
          +
          +  /** returns a function that expand tabs to spaces.  This function can be fed
          +    * successive chunks of text, and will maintain its own internal state to
          +    * keep track of how tabs are expanded.
          +    * @return {function (string) : string} a function that takes
          +    *   plain text and return the text with tabs expanded.
          +    * @private
          +    */
          +  function makeTabExpander(tabWidth) {
          +    var SPACES = '                ';
          +    var charInLine = 0;
          +
          +    return function (plainText) {
          +      // walk over each character looking for tabs and newlines.
          +      // On tabs, expand them.  On newlines, reset charInLine.
          +      // Otherwise increment charInLine
          +      var out = null;
          +      var pos = 0;
          +      for (var i = 0, n = plainText.length; i < n; ++i) {
          +        var ch = plainText.charAt(i);
          +
          +        switch (ch) {
          +          case '\t':
          +            if (!out) { out = []; }
          +            out.push(plainText.substring(pos, i));
          +            // calculate how much space we need in front of this part
          +            // nSpaces is the amount of padding -- the number of spaces needed
          +            // to move us to the next column, where columns occur at factors of
          +            // tabWidth.
          +            var nSpaces = tabWidth - (charInLine % tabWidth);
          +            charInLine += nSpaces;
          +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
          +              out.push(SPACES.substring(0, nSpaces));
          +            }
          +            pos = i + 1;
          +            break;
          +          case '\n':
          +            charInLine = 0;
          +            break;
          +          default:
          +            ++charInLine;
          +        }
          +      }
          +      if (!out) { return plainText; }
          +      out.push(plainText.substring(pos));
          +      return out.join('');
          +    };
          +  }
          +
          +  var pr_chunkPattern = new RegExp(
          +      '[^<]+'  // A run of characters other than '<'
          +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
          +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
          +      // a probable tag that should not be highlighted
          +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
          +      + '|<',  // A '<' that does not begin a larger chunk
          +      'g');
          +  var pr_commentPrefix = /^<\!--/;
          +  var pr_cdataPrefix = /^<!\[CDATA\[/;
          +  var pr_brPrefix = /^<br\b/i;
          +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
          +
          +  /** split markup into chunks of html tags (style null) and
          +    * plain text (style {@link #PR_PLAIN}), converting tags which are
          +    * significant for tokenization (<br>) into their textual equivalent.
          +    *
          +    * @param {string} s html where whitespace is considered significant.
          +    * @return {Object} source code and extracted tags.
          +    * @private
          +    */
          +  function extractTags(s) {
          +    // since the pattern has the 'g' modifier and defines no capturing groups,
          +    // this will return a list of all chunks which we then classify and wrap as
          +    // PR_Tokens
          +    var matches = s.match(pr_chunkPattern);
          +    var sourceBuf = [];
          +    var sourceBufLen = 0;
          +    var extractedTags = [];
          +    if (matches) {
          +      for (var i = 0, n = matches.length; i < n; ++i) {
          +        var match = matches[i];
          +        if (match.length > 1 && match.charAt(0) === '<') {
          +          if (pr_commentPrefix.test(match)) { continue; }
          +          if (pr_cdataPrefix.test(match)) {
          +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
          +            sourceBuf.push(match.substring(9, match.length - 3));
          +            sourceBufLen += match.length - 12;
          +          } else if (pr_brPrefix.test(match)) {
          +            // <br> tags are lexically significant so convert them to text.
          +            // This is undone later.
          +            sourceBuf.push('\n');
          +            ++sourceBufLen;
          +          } else {
          +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
          +              // A <span class="nocode"> will start a section that should be
          +              // ignored.  Continue walking the list until we see a matching end
          +              // tag.
          +              var name = match.match(pr_tagNameRe)[2];
          +              var depth = 1;
          +              var j;
          +              end_tag_loop:
          +              for (j = i + 1; j < n; ++j) {
          +                var name2 = matches[j].match(pr_tagNameRe);
          +                if (name2 && name2[2] === name) {
          +                  if (name2[1] === '/') {
          +                    if (--depth === 0) { break end_tag_loop; }
          +                  } else {
          +                    ++depth;
          +                  }
          +                }
          +              }
          +              if (j < n) {
          +                extractedTags.push(
          +                    sourceBufLen, matches.slice(i, j + 1).join(''));
          +                i = j;
          +              } else {  // Ignore unclosed sections.
          +                extractedTags.push(sourceBufLen, match);
          +              }
          +            } else {
          +              extractedTags.push(sourceBufLen, match);
          +            }
          +          }
          +        } else {
          +          var literalText = htmlToText(match);
          +          sourceBuf.push(literalText);
          +          sourceBufLen += literalText.length;
          +        }
          +      }
          +    }
          +    return { source: sourceBuf.join(''), tags: extractedTags };
          +  }
          +
          +  /** True if the given tag contains a class attribute with the nocode class. */
          +  function isNoCodeTag(tag) {
          +    return !!tag
          +        // First canonicalize the representation of attributes
          +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
          +                 ' $1="$2$3$4"')
          +        // Then look for the attribute we want.
          +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
          +  }
          +
          +  /**
          +   * Apply the given language handler to sourceCode and add the resulting
          +   * decorations to out.
          +   * @param {number} basePos the index of sourceCode within the chunk of source
          +   *    whose decorations are already present on out.
          +   */
          +  function appendDecorations(basePos, sourceCode, langHandler, out) {
          +    if (!sourceCode) { return; }
          +    var job = {
          +      source: sourceCode,
          +      basePos: basePos
          +    };
          +    langHandler(job);
          +    out.push.apply(out, job.decorations);
          +  }
          +
          +  /** Given triples of [style, pattern, context] returns a lexing function,
          +    * The lexing function interprets the patterns to find token boundaries and
          +    * returns a decoration list of the form
          +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
          +    * where index_n is an index into the sourceCode, and style_n is a style
          +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
          +    * all characters in sourceCode[index_n-1:index_n].
          +    *
          +    * The stylePatterns is a list whose elements have the form
          +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
          +    *
          +    * Style is a style constant like PR_PLAIN, or can be a string of the
          +    * form 'lang-FOO', where FOO is a language extension describing the
          +    * language of the portion of the token in $1 after pattern executes.
          +    * E.g., if style is 'lang-lisp', and group 1 contains the text
          +    * '(hello (world))', then that portion of the token will be passed to the
          +    * registered lisp handler for formatting.
          +    * The text before and after group 1 will be restyled using this decorator
          +    * so decorators should take care that this doesn't result in infinite
          +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
          +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
          +    * '<script>foo()<\/script>', which would cause the current decorator to
          +    * be called with '<script>' which would not match the same rule since
          +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
          +    * the generic tag rule.  The handler registered for the 'js' extension would
          +    * then be called with 'foo()', and finally, the current decorator would
          +    * be called with '<\/script>' which would not match the original rule and
          +    * so the generic tag rule would identify it as a tag.
          +    *
          +    * Pattern must only match prefixes, and if it matches a prefix, then that
          +    * match is considered a token with the same style.
          +    *
          +    * Context is applied to the last non-whitespace, non-comment token
          +    * recognized.
          +    *
          +    * Shortcut is an optional string of characters, any of which, if the first
          +    * character, gurantee that this pattern and only this pattern matches.
          +    *
          +    * @param {Array} shortcutStylePatterns patterns that always start with
          +    *   a known character.  Must have a shortcut string.
          +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
          +    *   order if the shortcut ones fail.  May have shortcuts.
          +    *
          +    * @return {function (Object)} a
          +    *   function that takes source code and returns a list of decorations.
          +    */
          +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
          +    var shortcuts = {};
          +    var tokenizer;
          +    (function () {
          +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
          +      var allRegexs = [];
          +      var regexKeys = {};
          +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
          +        var patternParts = allPatterns[i];
          +        var shortcutChars = patternParts[3];
          +        if (shortcutChars) {
          +          for (var c = shortcutChars.length; --c >= 0;) {
          +            shortcuts[shortcutChars.charAt(c)] = patternParts;
          +          }
          +        }
          +        var regex = patternParts[1];
          +        var k = '' + regex;
          +        if (!regexKeys.hasOwnProperty(k)) {
          +          allRegexs.push(regex);
          +          regexKeys[k] = null;
          +        }
          +      }
          +      allRegexs.push(/[\0-\uffff]/);
          +      tokenizer = combinePrefixPatterns(allRegexs);
          +    })();
          +
          +    var nPatterns = fallthroughStylePatterns.length;
          +    var notWs = /\S/;
          +
          +    /**
          +     * Lexes job.source and produces an output array job.decorations of style
          +     * classes preceded by the position at which they start in job.source in
          +     * order.
          +     *
          +     * @param {Object} job an object like {@code
          +     *    source: {string} sourceText plain text,
          +     *    basePos: {int} position of job.source in the larger chunk of
          +     *        sourceCode.
          +     * }
          +     */
          +    var decorate = function (job) {
          +      var sourceCode = job.source, basePos = job.basePos;
          +      /** Even entries are positions in source in ascending order.  Odd enties
          +        * are style markers (e.g., PR_COMMENT) that run from that position until
          +        * the end.
          +        * @type {Array.<number|string>}
          +        */
          +      var decorations = [basePos, PR_PLAIN];
          +      var pos = 0;  // index into sourceCode
          +      var tokens = sourceCode.match(tokenizer) || [];
          +      var styleCache = {};
          +
          +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
          +        var token = tokens[ti];
          +        var style = styleCache[token];
          +        var match = void 0;
          +
          +        var isEmbedded;
          +        if (typeof style === 'string') {
          +          isEmbedded = false;
          +        } else {
          +          var patternParts = shortcuts[token.charAt(0)];
          +          if (patternParts) {
          +            match = token.match(patternParts[1]);
          +            style = patternParts[0];
          +          } else {
          +            for (var i = 0; i < nPatterns; ++i) {
          +              patternParts = fallthroughStylePatterns[i];
          +              match = token.match(patternParts[1]);
          +              if (match) {
          +                style = patternParts[0];
          +                break;
          +              }
          +            }
          +
          +            if (!match) {  // make sure that we make progress
          +              style = PR_PLAIN;
          +            }
          +          }
          +
          +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
          +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
          +            isEmbedded = false;
          +            style = PR_SOURCE;
          +          }
          +
          +          if (!isEmbedded) { styleCache[token] = style; }
          +        }
          +
          +        var tokenStart = pos;
          +        pos += token.length;
          +
          +        if (!isEmbedded) {
          +          decorations.push(basePos + tokenStart, style);
          +        } else {  // Treat group 1 as an embedded block of source code.
          +          var embeddedSource = match[1];
          +          var embeddedSourceStart = token.indexOf(embeddedSource);
          +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
          +          if (match[2]) {
          +            // If embeddedSource can be blank, then it would match at the
          +            // beginning which would cause us to infinitely recurse on the
          +            // entire token, so we catch the right context in match[2].
          +            embeddedSourceEnd = token.length - match[2].length;
          +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
          +          }
          +          var lang = style.substring(5);
          +          // Decorate the left of the embedded source
          +          appendDecorations(
          +              basePos + tokenStart,
          +              token.substring(0, embeddedSourceStart),
          +              decorate, decorations);
          +          // Decorate the embedded source
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceStart,
          +              embeddedSource,
          +              langHandlerForExtension(lang, embeddedSource),
          +              decorations);
          +          // Decorate the right of the embedded section
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceEnd,
          +              token.substring(embeddedSourceEnd),
          +              decorate, decorations);
          +        }
          +      }
          +      job.decorations = decorations;
          +    };
          +    return decorate;
          +  }
          +
          +  /** returns a function that produces a list of decorations from source text.
          +    *
          +    * This code treats ", ', and ` as string delimiters, and \ as a string
          +    * escape.  It does not recognize perl's qq() style strings.
          +    * It has no special handling for double delimiter escapes as in basic, or
          +    * the tripled delimiters used in python, but should work on those regardless
          +    * although in those cases a single string literal may be broken up into
          +    * multiple adjacent string literals.
          +    *
          +    * It recognizes C, C++, and shell style comments.
          +    *
          +    * @param {Object} options a set of optional parameters.
          +    * @return {function (Object)} a function that examines the source code
          +    *     in the input job and builds the decoration list.
          +    */
          +  function sourceDecorator(options) {
          +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
          +    if (options['tripleQuotedStrings']) {
          +      // '''multi-line-string''', 'single-line-string', and double-quoted
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
          +           null, '\'"']);
          +    } else if (options['multiLineStrings']) {
          +      // 'multi-line-string', "multi-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
          +           null, '\'"`']);
          +    } else {
          +      // 'single-line-string', "single-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,
          +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
          +           null, '"\'']);
          +    }
          +    if (options['verbatimStrings']) {
          +      // verbatim-string-literal production from the C# grammar.  See issue 93.
          +      fallthroughStylePatterns.push(
          +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
          +    }
          +    if (options['hashComments']) {
          +      if (options['cStyleComments']) {
          +        // Stop C preprocessor declarations at an unclosed open comment
          +        shortcutStylePatterns.push(
          +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
          +             null, '#']);
          +        fallthroughStylePatterns.push(
          +            [PR_STRING,
          +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
          +             null]);
          +      } else {
          +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
          +      }
          +    }
          +    if (options['cStyleComments']) {
          +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
          +      fallthroughStylePatterns.push(
          +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
          +    }
          +    if (options['regexLiterals']) {
          +      var REGEX_LITERAL = (
          +          // A regular expression literal starts with a slash that is
          +          // not followed by * or / so that it is not confused with
          +          // comments.
          +          '/(?=[^/*])'
          +          // and then contains any number of raw characters,
          +          + '(?:[^/\\x5B\\x5C]'
          +          // escape sequences (\x5C),
          +          +    '|\\x5C[\\s\\S]'
          +          // or non-nesting character sets (\x5B\x5D);
          +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
          +          // finally closed by a /.
          +          + '/');
          +      fallthroughStylePatterns.push(
          +          ['lang-regex',
          +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
          +           ]);
          +    }
          +
          +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
          +    if (keywords.length) {
          +      fallthroughStylePatterns.push(
          +          [PR_KEYWORD,
          +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
          +    }
          +
          +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
          +    fallthroughStylePatterns.push(
          +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
          +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
          +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_LITERAL,
          +         new RegExp(
          +             '^(?:'
          +             // A hex number
          +             + '0x[a-f0-9]+'
          +             // or an octal or decimal number,
          +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
          +             // possibly in scientific notation
          +             + '(?:e[+\\-]?\\d+)?'
          +             + ')'
          +             // with an optional modifier like UL for unsigned long
          +             + '[a-z]*', 'i'),
          +         null, '0123456789'],
          +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
          +
          +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
          +  }
          +
          +  var decorateSource = sourceDecorator({
          +        'keywords': ALL_KEYWORDS,
          +        'hashComments': true,
          +        'cStyleComments': true,
          +        'multiLineStrings': true,
          +        'regexLiterals': true
          +      });
          +
          +  /** Breaks {@code job.source} around style boundaries in
          +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
          +    * and leaves the result in {@code job.prettyPrintedHtml}.
          +    * @param {Object} job like {
          +    *    source: {string} source as plain text,
          +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
          +    *                   html preceded by their position in {@code job.source}
          +    *                   in order
          +    *    decorations: {Array.<number|string} an array of style classes preceded
          +    *                 by the position at which they start in job.source in order
          +    * }
          +    * @private
          +    */
          +  function recombineTagsAndDecorations(job) {
          +    var sourceText = job.source;
          +    var extractedTags = job.extractedTags;
          +    var decorations = job.decorations;
          +
          +    var html = [];
          +    // index past the last char in sourceText written to html
          +    var outputIdx = 0;
          +
          +    var openDecoration = null;
          +    var currentDecoration = null;
          +    var tagPos = 0;  // index into extractedTags
          +    var decPos = 0;  // index into decorations
          +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
          +
          +    var adjacentSpaceRe = /([\r\n ]) /g;
          +    var startOrSpaceRe = /(^| ) /gm;
          +    var newlineRe = /\r\n?|\n/g;
          +    var trailingSpaceRe = /[ \r\n]$/;
          +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
          +
          +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
          +    var isIE678 = window['_pr_isIE6']();
          +    var lineBreakHtml = (
          +        isIE678
          +        ? (job.sourceNode.tagName === 'PRE'
          +           // Use line feeds instead of <br>s so that copying and pasting works
          +           // on IE.
          +           // Doing this on other browsers breaks lots of stuff since \r\n is
          +           // treated as two newlines on Firefox.
          +           ? (isIE678 === 6 ? '&#160;\r\n' :
          +              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
          +           // IE collapses multiple adjacent <br>s into 1 line break.
          +           // Prefix every newline with '&#160;' to prevent such behavior.
          +           // &nbsp; is the same as &#160; but works in XML as well as HTML.
          +           : '&#160;<br />')
          +        : '<br />');
          +
          +    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
          +    // number of the first line.
          +    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
          +    var lineBreaker;
          +    if (numberLines) {
          +      var lineBreaks = [];
          +      for (var i = 0; i < 10; ++i) {
          +        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
          +      }
          +      var lineNum = numberLines[1] && numberLines[1].length
          +          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
          +      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
          +      if (lineNum) {
          +        html.push(' value="', lineNum + 1, '"');
          +      }
          +      html.push('>');
          +      lineBreaker = function () {
          +        var lb = lineBreaks[++lineNum % 10];
          +        // If a decoration is open, we need to close it before closing a list-item
          +        // and reopen it on the other side of the list item.
          +        return openDecoration
          +            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
          +      };
          +    } else {
          +      lineBreaker = lineBreakHtml;
          +    }
          +
          +    // A helper function that is responsible for opening sections of decoration
          +    // and outputing properly escaped chunks of source
          +    function emitTextUpTo(sourceIdx) {
          +      if (sourceIdx > outputIdx) {
          +        if (openDecoration && openDecoration !== currentDecoration) {
          +          // Close the current decoration
          +          html.push('</span>');
          +          openDecoration = null;
          +        }
          +        if (!openDecoration && currentDecoration) {
          +          openDecoration = currentDecoration;
          +          html.push('<span class="', openDecoration, '">');
          +        }
          +        // This interacts badly with some wikis which introduces paragraph tags
          +        // into pre blocks for some strange reason.
          +        // It's necessary for IE though which seems to lose the preformattedness
          +        // of <pre> tags when their innerHTML is assigned.
          +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
          +        // and it serves to undo the conversion of <br>s to newlines done in
          +        // chunkify.
          +        var htmlChunk = textToHtml(
          +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
          +            .replace(lastWasSpace
          +                     ? startOrSpaceRe
          +                     : adjacentSpaceRe, '$1&#160;');
          +        // Keep track of whether we need to escape space at the beginning of the
          +        // next chunk.
          +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
          +        html.push(htmlChunk.replace(newlineRe, lineBreaker));
          +        outputIdx = sourceIdx;
          +      }
          +    }
          +
          +    while (true) {
          +      // Determine if we're going to consume a tag this time around.  Otherwise
          +      // we consume a decoration or exit.
          +      var outputTag;
          +      if (tagPos < extractedTags.length) {
          +        if (decPos < decorations.length) {
          +          // Pick one giving preference to extractedTags since we shouldn't open
          +          // a new style that we're going to have to immediately close in order
          +          // to output a tag.
          +          outputTag = extractedTags[tagPos] <= decorations[decPos];
          +        } else {
          +          outputTag = true;
          +        }
          +      } else {
          +        outputTag = false;
          +      }
          +      // Consume either a decoration or a tag or exit.
          +      if (outputTag) {
          +        emitTextUpTo(extractedTags[tagPos]);
          +        if (openDecoration) {
          +          // Close the current decoration
          +          html.push('</span>');
          +          openDecoration = null;
          +        }
          +        html.push(extractedTags[tagPos + 1]);
          +        tagPos += 2;
          +      } else if (decPos < decorations.length) {
          +        emitTextUpTo(decorations[decPos]);
          +        currentDecoration = decorations[decPos + 1];
          +        decPos += 2;
          +      } else {
          +        break;
          +      }
          +    }
          +    emitTextUpTo(sourceText.length);
          +    if (openDecoration) {
          +      html.push('</span>');
          +    }
          +    if (numberLines) { html.push('</li></ol>'); }
          +    job.prettyPrintedHtml = html.join('');
          +  }
          +
          +  /** Maps language-specific file extensions to handlers. */
          +  var langHandlerRegistry = {};
          +  /** Register a language handler for the given file extensions.
          +    * @param {function (Object)} handler a function from source code to a list
          +    *      of decorations.  Takes a single argument job which describes the
          +    *      state of the computation.   The single parameter has the form
          +    *      {@code {
          +    *        source: {string} as plain text.
          +    *        decorations: {Array.<number|string>} an array of style classes
          +    *                     preceded by the position at which they start in
          +    *                     job.source in order.
          +    *                     The language handler should assigned this field.
          +    *        basePos: {int} the position of source in the larger source chunk.
          +    *                 All positions in the output decorations array are relative
          +    *                 to the larger source chunk.
          +    *      } }
          +    * @param {Array.<string>} fileExtensions
          +    */
          +  function registerLangHandler(handler, fileExtensions) {
          +    for (var i = fileExtensions.length; --i >= 0;) {
          +      var ext = fileExtensions[i];
          +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
          +        langHandlerRegistry[ext] = handler;
          +      } else if ('console' in window) {
          +        console['warn']('cannot override language handler %s', ext);
          +      }
          +    }
          +  }
          +  function langHandlerForExtension(extension, source) {
          +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
          +      // Treat it as markup if the first non whitespace character is a < and
          +      // the last non-whitespace character is a >.
          +      extension = /^\s*</.test(source)
          +          ? 'default-markup'
          +          : 'default-code';
          +    }
          +    return langHandlerRegistry[extension];
          +  }
          +  registerLangHandler(decorateSource, ['default-code']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [],
          +          [
          +           [PR_PLAIN,       /^[^<?]+/],
          +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
          +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
          +           // Unescaped content in an unknown language
          +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
          +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
          +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
          +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
          +           // Unescaped content in javascript.  (Or possibly vbscript).
          +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
          +           // Contains unescaped stylesheet content
          +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
          +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
          +          ]),
          +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [
          +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
          +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
          +           ],
          +          [
          +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
          +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
          +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
          +           [PR_PUNCTUATION,  /^[=<>\/]+/],
          +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
          +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
          +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
          +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
          +           ]),
          +      ['in.tag']);
          +  registerLangHandler(
          +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CPP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true
          +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': 'null true false'
          +        }), ['json']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CSHARP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true,
          +          'verbatimStrings': true
          +        }), ['cs']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JAVA_KEYWORDS,
          +          'cStyleComments': true
          +        }), ['java']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': SH_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true
          +        }), ['bsh', 'csh', 'sh']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PYTHON_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'tripleQuotedStrings': true
          +        }), ['cv', 'py']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PERL_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['perl', 'pl', 'pm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': RUBY_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['rb']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JSCRIPT_KEYWORDS,
          +          'cStyleComments': true,
          +          'regexLiterals': true
          +        }), ['js']);
          +  registerLangHandler(
          +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
          +
          +  function applyDecorator(job) {
          +    var sourceCodeHtml = job.sourceCodeHtml;
          +    var opt_langExtension = job.langExtension;
          +
          +    // Prepopulate output in case processing fails with an exception.
          +    job.prettyPrintedHtml = sourceCodeHtml;
          +
          +    try {
          +      // Extract tags, and convert the source code to plain text.
          +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
          +      /** Plain text. @type {string} */
          +      var source = sourceAndExtractedTags.source;
          +      job.source = source;
          +      job.basePos = 0;
          +
          +      /** Even entries are positions in source in ascending order.  Odd entries
          +        * are tags that were extracted at that position.
          +        * @type {Array.<number|string>}
          +        */
          +      job.extractedTags = sourceAndExtractedTags.tags;
          +
          +      // Apply the appropriate language handler
          +      langHandlerForExtension(opt_langExtension, source)(job);
          +      // Integrate the decorations and tags back into the source code to produce
          +      // a decorated html string which is left in job.prettyPrintedHtml.
          +      recombineTagsAndDecorations(job);
          +    } catch (e) {
          +      if ('console' in window) {
          +        console['log'](e && e['stack'] ? e['stack'] : e);
          +      }
          +    }
          +  }
          +
          +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
          +    var job = {
          +      sourceCodeHtml: sourceCodeHtml,
          +      langExtension: opt_langExtension
          +    };
          +    applyDecorator(job);
          +    return job.prettyPrintedHtml;
          +  }
          +
          +  function prettyPrint(opt_whenDone) {
          +    function byTagName(tn) { return document.getElementsByTagName(tn); }
          +    // fetch a list of nodes to rewrite
          +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
          +    var elements = [];
          +    for (var i = 0; i < codeSegments.length; ++i) {
          +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
          +        elements.push(codeSegments[i][j]);
          +      }
          +    }
          +    codeSegments = null;
          +
          +    var clock = Date;
          +    if (!clock['now']) {
          +      clock = { 'now': function () { return (new Date).getTime(); } };
          +    }
          +
          +    // The loop is broken into a series of continuations to make sure that we
          +    // don't make the browser unresponsive when rewriting a large page.
          +    var k = 0;
          +    var prettyPrintingJob;
          +
          +    function doWork() {
          +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
          +                     clock.now() + 250 /* ms */ :
          +                     Infinity);
          +      for (; k < elements.length && clock.now() < endTime; k++) {
          +        var cs = elements[k];
          +        // [JACOCO] 'prettyprint' -> 'source'
          +        if (cs.className && cs.className.indexOf('source') >= 0) {
          +          // If the classes includes a language extensions, use it.
          +          // Language extensions can be specified like
          +          //     <pre class="prettyprint lang-cpp">
          +          // the language extension "cpp" is used to find a language handler as
          +          // passed to PR_registerLangHandler.
          +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
          +          if (langExtension) { langExtension = langExtension[1]; }
          +
          +          // make sure this is not nested in an already prettified element
          +          var nested = false;
          +          for (var p = cs.parentNode; p; p = p.parentNode) {
          +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
          +                 p.tagName === 'xmp') &&
          +                // [JACOCO] 'prettyprint' -> 'source'
          +                p.className && p.className.indexOf('source') >= 0) {
          +              nested = true;
          +              break;
          +            }
          +          }
          +          if (!nested) {
          +            // fetch the content as a snippet of properly escaped HTML.
          +            // Firefox adds newlines at the end.
          +            var content = getInnerHtml(cs);
          +            content = content.replace(/(?:\r\n?|\n)$/, '');
          +
          +            // do the pretty printing
          +            prettyPrintingJob = {
          +              sourceCodeHtml: content,
          +              langExtension: langExtension,
          +              sourceNode: cs
          +            };
          +            applyDecorator(prettyPrintingJob);
          +            replaceWithPrettyPrintedHtml();
          +          }
          +        }
          +      }
          +      if (k < elements.length) {
          +        // finish up in a continuation
          +        setTimeout(doWork, 250);
          +      } else if (opt_whenDone) {
          +        opt_whenDone();
          +      }
          +    }
          +
          +    function replaceWithPrettyPrintedHtml() {
          +      var newContent = prettyPrintingJob.prettyPrintedHtml;
          +      if (!newContent) { return; }
          +      var cs = prettyPrintingJob.sourceNode;
          +
          +      // push the prettified html back into the tag.
          +      if (!isRawContent(cs)) {
          +        // just replace the old html with the new
          +        cs.innerHTML = newContent;
          +      } else {
          +        // we need to change the tag to a <pre> since <xmp>s do not allow
          +        // embedded tags such as the span tags used to attach styles to
          +        // sections of source code.
          +        var pre = document.createElement('PRE');
          +        for (var i = 0; i < cs.attributes.length; ++i) {
          +          var a = cs.attributes[i];
          +          if (a.specified) {
          +            var aname = a.name.toLowerCase();
          +            if (aname === 'class') {
          +              pre.className = a.value;  // For IE 6
          +            } else {
          +              pre.setAttribute(a.name, a.value);
          +            }
          +          }
          +        }
          +        pre.innerHTML = newContent;
          +
          +        // remove the old
          +        cs.parentNode.replaceChild(pre, cs);
          +        cs = pre;
          +      }
          +    }
          +
          +    doWork();
          +  }
          +
          +  window['PR_normalizedHtml'] = normalizedHtml;
          +  window['prettyPrintOne'] = prettyPrintOne;
          +  window['prettyPrint'] = prettyPrint;
          +  window['PR'] = {
          +        'combinePrefixPatterns': combinePrefixPatterns,
          +        'createSimpleLexer': createSimpleLexer,
          +        'registerLangHandler': registerLangHandler,
          +        'sourceDecorator': sourceDecorator,
          +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
          +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
          +        'PR_COMMENT': PR_COMMENT,
          +        'PR_DECLARATION': PR_DECLARATION,
          +        'PR_KEYWORD': PR_KEYWORD,
          +        'PR_LITERAL': PR_LITERAL,
          +        'PR_NOCODE': PR_NOCODE,
          +        'PR_PLAIN': PR_PLAIN,
          +        'PR_PUNCTUATION': PR_PUNCTUATION,
          +        'PR_SOURCE': PR_SOURCE,
          +        'PR_STRING': PR_STRING,
          +        'PR_TAG': PR_TAG,
          +        'PR_TYPE': PR_TYPE
          +      };
          +})();
          diff --git a/target/site/jacoco/jacoco-resources/redbar.gif b/target/site/jacoco/jacoco-resources/redbar.gif
          new file mode 100644
          index 0000000..c2f7146
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/redbar.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/report.css b/target/site/jacoco/jacoco-resources/report.css
          new file mode 100644
          index 0000000..dd936bc
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-resources/report.css
          @@ -0,0 +1,243 @@
          +body, td {
          +  font-family:sans-serif;
          +  font-size:10pt;
          +}
          +
          +h1 {
          +  font-weight:bold;
          +  font-size:18pt;
          +}
          +
          +.breadcrumb {
          +  border:#d6d3ce 1px solid;
          +  padding:2px 4px 2px 4px;
          +}
          +
          +.breadcrumb .info {
          +  float:right;
          +}
          +
          +.breadcrumb .info a {
          +  margin-left:8px;
          +}
          +
          +.el_report {
          +  padding-left:18px;
          +  background-image:url(report.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_group {
          +  padding-left:18px;
          +  background-image:url(group.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_bundle {
          +  padding-left:18px;
          +  background-image:url(bundle.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_package {
          +  padding-left:18px;
          +  background-image:url(package.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_class {
          +  padding-left:18px;
          +  background-image:url(class.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_source {
          +  padding-left:18px;
          +  background-image:url(source.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_method {
          +  padding-left:18px;
          +  background-image:url(method.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_session {
          +  padding-left:18px;
          +  background-image:url(session.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +pre.source {
          +  border:#d6d3ce 1px solid;
          +  font-family:monospace;
          +}
          +
          +pre.source ol {
          +  margin-bottom: 0px;
          +  margin-top: 0px;
          +}
          +
          +pre.source li {
          +  border-left: 1px solid #D6D3CE;
          +  color: #A0A0A0;
          +  padding-left: 0px;
          +}
          +
          +pre.source span.fc {
          +  background-color:#ccffcc;
          +}
          +
          +pre.source span.nc {
          +  background-color:#ffaaaa;
          +}
          +
          +pre.source span.pc {
          +  background-color:#ffffcc;
          +}
          +
          +pre.source span.bfc {
          +  background-image: url(branchfc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bfc:hover {
          +  background-color:#80ff80;
          +}
          +
          +pre.source span.bnc {
          +  background-image: url(branchnc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bnc:hover {
          +  background-color:#ff8080;
          +}
          +
          +pre.source span.bpc {
          +  background-image: url(branchpc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bpc:hover {
          +  background-color:#ffff80;
          +}
          +
          +table.coverage {
          +  empty-cells:show;
          +  border-collapse:collapse;
          +}
          +
          +table.coverage thead {
          +  background-color:#e0e0e0;
          +}
          +
          +table.coverage thead td {
          +  white-space:nowrap;
          +  padding:2px 14px 0px 6px;
          +  border-bottom:#b0b0b0 1px solid;
          +}
          +
          +table.coverage thead td.bar {
          +  border-left:#cccccc 1px solid;
          +}
          +
          +table.coverage thead td.ctr1 {
          +  text-align:right;
          +  border-left:#cccccc 1px solid;
          +}
          +
          +table.coverage thead td.ctr2 {
          +  text-align:right;
          +  padding-left:2px;
          +}
          +
          +table.coverage thead td.sortable {
          +  cursor:pointer;
          +  background-image:url(sort.gif);
          +  background-position:right center;
          +  background-repeat:no-repeat;
          +}
          +
          +table.coverage thead td.up {
          +  background-image:url(up.gif);
          +}
          +
          +table.coverage thead td.down {
          +  background-image:url(down.gif);
          +}
          +
          +table.coverage tbody td {
          +  white-space:nowrap;
          +  padding:2px 6px 2px 6px;
          +  border-bottom:#d6d3ce 1px solid;
          +}
          +
          +table.coverage tbody tr:hover {
          +  background: #f0f0d0 !important;
          +}
          +
          +table.coverage tbody td.bar {
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tbody td.ctr1 {
          +  text-align:right;
          +  padding-right:14px;
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tbody td.ctr2 {
          +  text-align:right;
          +  padding-right:14px;
          +  padding-left:2px;
          +}
          +
          +table.coverage tfoot td {
          +  white-space:nowrap;
          +  padding:2px 6px 2px 6px;
          +}
          +
          +table.coverage tfoot td.bar {
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tfoot td.ctr1 {
          +  text-align:right;
          +  padding-right:14px;
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tfoot td.ctr2 {
          +  text-align:right;
          +  padding-right:14px;
          +  padding-left:2px;
          +}
          +
          +.footer {
          +  margin-top:20px;
          +  border-top:#d6d3ce 1px solid;
          +  padding-top:2px;
          +  font-size:8pt;
          +  color:#a0a0a0;
          +}
          +
          +.footer a {
          +  color:#a0a0a0;
          +}
          +
          +.right {
          +  float:right;
          +}
          diff --git a/target/site/jacoco/jacoco-resources/report.gif b/target/site/jacoco/jacoco-resources/report.gif
          new file mode 100644
          index 0000000..8547be5
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/report.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/session.gif b/target/site/jacoco/jacoco-resources/session.gif
          new file mode 100644
          index 0000000..0151bad
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/session.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/sort.gif b/target/site/jacoco/jacoco-resources/sort.gif
          new file mode 100644
          index 0000000..6757c2c
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/sort.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/sort.js b/target/site/jacoco/jacoco-resources/sort.js
          new file mode 100644
          index 0000000..e269fe3
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-resources/sort.js
          @@ -0,0 +1,148 @@
          +/*******************************************************************************
          + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
          + * This program and the accompanying materials are made available under
          + * the terms of the Eclipse Public License 2.0 which is available at
          + * http://www.eclipse.org/legal/epl-2.0
          + *
          + * SPDX-License-Identifier: EPL-2.0
          + *
          + * Contributors:
          + *    Marc R. Hoffmann - initial API and implementation
          + *
          + *******************************************************************************/
          +
          +(function () {
          +
          +  /**
          +   * Sets the initial sorting derived from the hash.
          +   *
          +   * @param linkelementids
          +   *          list of element ids to search for links to add sort inidcator
          +   *          hash links
          +   */
          +  function initialSort(linkelementids) {
          +    window.linkelementids = linkelementids;
          +    var hash = window.location.hash;
          +    if (hash) {
          +      var m = hash.match(/up-./);
          +      if (m) {
          +        var header = window.document.getElementById(m[0].charAt(3));
          +        if (header) {
          +          sortColumn(header, true);
          +        }
          +        return;
          +      }
          +      var m = hash.match(/dn-./);
          +      if (m) {
          +        var header = window.document.getElementById(m[0].charAt(3));
          +        if (header) {
          +          sortColumn(header, false);
          +        }
          +        return
          +      }
          +    }
          +  }
          +
          +  /**
          +   * Sorts the columns with the given header dependening on the current sort state.
          +   */
          +  function toggleSort(header) {
          +    var sortup = header.className.indexOf('down ') == 0;
          +    sortColumn(header, sortup);
          +  }
          +
          +  /**
          +   * Sorts the columns with the given header in the given direction.
          +   */
          +  function sortColumn(header, sortup) {
          +    var table = header.parentNode.parentNode.parentNode;
          +    var body = table.tBodies[0];
          +    var colidx = getNodePosition(header);
          +
          +    resetSortedStyle(table);
          +
          +    var rows = body.rows;
          +    var sortedrows = [];
          +    for (var i = 0; i < rows.length; i++) {
          +      r = rows[i];
          +      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
          +    }
          +
          +    var hash;
          +
          +    if (sortup) {
          +      for (var i = sortedrows.length - 1; i >= 0; i--) {
          +        body.appendChild(sortedrows[i]);
          +      }
          +      header.className = 'up ' + header.className;
          +      hash = 'up-' + header.id;
          +    } else {
          +      for (var i = 0; i < sortedrows.length; i++) {
          +        body.appendChild(sortedrows[i]);
          +      }
          +      header.className = 'down ' + header.className;
          +      hash = 'dn-' + header.id;
          +    }
          +
          +    setHash(hash);
          +  }
          +
          +  /**
          +   * Adds the sort indicator as a hash to the document URL and all links.
          +   */
          +  function setHash(hash) {
          +    window.document.location.hash = hash;
          +    ids = window.linkelementids;
          +    for (var i = 0; i < ids.length; i++) {
          +        setHashOnAllLinks(document.getElementById(ids[i]), hash);
          +    }
          +  }
          +
          +  /**
          +   * Extend all links within the given tag with the given hash.
          +   */
          +  function setHashOnAllLinks(tag, hash) {
          +    links = tag.getElementsByTagName("a");
          +    for (var i = 0; i < links.length; i++) {
          +        var a = links[i];
          +        var href = a.href;
          +        var hashpos = href.indexOf("#");
          +        if (hashpos != -1) {
          +            href = href.substring(0, hashpos);
          +        }
          +        a.href = href + "#" + hash;
          +    }
          +  }
          +
          +  /**
          +   * Calculates the position of a element within its parent.
          +   */
          +  function getNodePosition(element) {
          +    var pos = -1;
          +    while (element) {
          +      element = element.previousSibling;
          +      pos++;
          +    }
          +    return pos;
          +  }
          +
          +  /**
          +   * Remove the sorting indicator style from all headers.
          +   */
          +  function resetSortedStyle(table) {
          +    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
          +      if (c.className) {
          +        if (c.className.indexOf('down ') == 0) {
          +          c.className = c.className.slice(5);
          +        }
          +        if (c.className.indexOf('up ') == 0) {
          +          c.className = c.className.slice(3);
          +        }
          +      }
          +    }
          +  }
          +
          +  window['initialSort'] = initialSort;
          +  window['toggleSort'] = toggleSort;
          +
          +})();
          diff --git a/target/site/jacoco/jacoco-resources/source.gif b/target/site/jacoco/jacoco-resources/source.gif
          new file mode 100644
          index 0000000..b226e41
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/source.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/up.gif b/target/site/jacoco/jacoco-resources/up.gif
          new file mode 100644
          index 0000000..58ed216
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/up.gif differ
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          new file mode 100644
          index 0000000..478feda
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-e57e2e00</span></td><td>26 juin 2021, 14:29:08</td><td>26 juin 2021, 14:29:09</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-3e358c1a</span></td><td>26 juin 2021, 14:29:30</td><td>26 juin 2021, 14:29:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-56f46767</span></td><td>26 juin 2021, 14:29:49</td><td>26 juin 2021, 14:29:49</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-e88c304d</span></td><td>26 juin 2021, 14:30:30</td><td>26 juin 2021, 14:30:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-20d8781c</span></td><td>26 juin 2021, 14:30:42</td><td>26 juin 2021, 14:30:43</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-442c10a6</span></td><td>26 juin 2021, 14:30:53</td><td>26 juin 2021, 14:30:53</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="musichub.business/PathValidation.html" class="el_class">musichub.business.PathValidation</a></td><td><code>23fa11bc9f27a597</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>c2c5ebe52507fc9e</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>325f5b44374bcaeb</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>4c7ade2bf38c6e74</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>192d10ac364dc41c</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.org.apache.maven.shared.utils.StringUtils</span></td><td><code>336ef03300f29635</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ClassNameStackTraceFilter</span></td><td><code>2e0e75f8104a222a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.PojoStackTraceWriter</span></td><td><code>cdfe959904c6726b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SafeThrowable</span></td><td><code>e61429531d0f0c1c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SmartStackTraceParser</span></td><td><code>05e423188a7bbb31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.BlacklistedExceptions</span></td><td><code>73365157bacc50af</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ExceptionUtils</span></td><td><code>0125033b30a9585f</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">org.opentest4j.AssertionFailedError</span></td><td><code>2c5f69ceb24e9128</code></td></tr><tr><td><span class="el_class">org.opentest4j.ValueWrapper</span></td><td><code>7d0d1c90c1c4c4b3</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          new file mode 100644
          index 0000000..9aff09d
          --- /dev/null
          +++ b/target/site/jacoco/jacoco.csv
          @@ -0,0 +1,19 @@
          +GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
          +spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
          +spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
          +spoteezer,musichub.business,PathValidation,0,17,0,0,0,4,0,2,0,2
          +spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
          +spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Song,105,0,6,0,26,0,12,0,7,0
          +spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,PlayList,202,0,14,0,53,0,14,0,7,0
          +spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
          +spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,Genre,56,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,AudioElement,266,0,11,0,72,0,16,0,9,0
          +spoteezer,musichub.main,Main,588,0,40,0,199,0,29,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          new file mode 100644
          index 0000000..5a939ee
          --- /dev/null
          +++ b/target/site/jacoco/jacoco.xml
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-e57e2e00" start="1624710548706" dump="1624710549076"/><sessioninfo id="DESKTOP-M4INQND-3e358c1a" start="1624710570201" dump="1624710570575"/><sessioninfo id="DESKTOP-M4INQND-56f46767" start="1624710589444" dump="1624710589830"/><sessioninfo id="DESKTOP-M4INQND-e88c304d" start="1624710630581" dump="1624710630973"/><sessioninfo id="DESKTOP-M4INQND-20d8781c" start="1624710642738" dump="1624710643144"/><sessioninfo id="DESKTOP-M4INQND-442c10a6" start="1624710653198" dump="1624710653579"/><package name="musichub/util"><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="22"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="34"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="PathValidation.java"><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="5" mb="0" cb="0"/><line nr="34" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="17"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="4"/><counter type="COMPLEXITY" missed="172" covered="2"/><counter type="METHOD" missed="81" covered="2"/><counter type="CLASS" missed="15" covered="1"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="14"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="548" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="185" covered="0"/><counter type="COMPLEXITY" missed="27" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="252"><counter type="INSTRUCTION" missed="37" covered="0"/><counter type="LINE" missed="13" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="14" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="2" cb="0"/><line nr="29" mi="4" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="14" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="3" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="3" ci="0" mb="0" cb="0"/><line nr="57" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="3" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="2" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="101" mi="9" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="105" mi="10" ci="0" mb="2" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="8" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="10" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="2" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="7" ci="0" mb="2" cb="0"/><line nr="138" mi="1" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="2" cb="0"/><line nr="144" mi="4" ci="0" mb="0" cb="0"/><line nr="145" mi="4" ci="0" mb="0" cb="0"/><line nr="146" mi="1" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="4" ci="0" mb="0" cb="0"/><line nr="150" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="154" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="4" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="10" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="10" ci="0" mb="2" cb="0"/><line nr="177" mi="1" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="1" ci="0" mb="0" cb="0"/><line nr="182" mi="3" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="2" cb="0"/><line nr="186" mi="4" ci="0" mb="0" cb="0"/><line nr="187" mi="4" ci="0" mb="0" cb="0"/><line nr="188" mi="1" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="5" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="2" cb="0"/><line nr="197" mi="4" ci="0" mb="0" cb="0"/><line nr="198" mi="4" ci="0" mb="0" cb="0"/><line nr="199" mi="1" ci="0" mb="0" cb="0"/><line nr="200" mi="5" ci="0" mb="2" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="4" ci="0" mb="0" cb="0"/><line nr="207" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="3" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="214" mi="3" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="4" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="231" mi="1" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="2" ci="0" mb="0" cb="0"/><line nr="237" mi="2" ci="0" mb="0" cb="0"/><line nr="238" mi="2" ci="0" mb="0" cb="0"/><line nr="239" mi="3" ci="0" mb="0" cb="0"/><line nr="240" mi="1" ci="0" mb="0" cb="0"/><line nr="241" mi="3" ci="0" mb="0" cb="0"/><line nr="242" mi="1" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="2" ci="0" mb="0" cb="0"/><line nr="249" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="3" ci="0" mb="0" cb="0"/><line nr="253" mi="3" ci="0" mb="0" cb="0"/><line nr="254" mi="3" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="0" cb="0"/><line nr="257" mi="3" ci="0" mb="0" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="3" ci="0" mb="0" cb="0"/><line nr="260" mi="3" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2723" covered="17"/><counter type="BRANCH" missed="209" covered="0"/><counter type="LINE" missed="723" covered="4"/><counter type="COMPLEXITY" missed="205" covered="2"/><counter type="METHOD" missed="88" covered="2"/><counter type="CLASS" missed="17" covered="1"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Album.html b/target/site/jacoco/musichub.business/Album.html
          new file mode 100644
          index 0000000..24287ce
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Album.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Album</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Album</span></div><h1>Album</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">330 of 330</td><td class="ctr2">0 %</td><td class="bar">14 of 14</td><td class="ctr2">0 %</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">84</td><td class="ctr2">84</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a4"><a href="Album.java.html#L112" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h0">26</td><td class="ctr2" id="i0">26</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Album.java.html#L49" class="el_method">Album(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="112" alt="112"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h1">26</td><td class="ctr2" id="i1">26</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Album.java.html#L35" class="el_method">Album(String, String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="34" alt="34"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="Album.java.html#L21" class="el_method">Album(String, String, int, String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="33" alt="33"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">12</td><td class="ctr2" id="i3">12</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a7"><a href="Album.java.html#L98" class="el_method">getSongsRandomly()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="Album.java.html#L89" class="el_method">addSong(UUID)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="Album.java.html#L94" class="el_method">getSongs()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a8"><a href="Album.java.html#L104" class="el_method">getTitle()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="Album.java.html#L108" class="el_method">getDate()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Album.java.html b/target/site/jacoco/musichub.business/Album.java.html
          new file mode 100644
          index 0000000..107bbe9
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Album.java.html
          @@ -0,0 +1,146 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Album.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Album.java</span></div><h1>Album.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.text.ParseException;
          +import java.text.SimpleDateFormat;
          +import java.util.*;
          +
          +
          +public class Album {
          +    private final String title;
          +    private final int lengthInSeconds;
          +    private final UUID uuid;
          +    private String artist;
          +    private Date date;
          +    private ArrayList&lt;UUID&gt; songsUIDs;
          +
          +<span class="nc" id="L21">    public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList&lt;UUID&gt; songsUIDs) {</span>
          +<span class="nc" id="L22">        this.title = title;</span>
          +<span class="nc" id="L23">        this.artist = artist;</span>
          +<span class="nc" id="L24">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L25">        this.uuid = UUID.fromString(id);</span>
          +        try {
          +<span class="nc" id="L27">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L28">            this.date = sdf.parse(date);</span>
          +<span class="nc" id="L29">        } catch (ParseException ex) {</span>
          +<span class="nc" id="L30">            ex.printStackTrace();</span>
          +<span class="nc" id="L31">        }</span>
          +<span class="nc" id="L32">        this.songsUIDs = songsUIDs;</span>
          +<span class="nc" id="L33">    }</span>
          +
          +<span class="nc" id="L35">    public Album(String title, String artist, int lengthInSeconds, String date) {</span>
          +<span class="nc" id="L36">        this.title = title;</span>
          +<span class="nc" id="L37">        this.artist = artist;</span>
          +<span class="nc" id="L38">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L39">        this.uuid = UUID.randomUUID();</span>
          +        try {
          +<span class="nc" id="L41">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L42">            this.date = sdf.parse(date);</span>
          +<span class="nc" id="L43">        } catch (ParseException ex) {</span>
          +<span class="nc" id="L44">            ex.printStackTrace();</span>
          +<span class="nc" id="L45">        }</span>
          +<span class="nc" id="L46">        this.songsUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="nc" id="L47">    }</span>
          +
          +<span class="nc" id="L49">    public Album(Element xmlElement) throws Exception {</span>
          +        {
          +<span class="nc" id="L51">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L52">            this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;lengthInSeconds&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L53">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L55">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L56">            } catch (Exception ex) {</span>
          +<span class="nc" id="L57">                System.out.println(&quot;Empty album UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L58">            }</span>
          +<span class="nc bnc" id="L59" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L60">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L61">            else this.uuid = UUID.fromString(uuid);</span>
          +
          +<span class="nc" id="L63">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L64">            this.date = sdf.parse(xmlElement.getElementsByTagName(&quot;date&quot;).item(0).getTextContent());</span>
          +            //parse list of songs:
          +<span class="nc" id="L66">            Node songsElement = xmlElement.getElementsByTagName(&quot;songs&quot;).item(0);</span>
          +<span class="nc" id="L67">            NodeList songUUIDNodes = songsElement.getChildNodes();</span>
          +<span class="nc bnc" id="L68" title="All 2 branches missed.">            if (songUUIDNodes == null) return;</span>
          +
          +<span class="nc" id="L70">            this.songsUIDs = new ArrayList&lt;&gt;();</span>
          +
          +<span class="nc bnc" id="L72" title="All 2 branches missed.">            for (int i = 0; i &lt; songUUIDNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L73" title="All 2 branches missed.">                if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L74">                    Element songElement = (Element) songUUIDNodes.item(i);</span>
          +<span class="nc bnc" id="L75" title="All 2 branches missed.">                    if (songElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
          +                        try {
          +<span class="nc" id="L77">                            this.addSong(UUID.fromString(songElement.getTextContent()));</span>
          +<span class="nc" id="L78">                        } catch (Exception ex) {</span>
          +<span class="nc" id="L79">                            ex.printStackTrace();</span>
          +<span class="nc" id="L80">                        }</span>
          +                    }
          +                }
          +            }
          +        }
          +<span class="nc" id="L85">    }</span>
          +
          +
          +    public void addSong(UUID song) {
          +<span class="nc" id="L89">        songsUIDs.add(song);</span>
          +<span class="nc" id="L90">    }</span>
          +
          +
          +    public List&lt;UUID&gt; getSongs() {
          +<span class="nc" id="L94">        return songsUIDs;</span>
          +    }
          +
          +    public ArrayList&lt;UUID&gt; getSongsRandomly() {
          +<span class="nc" id="L98">        ArrayList&lt;UUID&gt; shuffledSongs = songsUIDs;</span>
          +<span class="nc" id="L99">        Collections.shuffle(shuffledSongs);</span>
          +<span class="nc" id="L100">        return shuffledSongs;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L104">        return title;</span>
          +    }
          +
          +    public Date getDate() {
          +<span class="nc" id="L108">        return date;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L112">        Element albumElement = document.createElement(&quot;album&quot;);</span>
          +<span class="nc" id="L113">        parentElement.appendChild(albumElement);</span>
          +
          +<span class="nc" id="L115">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L116">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L117">        albumElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L119">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="nc" id="L120">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="nc" id="L121">        albumElement.appendChild(artistElement);</span>
          +
          +<span class="nc" id="L123">        Element lengthElement = document.createElement(&quot;lengthInSeconds&quot;);</span>
          +<span class="nc" id="L124">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="nc" id="L125">        albumElement.appendChild(lengthElement);</span>
          +
          +<span class="nc" id="L127">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L128">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L129">        albumElement.appendChild(UUIDElement);</span>
          +
          +<span class="nc" id="L131">        Element dateElement = document.createElement(&quot;date&quot;);</span>
          +<span class="nc" id="L132">        SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L133">        dateElement.appendChild(document.createTextNode(sdf.format(date)));</span>
          +<span class="nc" id="L134">        albumElement.appendChild(dateElement);</span>
          +
          +<span class="nc" id="L136">        Element songsElement = document.createElement(&quot;songs&quot;);</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">        for (UUID currentUUID : this.songsUIDs) {</span>
          +<span class="nc" id="L138">            Element songUUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L139">            songUUIDElement.appendChild(document.createTextNode(currentUUID.toString()));</span>
          +<span class="nc" id="L140">            songsElement.appendChild(songUUIDElement);</span>
          +<span class="nc" id="L141">        }</span>
          +<span class="nc" id="L142">        albumElement.appendChild(songsElement);</span>
          +
          +<span class="nc" id="L144">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.html b/target/site/jacoco/musichub.business/AudioBook.html
          new file mode 100644
          index 0000000..aec1e56
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioBook.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 164</td><td class="ctr2">0 %</td><td class="bar">10 of 10</td><td class="ctr2">0 %</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">39</td><td class="ctr2">39</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.java.html b/target/site/jacoco/musichub.business/AudioBook.java.html
          new file mode 100644
          index 0000000..33a7924
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioBook.java.html
          @@ -0,0 +1,79 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">AudioBook.java</span></div><h1>AudioBook.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +public class AudioBook extends AudioElement {
          +    private Language language;
          +    private Category category;
          +
          +    public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) {
          +<span class="nc" id="L11">        super(title, artist, lengthInSeconds, uid, content);</span>
          +<span class="nc" id="L12">        this.setLanguage(language);</span>
          +<span class="nc" id="L13">        this.setCategory(category);</span>
          +<span class="nc" id="L14">    }</span>
          +
          +    public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) {
          +<span class="nc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          +<span class="nc" id="L18">        this.setLanguage(language);</span>
          +<span class="nc" id="L19">        this.setCategory(category);</span>
          +<span class="nc" id="L20">    }</span>
          +
          +    public AudioBook(Element xmlElement) {
          +<span class="nc" id="L23">        super(xmlElement);</span>
          +<span class="nc" id="L24">        this.setLanguage(xmlElement.getElementsByTagName(&quot;language&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L25">        this.setCategory(xmlElement.getElementsByTagName(&quot;category&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L26">    }</span>
          +
          +    public Language getLanguage() {
          +<span class="nc" id="L29">        return this.language;</span>
          +    }
          +
          +    public void setLanguage(String language) {
          +<span class="nc bnc" id="L33" title="All 5 branches missed.">        switch (language.toLowerCase()) {</span>
          +<span class="nc" id="L34">            default -&gt; this.language = Language.ENGLISH;</span>
          +<span class="nc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
          +<span class="nc" id="L36">            case &quot;german&quot; -&gt; this.language = Language.GERMAN;</span>
          +<span class="nc" id="L37">            case &quot;spanish&quot; -&gt; this.language = Language.SPANISH;</span>
          +<span class="nc" id="L38">            case &quot;italian&quot; -&gt; this.language = Language.ITALIAN;</span>
          +        }
          +<span class="nc" id="L40">    }</span>
          +
          +    public Category getCategory() {
          +<span class="nc" id="L43">        return this.category;</span>
          +    }
          +
          +    public void setCategory(String category) {
          +<span class="nc bnc" id="L47" title="All 5 branches missed.">        switch (category.toLowerCase()) {</span>
          +<span class="nc" id="L48">            default -&gt; this.category = Category.YOUTH;</span>
          +<span class="nc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
          +<span class="nc" id="L50">            case &quot;theater&quot; -&gt; this.category = Category.THEATER;</span>
          +<span class="nc" id="L51">            case &quot;documentary&quot; -&gt; this.category = Category.DOCUMENTARY;</span>
          +<span class="nc" id="L52">            case &quot;speech&quot; -&gt; this.category = Category.SPEECH;</span>
          +        }
          +<span class="nc" id="L54">    }</span>
          +
          +
          +    public String toString() {
          +<span class="nc" id="L58">        return super.toString() + &quot;, Language = &quot; + getLanguage() + &quot;, Category = &quot; + getCategory() + &quot;\n&quot;;</span>
          +    }
          +
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +        // audiobook element
          +<span class="nc" id="L64">        Element audioBook = document.createElement(&quot;audiobook&quot;);</span>
          +
          +<span class="nc" id="L66">        super.createXMLElement(document, audioBook);</span>
          +
          +<span class="nc" id="L68">        Element languageElement = document.createElement(&quot;language&quot;);</span>
          +<span class="nc" id="L69">        languageElement.appendChild(document.createTextNode(language.getLanguage()));</span>
          +<span class="nc" id="L70">        audioBook.appendChild(languageElement);</span>
          +
          +<span class="nc" id="L72">        Element categoryElement = document.createElement(&quot;category&quot;);</span>
          +<span class="nc" id="L73">        categoryElement.appendChild(document.createTextNode(category.getCategory()));</span>
          +<span class="nc" id="L74">        audioBook.appendChild(categoryElement);</span>
          +
          +<span class="nc" id="L76">        parentElement.appendChild(audioBook);</span>
          +<span class="nc" id="L77">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.html b/target/site/jacoco/musichub.business/AudioElement.html
          new file mode 100644
          index 0000000..7a6e499
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioElement.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">266 of 266</td><td class="ctr2">0 %</td><td class="bar">11 of 11</td><td class="ctr2">0 %</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">72</td><td class="ctr2">72</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="63" alt="63"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">14</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">7</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.java.html b/target/site/jacoco/musichub.business/AudioElement.java.html
          new file mode 100644
          index 0000000..4401836
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioElement.java.html
          @@ -0,0 +1,133 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">AudioElement.java</span></div><h1>AudioElement.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +import java.io.File;
          +import java.io.IOException;
          +import java.util.Scanner;
          +import java.util.UUID;
          +
          +import javax.sound.sampled.AudioInputStream;
          +import javax.sound.sampled.AudioSystem;
          +import javax.sound.sampled.Clip;
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +
          +public abstract class AudioElement {
          +    protected String title;
          +    protected String artist;
          +    protected int lengthInSeconds;
          +    protected UUID uuid;
          +    protected String content;
          +
          +<span class="nc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          +<span class="nc" id="L25">        this.title = title;</span>
          +<span class="nc" id="L26">        this.artist = artist;</span>
          +<span class="nc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L28">        this.uuid = UUID.fromString(id);</span>
          +<span class="nc" id="L29">        this.content = content;</span>
          +<span class="nc" id="L30">    }</span>
          +
          +<span class="nc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          +<span class="nc" id="L33">        this.title = title;</span>
          +<span class="nc" id="L34">        this.artist = artist;</span>
          +<span class="nc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L36">        this.content = content;</span>
          +<span class="nc" id="L37">        this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L38">    }</span>
          +
          +<span class="nc" id="L40">    public AudioElement(Element xmlElement) {</span>
          +        {
          +<span class="nc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L46">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L49">            } catch (Exception ex) {</span>
          +<span class="nc" id="L50">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L51">            }</span>
          +<span class="nc bnc" id="L52" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L53">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
          +        }
          +<span class="nc" id="L56">    }</span>
          +
          +    public UUID getUUID() {
          +<span class="nc" id="L59">        return this.uuid;</span>
          +    }
          +
          +    public String getArtist() {
          +<span class="nc" id="L63">        return this.artist;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L67">        return this.title;</span>
          +    }
          +
          +    public String toString() {
          +<span class="nc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L77">        parentElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="nc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="nc" id="L81">        parentElement.appendChild(artistElement);</span>
          +
          +<span class="nc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          +<span class="nc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="nc" id="L85">        parentElement.appendChild(lengthElement);</span>
          +
          +<span class="nc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L89">        parentElement.appendChild(UUIDElement);</span>
          +
          +<span class="nc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          +<span class="nc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
          +<span class="nc" id="L93">        parentElement.appendChild(contentElement);</span>
          +
          +<span class="nc" id="L95">    }</span>
          +    
          +    public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +    	
          +<span class="nc" id="L99">    	Scanner scanner = new Scanner(System.in); </span>
          +    	
          +<span class="nc" id="L101">    	File file = new File(this.content);</span>
          +<span class="nc" id="L102">    	AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);</span>
          +<span class="nc" id="L103">    	Clip clip = AudioSystem.getClip();</span>
          +<span class="nc" id="L104">    	clip.open(audioStream);</span>
          +    	
          +<span class="nc" id="L106">    	String action = &quot;&quot;;</span>
          +    			
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">    	while(!action.equals(&quot;Q&quot;)) {</span>
          +<span class="nc" id="L109">    		System.out.println(&quot;P = Play \b S = Stop \b R = Reset \b Q = Quit&quot;);</span>
          +<span class="nc" id="L110">    		System.out.println(&quot;Enter your choice&quot;);</span>
          +<span class="nc" id="L111">    		action = scanner.next();</span>
          +<span class="nc" id="L112">        	action = action.toUpperCase();</span>
          +        	
          +<span class="nc bnc" id="L114" title="All 5 branches missed.">        	switch(action) {</span>
          +<span class="nc" id="L115">        		case &quot;S&quot; : clip.stop();</span>
          +<span class="nc" id="L116">        		break;</span>
          +<span class="nc" id="L117">        		case &quot;P&quot; : clip.start();</span>
          +<span class="nc" id="L118">        		break;</span>
          +<span class="nc" id="L119">        		case &quot;R&quot; : clip.setMicrosecondPosition(0);</span>
          +<span class="nc" id="L120">        		break;</span>
          +<span class="nc" id="L121">        		case &quot;Q&quot; : clip.stop();</span>
          +<span class="nc" id="L122">        		break;</span>
          +<span class="nc" id="L123">        		default : System.out.println(&quot;try again&quot;);</span>
          +        	}
          +<span class="nc" id="L125">        	System.out.println(&quot;You stoped the Audio element&quot;);</span>
          +    	}
          +    	
          +<span class="nc" id="L128">    	clip.close();</span>
          +    
          +<span class="nc" id="L130">    }</span>
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.html b/target/site/jacoco/musichub.business/Category.html
          new file mode 100644
          index 0000000..d7e4df0
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Category.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.java.html b/target/site/jacoco/musichub.business/Category.java.html
          new file mode 100644
          index 0000000..cdef51f
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Category.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Category.java</span></div><h1>Category.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Category {</span>
          +<span class="nc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
          +    private final String category;
          +
          +<span class="nc" id="L7">    Category(String category) {</span>
          +<span class="nc" id="L8">        this.category = category;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getCategory() {
          +<span class="nc" id="L12">        return category;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Genre.html b/target/site/jacoco/musichub.business/Genre.html
          new file mode 100644
          index 0000000..88e0ecd
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Genre.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Genre</span></div><h1>Genre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">56 of 56</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Genre.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Genre.java.html#L7" class="el_method">Genre(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Genre.java.html#L12" class="el_method">getGenre()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Genre.java.html b/target/site/jacoco/musichub.business/Genre.java.html
          new file mode 100644
          index 0000000..021bb4b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Genre.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Genre.java</span></div><h1>Genre.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Genre {</span>
          +<span class="nc" id="L4">    JAZZ(&quot;jazz&quot;), CLASSIC(&quot;classic&quot;), HIPHOP(&quot;hiphop&quot;), ROCK(&quot;rock&quot;), POP(&quot;pop&quot;), RAP(&quot;rap&quot;);</span>
          +    private final String genre;
          +
          +<span class="nc" id="L7">    Genre(String genre) {</span>
          +<span class="nc" id="L8">        this.genre = genre;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getGenre() {
          +<span class="nc" id="L12">        return genre;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.html b/target/site/jacoco/musichub.business/Language.html
          new file mode 100644
          index 0000000..604af85
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Language.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.java.html b/target/site/jacoco/musichub.business/Language.java.html
          new file mode 100644
          index 0000000..f974811
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Language.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Language.java</span></div><h1>Language.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Language {</span>
          +<span class="nc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
          +    private final String language;
          +
          +<span class="nc" id="L7">    Language(String language) {</span>
          +<span class="nc" id="L8">        this.language = language;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getLanguage() {
          +<span class="nc" id="L12">        return language;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.html b/target/site/jacoco/musichub.business/MusicHub.html
          new file mode 100644
          index 0000000..6bedc98
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/MusicHub.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">803 of 803</td><td class="ctr2">0 %</td><td class="bar">114 of 114</td><td class="ctr2">0 %</td><td class="ctr1">79</td><td class="ctr2">79</td><td class="ctr1">195</td><td class="ctr2">195</td><td class="ctr1">22</td><td class="ctr2">22</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L158" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f2">7</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L187" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L135" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L113" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L254" class="el_method">loadElements()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L101" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f9">4</td><td class="ctr2" id="g9">4</td><td class="ctr1" id="h11">9</td><td class="ctr2" id="i11">9</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L314" class="el_method">saveElements()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f5">5</td><td class="ctr2" id="g5">5</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">12</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L218" class="el_method">loadAlbums()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f6">5</td><td class="ctr2" id="g6">5</td><td class="ctr1" id="h6">11</td><td class="ctr2" id="i6">11</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L236" class="el_method">loadPlaylists()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">11</td><td class="ctr2" id="i7">11</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L66" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L282" class="el_method">saveAlbums()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f10">3</td><td class="ctr2" id="g10">3</td><td class="ctr1" id="h9">10</td><td class="ctr2" id="i9">10</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L298" class="el_method">savePlayLists()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f11">3</td><td class="ctr2" id="g11">3</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L93" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f13">2</td><td class="ctr2" id="g13">2</td><td class="ctr1" id="h13">5</td><td class="ctr2" id="i13">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L41" class="el_method">MusicHub()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L335" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h14">5</td><td class="ctr2" id="i14">5</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L34" class="el_method">static {...}</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">4</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L53" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">2</td><td class="ctr2" id="i16">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L57" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L61" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L81" class="el_method">albums()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L85" class="el_method">playlists()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L89" class="el_method">elements()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          new file mode 100644
          index 0000000..b9dfd09
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -0,0 +1,343 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">MusicHub.java</span></div><h1>MusicHub.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import musichub.util.XMLHandler;
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.io.IOException;
          +import java.util.*;
          +
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +
          +<span class="nc" id="L15">class SortByDate implements Comparator&lt;Album&gt; {</span>
          +    public int compare(Album a1, Album a2) {
          +<span class="nc" id="L17">        return a1.getDate().compareTo(a2.getDate());</span>
          +    }
          +}
          +
          +<span class="nc" id="L21">class SortByGenre implements Comparator&lt;Song&gt; {</span>
          +    public int compare(Song s1, Song s2) {
          +<span class="nc" id="L23">        return s1.getGenre().compareTo(s2.getGenre());</span>
          +    }
          +}
          +
          +<span class="nc" id="L27">class SortByAuthor implements Comparator&lt;AudioElement&gt; {</span>
          +    public int compare(AudioElement e1, AudioElement e2) {
          +<span class="nc" id="L29">        return e1.getArtist().compareTo(e2.getArtist());</span>
          +    }
          +}
          +
          +public class MusicHub {
          +<span class="nc" id="L34">    public static final String DIR = System.getProperty(&quot;user.dir&quot;);</span>
          +<span class="nc" id="L35">    public static final String ALBUMS_FILE_PATH = DIR + &quot;/files/albums.xml&quot;;</span>
          +<span class="nc" id="L36">    public static final String PLAYLISTS_FILE_PATH = DIR + &quot;/files/playlists.xml&quot;;</span>
          +<span class="nc" id="L37">    public static final String ELEMENTS_FILE_PATH = DIR + &quot;/files/elements.xml&quot;;</span>
          +    private final List&lt;Album&gt; albums;
          +    private final List&lt;PlayList&gt; playlists;
          +    private final List&lt;AudioElement&gt; elements;
          +<span class="nc" id="L41">    private final XMLHandler xmlHandler = new XMLHandler();</span>
          +
          +<span class="nc" id="L43">    public MusicHub() {</span>
          +<span class="nc" id="L44">        albums = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L45">        playlists = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L46">        elements = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L47">        this.loadElements();</span>
          +<span class="nc" id="L48">        this.loadAlbums();</span>
          +<span class="nc" id="L49">        this.loadPlaylists();</span>
          +<span class="nc" id="L50">    }</span>
          +
          +    public void addElement(AudioElement element) {
          +<span class="nc" id="L53">        elements.add(element);</span>
          +<span class="nc" id="L54">    }</span>
          +
          +    public void addAlbum(Album album) {
          +<span class="nc" id="L57">        albums.add(album);</span>
          +<span class="nc" id="L58">    }</span>
          +
          +    public void addPlaylist(PlayList playlist) {
          +<span class="nc" id="L61">        playlists.add(playlist);</span>
          +<span class="nc" id="L62">    }</span>
          +
          +    public void deletePlayList(String playListTitle) throws NoPlayListFoundException {
          +
          +<span class="nc" id="L66">        PlayList thePlayList = null;</span>
          +<span class="nc" id="L67">        boolean result = false;</span>
          +<span class="nc bnc" id="L68" title="All 2 branches missed.">        for (PlayList pl : playlists) {</span>
          +<span class="nc bnc" id="L69" title="All 2 branches missed.">            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L70">                thePlayList = pl;</span>
          +<span class="nc" id="L71">                break;</span>
          +            }
          +<span class="nc" id="L73">        }</span>
          +
          +<span class="nc bnc" id="L75" title="All 2 branches missed.">        if (thePlayList != null)</span>
          +<span class="nc" id="L76">            result = playlists.remove(thePlayList);</span>
          +<span class="nc bnc" id="L77" title="All 2 branches missed.">        if (!result) throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L78">    }</span>
          +
          +    public Iterator&lt;Album&gt; albums() {
          +<span class="nc" id="L81">        return albums.listIterator();</span>
          +    }
          +
          +    public Iterator&lt;PlayList&gt; playlists() {
          +<span class="nc" id="L85">        return playlists.listIterator();</span>
          +    }
          +
          +    public Iterator&lt;AudioElement&gt; elements() {
          +<span class="nc" id="L89">        return elements.listIterator();</span>
          +    }
          +
          +    public String getAlbumsTitlesSortedByDate() {
          +<span class="nc" id="L93">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L94">        albums.sort(new SortByDate());</span>
          +<span class="nc bnc" id="L95" title="All 2 branches missed.">        for (Album al : albums)</span>
          +<span class="nc" id="L96">            titleList.append(al.getTitle()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L97">        return titleList.toString();</span>
          +    }
          +
          +    public String getAudiobooksTitlesSortedByAuthor() {
          +<span class="nc" id="L101">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L102">        List&lt;AudioElement&gt; audioBookList = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L103" title="All 2 branches missed.">        for (AudioElement ae : elements)</span>
          +<span class="nc bnc" id="L104" title="All 2 branches missed.">            if (ae instanceof AudioBook)</span>
          +<span class="nc" id="L105">                audioBookList.add(ae);</span>
          +<span class="nc" id="L106">        audioBookList.sort(new SortByAuthor());</span>
          +<span class="nc bnc" id="L107" title="All 2 branches missed.">        for (AudioElement ab : audioBookList)</span>
          +<span class="nc" id="L108">            titleList.append(ab.getArtist()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L109">        return titleList.toString();</span>
          +    }
          +
          +    public List&lt;AudioElement&gt; getAlbumSongs(String albumTitle) throws NoAlbumFoundException {
          +<span class="nc" id="L113">        Album theAlbum = null;</span>
          +<span class="nc" id="L114">        ArrayList&lt;AudioElement&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L115" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L116" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L117">                theAlbum = al;</span>
          +<span class="nc" id="L118">                break;</span>
          +            }
          +<span class="nc" id="L120">        }</span>
          +<span class="nc bnc" id="L121" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L123">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L124" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L126" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L127" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add(el);</span>
          +                }
          +<span class="nc" id="L129">            }</span>
          +<span class="nc" id="L130">        return songsInAlbum;</span>
          +
          +    }
          +
          +    public List&lt;Song&gt; getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException {
          +<span class="nc" id="L135">        Album theAlbum = null;</span>
          +<span class="nc" id="L136">        ArrayList&lt;Song&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L139">                theAlbum = al;</span>
          +<span class="nc" id="L140">                break;</span>
          +            }
          +<span class="nc" id="L142">        }</span>
          +<span class="nc bnc" id="L143" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L145">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L147" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L148" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L149" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add((Song) el);</span>
          +                }
          +<span class="nc" id="L151">            }</span>
          +<span class="nc" id="L152">        songsInAlbum.sort(new SortByGenre());</span>
          +<span class="nc" id="L153">        return songsInAlbum;</span>
          +
          +    }
          +
          +    public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException {
          +<span class="nc" id="L158">        Album theAlbum = null;</span>
          +        int i;
          +<span class="nc" id="L160">        boolean found = false;</span>
          +<span class="nc bnc" id="L161" title="All 2 branches missed.">        for (i = 0; i &lt; albums.size(); i++) {</span>
          +<span class="nc bnc" id="L162" title="All 2 branches missed.">            if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L163">                theAlbum = albums.get(i);</span>
          +<span class="nc" id="L164">                found = true;</span>
          +<span class="nc" id="L165">                break;</span>
          +            }
          +        }
          +
          +<span class="nc bnc" id="L169" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L170">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L171" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L172" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L173">                    theElement = ae;</span>
          +<span class="nc" id="L174">                    break;</span>
          +                }
          +<span class="nc" id="L176">            }</span>
          +<span class="nc bnc" id="L177" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L178">                theAlbum.addSong(theElement.getUUID());</span>
          +                //replace the album in the list
          +<span class="nc" id="L180">                albums.set(i, theAlbum);</span>
          +<span class="nc" id="L181">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L182">        } else throw new NoAlbumFoundException(&quot;Album &quot; + albumTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L184">    }</span>
          +
          +    public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException {
          +<span class="nc" id="L187">        PlayList thePlaylist = null;</span>
          +        int i;
          +<span class="nc" id="L189">        boolean found = false;</span>
          +
          +<span class="nc bnc" id="L191" title="All 2 branches missed.">        for (i = 0; i &lt; playlists.size(); i++) {</span>
          +<span class="nc bnc" id="L192" title="All 2 branches missed.">            if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L193">                thePlaylist = playlists.get(i);</span>
          +<span class="nc" id="L194">                found = true;</span>
          +<span class="nc" id="L195">                break;</span>
          +            }
          +        }
          +
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L200">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L201" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L202" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L203">                    theElement = ae;</span>
          +<span class="nc" id="L204">                    break;</span>
          +                }
          +<span class="nc" id="L206">            }</span>
          +<span class="nc bnc" id="L207" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L208">                thePlaylist.addElement(theElement.getUUID());</span>
          +                //replace the album in the list
          +<span class="nc" id="L210">                playlists.set(i, thePlaylist);</span>
          +<span class="nc" id="L211">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L213">        } else throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L215">    }</span>
          +
          +    private void loadAlbums() {
          +<span class="nc" id="L218">        NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH);</span>
          +<span class="nc bnc" id="L219" title="All 2 branches missed.">        if (albumNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L221" title="All 2 branches missed.">        for (int i = 0; i &lt; albumNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L222" title="All 2 branches missed.">            if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L223">                Element albumElement = (Element) albumNodes.item(i);</span>
          +<span class="nc bnc" id="L224" title="All 2 branches missed.">                if (albumElement.getNodeName().equals(&quot;album&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L226">                        this.addAlbum(new Album(albumElement));</span>
          +<span class="nc" id="L227">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L228">                        System.out.println(&quot;Something is wrong with the XML album element&quot;);</span>
          +<span class="nc" id="L229">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L233">    }</span>
          +
          +    private void loadPlaylists() {
          +<span class="nc" id="L236">        NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L237" title="All 2 branches missed.">        if (playlistNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L239" title="All 2 branches missed.">        for (int i = 0; i &lt; playlistNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L240" title="All 2 branches missed.">            if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L241">                Element playlistElement = (Element) playlistNodes.item(i);</span>
          +<span class="nc bnc" id="L242" title="All 2 branches missed.">                if (playlistElement.getNodeName().equals(&quot;playlist&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L244">                        this.addPlaylist(new PlayList(playlistElement));</span>
          +<span class="nc" id="L245">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L246">                        System.out.println(&quot;Something is wrong with the XML playlist element&quot;);</span>
          +<span class="nc" id="L247">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L251">    }</span>
          +
          +    private void loadElements() {
          +<span class="nc" id="L254">        NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L255" title="All 2 branches missed.">        if (audioelementsNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L257" title="All 2 branches missed.">        for (int i = 0; i &lt; audioelementsNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L258" title="All 2 branches missed.">            if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L259">                Element audioElement = (Element) audioelementsNodes.item(i);</span>
          +<span class="nc bnc" id="L260" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;song&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L262">                        AudioElement newSong = new Song(audioElement);</span>
          +<span class="nc" id="L263">                        this.addElement(newSong);</span>
          +<span class="nc" id="L264">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L265">                        System.out.println(&quot;Something is wrong with the XML song element&quot;);</span>
          +<span class="nc" id="L266">                    }</span>
          +                }
          +<span class="nc bnc" id="L268" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;audiobook&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L270">                        AudioElement newAudioBook = new AudioBook(audioElement);</span>
          +<span class="nc" id="L271">                        this.addElement(newAudioBook);</span>
          +<span class="nc" id="L272">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L273">                        System.out.println(&quot;Something is wrong with the XML audiobook element&quot;);</span>
          +<span class="nc" id="L274">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L278">    }</span>
          +
          +
          +    public void saveAlbums() {
          +<span class="nc" id="L282">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L283" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L286">        Element root = document.createElement(&quot;albums&quot;);</span>
          +<span class="nc" id="L287">        document.appendChild(root);</span>
          +
          +        //save all albums
          +<span class="nc bnc" id="L290" title="All 2 branches missed.">        for (Iterator&lt;Album&gt; albumsIter = this.albums(); albumsIter.hasNext(); ) {</span>
          +<span class="nc" id="L291">            Album currentAlbum = albumsIter.next();</span>
          +<span class="nc" id="L292">            currentAlbum.createXMLElement(document, root);</span>
          +<span class="nc" id="L293">        }</span>
          +<span class="nc" id="L294">        xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH);</span>
          +<span class="nc" id="L295">    }</span>
          +
          +    public void savePlayLists() {
          +<span class="nc" id="L298">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L299" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L302">        Element root = document.createElement(&quot;playlists&quot;);</span>
          +<span class="nc" id="L303">        document.appendChild(root);</span>
          +
          +        //save all playlists
          +<span class="nc bnc" id="L306" title="All 2 branches missed.">        for (Iterator&lt;PlayList&gt; playlistsIter = this.playlists(); playlistsIter.hasNext(); ) {</span>
          +<span class="nc" id="L307">            PlayList currentPlayList = playlistsIter.next();</span>
          +<span class="nc" id="L308">            currentPlayList.createXMLElement(document, root);</span>
          +<span class="nc" id="L309">        }</span>
          +<span class="nc" id="L310">        xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH);</span>
          +<span class="nc" id="L311">    }</span>
          +
          +    public void saveElements() {
          +<span class="nc" id="L314">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L315" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L318">        Element root = document.createElement(&quot;elements&quot;);</span>
          +<span class="nc" id="L319">        document.appendChild(root);</span>
          +
          +        //save all AudioElements
          +<span class="nc bnc" id="L322" title="All 2 branches missed.">        for (AudioElement currentElement : elements) {</span>
          +
          +<span class="nc bnc" id="L324" title="All 2 branches missed.">            if (currentElement instanceof Song) {</span>
          +<span class="nc" id="L325">                currentElement.createXMLElement(document, root);</span>
          +            }
          +<span class="nc bnc" id="L327" title="All 2 branches missed.">            if (currentElement instanceof AudioBook) {</span>
          +<span class="nc" id="L328">                currentElement.createXMLElement(document, root);</span>
          +            }
          +<span class="nc" id="L330">        }</span>
          +<span class="nc" id="L331">        xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);</span>
          +<span class="nc" id="L332">    }</span>
          +    
          +    public void getAudioElement(List&lt;AudioElement&gt; audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException {
          +<span class="nc bnc" id="L335" title="All 2 branches missed.">        for (AudioElement el : audios) {</span>
          +<span class="nc bnc" id="L336" title="All 2 branches missed.">            if (el.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L337">                el.manageAudioElement();</span>
          +            }
          +<span class="nc" id="L339">        }</span>
          +
          +<span class="nc" id="L341">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoAlbumFoundException.html b/target/site/jacoco/musichub.business/NoAlbumFoundException.html
          new file mode 100644
          index 0000000..51bf5be
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoAlbumFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoAlbumFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoAlbumFoundException</span></div><h1>NoAlbumFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoAlbumFoundException.java.html#L6" class="el_method">NoAlbumFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html b/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html
          new file mode 100644
          index 0000000..d78347b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoAlbumFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoAlbumFoundException.java</span></div><h1>NoAlbumFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoAlbumFoundException extends Exception {
          +
          +    public NoAlbumFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoElementFoundException.html b/target/site/jacoco/musichub.business/NoElementFoundException.html
          new file mode 100644
          index 0000000..01fecbd
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoElementFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoElementFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoElementFoundException</span></div><h1>NoElementFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoElementFoundException.java.html#L6" class="el_method">NoElementFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoElementFoundException.java.html b/target/site/jacoco/musichub.business/NoElementFoundException.java.html
          new file mode 100644
          index 0000000..4d5f6bb
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoElementFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoElementFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoElementFoundException.java</span></div><h1>NoElementFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoElementFoundException extends Exception {
          +
          +    public NoElementFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoPlayListFoundException.html b/target/site/jacoco/musichub.business/NoPlayListFoundException.html
          new file mode 100644
          index 0000000..d1803ad
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoPlayListFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoPlayListFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoPlayListFoundException</span></div><h1>NoPlayListFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoPlayListFoundException.java.html#L6" class="el_method">NoPlayListFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html b/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html
          new file mode 100644
          index 0000000..f93e9a4
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoPlayListFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoPlayListFoundException.java</span></div><h1>NoPlayListFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoPlayListFoundException extends Exception {
          +
          +    public NoPlayListFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.html b/target/site/jacoco/musichub.business/PathValidation.html
          new file mode 100644
          index 0000000..3b58bb2
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PathValidation.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L34" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L22" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.java.html b/target/site/jacoco/musichub.business/PathValidation.java.html
          new file mode 100644
          index 0000000..4d22953
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PathValidation.java.html
          @@ -0,0 +1,39 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PathValidation.java</span></div><h1>PathValidation.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.Paths;
          +
          +/**
          + * Class offering a path validation method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class PathValidation {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     * @author Aimeric ADJUTOR
          +     * @throws AssertionError you can't instantiate this class
          +     */
          +
          +<span class="fc" id="L22">    public PathValidation() {</span>
          +<span class="fc" id="L23">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +    }
          +
          +    /**
          +     * Method that checks the validity of a given path
          +     *
          +     * @param inputPath the path given by the user
          +     * @return a boolean
          +     */
          +
          +    public static boolean isPathValid(String inputPath) {
          +<span class="fc" id="L34">        Path path = Paths.get(inputPath);</span>
          +<span class="fc" id="L35">        return Files.exists(path);</span>
          +    }
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.html b/target/site/jacoco/musichub.business/PlayList.html
          new file mode 100644
          index 0000000..ae17a14
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PlayList.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PlayList</span></div><h1>PlayList</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">202 of 202</td><td class="ctr2">0 %</td><td class="bar">14 of 14</td><td class="ctr2">0 %</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">53</td><td class="ctr2">53</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a4"><a href="PlayList.java.html#L28" class="el_method">PlayList(Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="88" alt="88"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PlayList.java.html#L78" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="75" alt="75"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="PlayList.java.html#L22" class="el_method">PlayList(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="14" alt="14"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="PlayList.java.html#L16" class="el_method">PlayList(String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">5</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="PlayList.java.html#L66" class="el_method">addElement(UUID)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="PlayList.java.html#L70" class="el_method">getElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="PlayList.java.html#L74" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.java.html b/target/site/jacoco/musichub.business/PlayList.java.html
          new file mode 100644
          index 0000000..6a45004
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PlayList.java.html
          @@ -0,0 +1,101 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PlayList.java</span></div><h1>PlayList.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.util.ArrayList;
          +import java.util.UUID;
          +
          +public class PlayList {
          +    private final String title;
          +    private final UUID uuid;
          +    private ArrayList&lt;UUID&gt; elementUUIDs;
          +
          +<span class="nc" id="L16">    public PlayList(String title, String id, ArrayList&lt;UUID&gt; elementUUIDs) {</span>
          +<span class="nc" id="L17">        this.title = title;</span>
          +<span class="nc" id="L18">        this.uuid = UUID.fromString(id);</span>
          +<span class="nc" id="L19">        this.elementUUIDs = elementUUIDs;</span>
          +<span class="nc" id="L20">    }</span>
          +
          +<span class="nc" id="L22">    public PlayList(String title) {</span>
          +<span class="nc" id="L23">        this.title = title;</span>
          +<span class="nc" id="L24">        this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L25">        this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="nc" id="L26">    }</span>
          +
          +<span class="nc" id="L28">    public PlayList(Element xmlElement) {</span>
          +        {
          +<span class="nc" id="L30">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +
          +<span class="nc" id="L32">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L34">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L35">            } catch (Exception ex) {</span>
          +<span class="nc" id="L36">                System.out.println(&quot;Empty playlist UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L37">            }</span>
          +<span class="nc bnc" id="L38" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L39">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L40">            else this.uuid = UUID.fromString(uuid);</span>
          +
          +            //parse list of elements:
          +<span class="nc" id="L43">            Node elementsElement = xmlElement.getElementsByTagName(&quot;elements&quot;).item(0);</span>
          +<span class="nc" id="L44">            NodeList elementUUIDNodes = elementsElement.getChildNodes();</span>
          +<span class="nc bnc" id="L45" title="All 2 branches missed.">            if (elementUUIDNodes == null) return;</span>
          +
          +<span class="nc" id="L47">            this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +
          +
          +<span class="nc bnc" id="L50" title="All 2 branches missed.">            for (int i = 0; i &lt; elementUUIDNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L51" title="All 2 branches missed.">                if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L52">                    Element elementElement = (Element) elementUUIDNodes.item(i);</span>
          +<span class="nc bnc" id="L53" title="All 2 branches missed.">                    if (elementElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
          +                        try {
          +<span class="nc" id="L55">                            this.addElement(UUID.fromString(elementElement.getTextContent()));</span>
          +<span class="nc" id="L56">                        } catch (Exception ex) {</span>
          +<span class="nc" id="L57">                            ex.printStackTrace();</span>
          +<span class="nc" id="L58">                        }</span>
          +                    }
          +                }
          +            }
          +        }
          +<span class="nc" id="L63">    }</span>
          +
          +    public void addElement(UUID element) {
          +<span class="nc" id="L66">        elementUUIDs.add(element);</span>
          +<span class="nc" id="L67">    }</span>
          +
          +    public ArrayList&lt;UUID&gt; getElements() {
          +<span class="nc" id="L70">        return elementUUIDs;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L74">        return title;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L78">        Element playlistElement = document.createElement(&quot;playlist&quot;);</span>
          +<span class="nc" id="L79">        parentElement.appendChild(playlistElement);</span>
          +
          +<span class="nc" id="L81">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L82">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L83">        playlistElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L85">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L86">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L87">        playlistElement.appendChild(UUIDElement);</span>
          +
          +
          +<span class="nc" id="L90">        Element elementsElement = document.createElement(&quot;elements&quot;);</span>
          +<span class="nc bnc" id="L91" title="All 2 branches missed.">        for (UUID currentUUID : this.elementUUIDs) {</span>
          +
          +<span class="nc" id="L93">            Element elementUUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L94">            elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString()));</span>
          +<span class="nc" id="L95">            elementsElement.appendChild(elementUUIDElement);</span>
          +<span class="nc" id="L96">        }</span>
          +<span class="nc" id="L97">        playlistElement.appendChild(elementsElement);</span>
          +<span class="nc" id="L98">    }</span>
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.html b/target/site/jacoco/musichub.business/Song.html
          new file mode 100644
          index 0000000..4af18c3
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Song.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">105 of 105</td><td class="ctr2">0 %</td><td class="bar">6 of 6</td><td class="ctr2">0 %</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="33" alt="33"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.java.html b/target/site/jacoco/musichub.business/Song.java.html
          new file mode 100644
          index 0000000..4f7f01d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Song.java.html
          @@ -0,0 +1,59 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Song.java</span></div><h1>Song.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +
          +public class Song extends AudioElement {
          +    private Genre genre;
          +
          +    public Song(String title, String artist, int length, String uid, String content, String genre) {
          +<span class="nc" id="L11">        super(title, artist, length, uid, content);</span>
          +<span class="nc" id="L12">        this.setGenre(genre);</span>
          +<span class="nc" id="L13">    }</span>
          +
          +    public Song(String title, String artist, int length, String content, String genre) {
          +<span class="nc" id="L16">        super(title, artist, length, content);</span>
          +<span class="nc" id="L17">        this.setGenre(genre);</span>
          +<span class="nc" id="L18">    }</span>
          +
          +    public Song(Element xmlElement) {
          +<span class="nc" id="L21">        super(xmlElement);</span>
          +<span class="nc" id="L22">        this.setGenre(xmlElement.getElementsByTagName(&quot;genre&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L23">    }</span>
          +
          +    public String getGenre() {
          +<span class="nc" id="L26">        return genre.getGenre();</span>
          +    }
          +
          +    public void setGenre(String genre) {
          +<span class="nc bnc" id="L30" title="All 6 branches missed.">        switch (genre.toLowerCase()) {</span>
          +<span class="nc" id="L31">            default -&gt; this.genre = Genre.JAZZ;</span>
          +<span class="nc" id="L32">            case &quot;classic&quot; -&gt; this.genre = Genre.CLASSIC;</span>
          +<span class="nc" id="L33">            case &quot;hiphop&quot; -&gt; this.genre = Genre.HIPHOP;</span>
          +<span class="nc" id="L34">            case &quot;rock&quot; -&gt; this.genre = Genre.ROCK;</span>
          +<span class="nc" id="L35">            case &quot;pop&quot; -&gt; this.genre = Genre.POP;</span>
          +<span class="nc" id="L36">            case &quot;rap&quot; -&gt; this.genre = Genre.RAP;</span>
          +        }
          +<span class="nc" id="L38">    }</span>
          +
          +    public String toString() {
          +<span class="nc" id="L41">        return super.toString() + &quot;, Genre = &quot; + getGenre() + &quot;\n&quot;;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +        // song element
          +<span class="nc" id="L46">        Element song = document.createElement(&quot;song&quot;);</span>
          +
          +<span class="nc" id="L48">        super.createXMLElement(document, song);</span>
          +
          +<span class="nc" id="L50">        Element genreElement = document.createElement(&quot;genre&quot;);</span>
          +<span class="nc" id="L51">        genreElement.appendChild(document.createTextNode(genre.getGenre()));</span>
          +<span class="nc" id="L52">        song.appendChild(genreElement);</span>
          +
          +<span class="nc" id="L54">        parentElement.appendChild(song);</span>
          +<span class="nc" id="L55">    }</span>
          +    
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByAuthor.html b/target/site/jacoco/musichub.business/SortByAuthor.html
          new file mode 100644
          index 0000000..851cdce
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByAuthor.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByAuthor</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByAuthor</span></div><h1>SortByAuthor</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L29" class="el_method">compare(AudioElement, AudioElement)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L27" class="el_method">SortByAuthor()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByDate.html b/target/site/jacoco/musichub.business/SortByDate.html
          new file mode 100644
          index 0000000..8f4b2f7
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByDate.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByDate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByDate</span></div><h1>SortByDate</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L17" class="el_method">compare(Album, Album)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L15" class="el_method">SortByDate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByGenre.html b/target/site/jacoco/musichub.business/SortByGenre.html
          new file mode 100644
          index 0000000..6dd6e7d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByGenre.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByGenre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByGenre</span></div><h1>SortByGenre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L23" class="el_method">compare(Song, Song)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L21" class="el_method">SortByGenre()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          new file mode 100644
          index 0000000..178e60b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a15"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c15">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k15">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a10"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g12">2</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k12">2</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          new file mode 100644
          index 0000000..45a5b59
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a10"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          new file mode 100644
          index 0000000..de45b84
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L17" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="548" alt="548"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">27</td><td class="ctr2" id="g0">27</td><td class="ctr1" id="h0">185</td><td class="ctr2" id="i0">185</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L252" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L14" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          new file mode 100644
          index 0000000..df39af0
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -0,0 +1,266 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.main</a> &gt; <span class="el_source">Main.java</span></div><h1>Main.java</h1><pre class="source lang-java linenums">package musichub.main;
          +
          +import musichub.business.*;
          +
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +import java.io.IOException;
          +import java.util.Iterator;
          +import java.util.List;
          +import java.util.Scanner;
          +
          +import static musichub.business.PathValidation.isPathValid;
          +
          +<span class="nc" id="L14">public class Main {</span>
          +    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +
          +<span class="nc" id="L17">        MusicHub theHub = new MusicHub();</span>
          +
          +<span class="nc" id="L19">        System.out.println(&quot;Type h for available commands&quot;);</span>
          +
          +
          +<span class="nc" id="L22">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L23">        String choice = scan.nextLine();</span>
          +
          +        String albumTitle;
          +
          +<span class="nc bnc" id="L27" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          +
          +<span class="nc bnc" id="L29" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +<span class="nc bnc" id="L30" title="All 14 branches missed.">            switch (choice.charAt(0)) {</span>
          +                case 'q': //added the option directly in the switch instead of the loop
          +<span class="nc" id="L32">                    System.exit(0);</span>
          +                case 'h':
          +<span class="nc" id="L34">                    printAvailableCommands();</span>
          +<span class="nc" id="L35">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L36">                    break;</span>
          +                case 't':
          +                    //album titles, ordered by date
          +<span class="nc" id="L39">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L40">                    printAvailableCommands();</span>
          +<span class="nc" id="L41">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L42">                    break;</span>
          +                case 'g':
          +                    //songs of an album, sorted by genre
          +<span class="nc" id="L45">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L46">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L48">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L50">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L51">                        System.out.println(songs);</span>
          +<span class="nc" id="L52">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L53">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L54">                    }</span>
          +<span class="nc" id="L55">                    printAvailableCommands();</span>
          +<span class="nc" id="L56">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L57">                    break;</span>
          +                case 'd':
          +                    //songs of an album
          +<span class="nc" id="L60">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L61">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L63">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L65">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L66">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L67">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L68">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L69">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L70">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L71">                    }</span>
          +<span class="nc" id="L72">                    printAvailableCommands();</span>
          +<span class="nc" id="L73">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L74">                    break;</span>
          +                case 'u':
          +                    //audiobooks ordered by author
          +<span class="nc" id="L77">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L78">                    printAvailableCommands();</span>
          +<span class="nc" id="L79">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L80">                    break;</span>
          +                case 'c':
          +                    // add a new song
          +<span class="nc" id="L83">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L84">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L85">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L86">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L87">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L88">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L89">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L91">                    int length = Integer.parseInt(scan.nextLine());</span>
          +
          +<span class="nc" id="L93">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L94">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L95" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L96">                        System.out.println(&quot;The music file was not found with the path you've provided.\nType h for available commands&quot;);</span>
          +<span class="nc" id="L97">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L98">                        break;</span>
          +                    }
          +
          +<span class="nc" id="L101">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L102">                    theHub.addElement(s);</span>
          +<span class="nc" id="L103">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L104">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L105" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L106">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L107">                    printAvailableCommands();</span>
          +<span class="nc" id="L108">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L109">                    break;</span>
          +                case 'a':
          +                    // add a new album
          +<span class="nc" id="L112">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L113">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L114">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L115">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L116">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L117">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L118">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L119">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L120">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L121">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L122">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L124">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L126">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L127">                    printAvailableCommands();</span>
          +<span class="nc" id="L128">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L129">                    break;</span>
          +                case '+':
          +                    //add a song to an album:
          +<span class="nc" id="L132">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L133">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L134">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L135" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L136">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L138">                    }</span>
          +<span class="nc" id="L139">                    String songTitle = scan.nextLine();</span>
          +
          +<span class="nc" id="L141">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L142">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L143" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L144">                        Album al = ait.next();</span>
          +<span class="nc" id="L145">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L146">                    }</span>
          +<span class="nc" id="L147">                    String titleAlbum = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L149">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L150">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L151">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L152">                    }</span>
          +<span class="nc" id="L153">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L154">                    printAvailableCommands();</span>
          +<span class="nc" id="L155">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L156">                    break;</span>
          +                case 'l':
          +                    // add a new audiobook
          +<span class="nc" id="L159">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L160">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L161">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L162">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L163">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L164">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L165">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L166">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L167">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L168">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L169">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L170">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L171">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L172">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L173">                    theHub.addElement(b);</span>
          +<span class="nc" id="L174">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L175">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L176" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L177">                    printAvailableCommands();</span>
          +<span class="nc" id="L178">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L179">                    break;</span>
          +                case 'p':
          +                    //create a new playlist from existing elements
          +<span class="nc" id="L182">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L183">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L184">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L185" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L186">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L187">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L188">                    }</span>
          +<span class="nc" id="L189">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L190">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L191">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L192">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L193">                    System.out.println(&quot;Available elements: &quot;);</span>
          +
          +<span class="nc" id="L195">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L196" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L197">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L198">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L199">                    }</span>
          +<span class="nc bnc" id="L200" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L201">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L202">                        String elementTitle = scan.nextLine();</span>
          +                        try {
          +<span class="nc" id="L204">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L205">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L206">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L207">                        }</span>
          +
          +<span class="nc" id="L209">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L210">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L211">                    }</span>
          +<span class="nc" id="L212">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L213">                    printAvailableCommands();</span>
          +<span class="nc" id="L214">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L215">                    break;</span>
          +                case '-':
          +                    //delete a playlist
          +<span class="nc" id="L218">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L219">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L220" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L221">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L222">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L223">                    }</span>
          +<span class="nc" id="L224">                    String plTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L226">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L227">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L228">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L229">                    }</span>
          +<span class="nc" id="L230">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L231">                    printAvailableCommands();</span>
          +<span class="nc" id="L232">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L233">                    break;</span>
          +                case 's':
          +                    //save elements, albums, playlists
          +<span class="nc" id="L236">                    theHub.saveElements();</span>
          +<span class="nc" id="L237">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L238">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L239">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L240">                    printAvailableCommands();</span>
          +<span class="nc" id="L241">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L242">                    break;</span>
          +                default:
          +
          +<span class="nc" id="L245">                    break;</span>
          +            }
          +        }
          +<span class="nc" id="L248">        scan.close();</span>
          +<span class="nc" id="L249">    }</span>
          +
          +    private static void printAvailableCommands() {
          +<span class="nc" id="L252">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L253">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L254">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L255">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L256">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L257">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L258">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L259">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L260">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L261">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L262">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L263">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L264">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          new file mode 100644
          index 0000000..c4e995d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          new file mode 100644
          index 0000000..189774f
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.html b/target/site/jacoco/musichub.util/XMLHandler.html
          new file mode 100644
          index 0000000..7aff8c8
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/XMLHandler.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.java.html b/target/site/jacoco/musichub.util/XMLHandler.java.html
          new file mode 100644
          index 0000000..b8ee27a
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/XMLHandler.java.html
          @@ -0,0 +1,75 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">XMLHandler.java</span></div><h1>XMLHandler.java</h1><pre class="source lang-java linenums">package musichub.util;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.NodeList;
          +import org.xml.sax.SAXException;
          +
          +import javax.xml.parsers.DocumentBuilder;
          +import javax.xml.parsers.DocumentBuilderFactory;
          +import javax.xml.parsers.ParserConfigurationException;
          +import javax.xml.transform.Transformer;
          +import javax.xml.transform.TransformerException;
          +import javax.xml.transform.TransformerFactory;
          +import javax.xml.transform.dom.DOMSource;
          +import javax.xml.transform.stream.StreamResult;
          +import java.io.File;
          +import java.io.IOException;
          +
          +
          +public class XMLHandler {
          +    TransformerFactory transformerFactory;
          +    Transformer transformer;
          +    DocumentBuilderFactory documentFactory;
          +    DocumentBuilder documentBuilder;
          +
          +<span class="nc" id="L26">    public XMLHandler() {</span>
          +        try {
          +<span class="nc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          +<span class="nc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          +<span class="nc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          +<span class="nc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
          +<span class="nc" id="L32">        } catch (TransformerException | ParserConfigurationException tfe) {</span>
          +<span class="nc" id="L33">            tfe.printStackTrace();</span>
          +<span class="nc" id="L34">        }</span>
          +<span class="nc" id="L35">    }</span>
          +
          +    public void createXMLFile(Document document, String filePath) {
          +        try {
          +            // create the xml file
          +            //transform the DOM Object to an XML File
          +<span class="nc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          +<span class="nc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
          +
          +            // If you use
          +            // StreamResult result = new StreamResult(System.out);
          +            // the output will be pushed to the standard output ...
          +            // You can use that for debugging
          +
          +<span class="nc" id="L49">            transformer.transform(domSource, streamResult);</span>
          +
          +<span class="nc" id="L51">        } catch (TransformerException tfe) {</span>
          +<span class="nc" id="L52">            tfe.printStackTrace();</span>
          +<span class="nc" id="L53">        }</span>
          +<span class="nc" id="L54">    }</span>
          +
          +    public Document createXMLDocument() {
          +<span class="nc" id="L57">        return documentBuilder.newDocument();</span>
          +    }
          +
          +    public NodeList parseXMLFile(String filePath) {
          +<span class="nc" id="L61">        NodeList elementNodes = null;</span>
          +        try {
          +<span class="nc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          +<span class="nc" id="L64">            Element root = document.getDocumentElement();</span>
          +
          +<span class="nc" id="L66">            elementNodes = root.getChildNodes();</span>
          +<span class="nc" id="L67">        } catch (SAXException | IOException e) {</span>
          +<span class="nc" id="L68">            e.printStackTrace();</span>
          +<span class="nc" id="L69">        }</span>
          +<span class="nc" id="L70">        return elementNodes;</span>
          +    }
          +
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          new file mode 100644
          index 0000000..1194ec1
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          new file mode 100644
          index 0000000..e6f6dba
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index 9f65573..16e8971 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          new file mode 100644
          index 0000000..4a19c26
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PathValidationTest" time="0.014" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492 2021-06-26T14-30-52_984-jvmRun1 surefire12207114920762145658tmp surefire_04118465738105299962tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testPathValidationClass" classname="musichub.business.PathValidationTest" time="0.007"/>
          +  <testcase name="testIsPathValid" classname="musichub.business.PathValidationTest" time="0.002"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.PathValidationTest.txt b/target/surefire-reports/musichub.business.PathValidationTest.txt
          new file mode 100644
          index 0000000..87f14cb
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.PathValidationTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.PathValidationTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.PathValidationTest
          diff --git a/target/test-classes/musichub/business/PathValidationTest.class b/target/test-classes/musichub/business/PathValidationTest.class
          new file mode 100644
          index 0000000..24d063b
          Binary files /dev/null and b/target/test-classes/musichub/business/PathValidationTest.class differ
          -- 
          cgit v1.2.3
          
          
          From 5dc7dea3ef53a385442c6bfd59054faa4b1d73d9 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com>
          Date: Sat, 26 Jun 2021 14:54:26 +0000
          Subject: Delete spoteezer.iml
          
          ---
           spoteezer.iml | 11 -----------
           1 file changed, 11 deletions(-)
           delete mode 100644 spoteezer.iml
          
          diff --git a/spoteezer.iml b/spoteezer.iml
          deleted file mode 100644
          index c90834f..0000000
          --- a/spoteezer.iml
          +++ /dev/null
          @@ -1,11 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<module type="JAVA_MODULE" version="4">
          -  <component name="NewModuleRootManager" inherit-compiler-output="true">
          -    <exclude-output />
          -    <content url="file://$MODULE_DIR$">
          -      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
          -    </content>
          -    <orderEntry type="inheritedJdk" />
          -    <orderEntry type="sourceFolder" forTests="false" />
          -  </component>
          -</module>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 8e72cabd763c8f6cfba63b9aaf9502ca15a3092f Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sat, 26 Jun 2021 21:01:16 +0200
          Subject: Moved PathValidation to the util package
          
          ---
           .../java/musichub/business/PathValidation.java     | 39 ----------------------
           src/main/java/musichub/main/Main.java              |  2 +-
           src/main/java/musichub/util/PathValidation.java    | 39 ++++++++++++++++++++++
           .../java/musichub/business/PathValidationTest.java | 26 ---------------
           .../java/musichub/util/PathValidationTest.java     | 26 +++++++++++++++
           5 files changed, 66 insertions(+), 66 deletions(-)
           delete mode 100644 src/main/java/musichub/business/PathValidation.java
           create mode 100644 src/main/java/musichub/util/PathValidation.java
           delete mode 100644 src/test/java/musichub/business/PathValidationTest.java
           create mode 100644 src/test/java/musichub/util/PathValidationTest.java
          
          diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/business/PathValidation.java
          deleted file mode 100644
          index b0281ba..0000000
          --- a/src/main/java/musichub/business/PathValidation.java
          +++ /dev/null
          @@ -1,39 +0,0 @@
          -package musichub.business;
          -
          -import java.nio.file.Files;
          -import java.nio.file.Path;
          -import java.nio.file.Paths;
          -
          -/**
          - * Class offering a path validation method.
          - *
          - * @author Aimeric ADJUTOR
          - * @version 1.0
          - */
          -
          -public final class PathValidation {
          -
          -    /**
          -     * Method that just throws an AssertionError if the class is called
          -     *
          -     * @throws AssertionError you can't instantiate this class
          -     * @author Aimeric ADJUTOR
          -     */
          -
          -    public PathValidation() {
          -        throw new AssertionError("You just can't instantiate this class.");
          -    }
          -
          -    /**
          -     * Method that checks the validity of a given path
          -     *
          -     * @param inputPath the path given by the user
          -     * @return a boolean
          -     */
          -
          -    public static boolean isPathValid(String inputPath) {
          -        Path path = Paths.get(inputPath);
          -        return Files.exists(path);
          -    }
          -
          -}
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index e2e4731..e06d056 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -9,7 +9,7 @@ import java.util.Iterator;
           import java.util.List;
           import java.util.Scanner;
           
          -import static musichub.business.PathValidation.isPathValid;
          +import static musichub.util.PathValidation.isPathValid;
           
           public class Main {
               public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          diff --git a/src/main/java/musichub/util/PathValidation.java b/src/main/java/musichub/util/PathValidation.java
          new file mode 100644
          index 0000000..df11388
          --- /dev/null
          +++ b/src/main/java/musichub/util/PathValidation.java
          @@ -0,0 +1,39 @@
          +package musichub.util;
          +
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.Paths;
          +
          +/**
          + * Class offering a path validation method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class PathValidation {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Aimeric ADJUTOR
          +     */
          +
          +    public PathValidation() {
          +        throw new AssertionError("You just can't instantiate this class.");
          +    }
          +
          +    /**
          +     * Method that checks the validity of a given path
          +     *
          +     * @param inputPath the path given by the user
          +     * @return a boolean
          +     */
          +
          +    public static boolean isPathValid(String inputPath) {
          +        Path path = Paths.get(inputPath);
          +        return Files.exists(path);
          +    }
          +
          +}
          \ No newline at end of file
          diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/business/PathValidationTest.java
          deleted file mode 100644
          index fffbdde..0000000
          --- a/src/test/java/musichub/business/PathValidationTest.java
          +++ /dev/null
          @@ -1,26 +0,0 @@
          -package musichub.business;
          -
          -
          -import org.junit.jupiter.api.Test;
          -
          -import static musichub.business.PathValidation.isPathValid;
          -import static org.junit.jupiter.api.Assertions.*;
          -
          -public class PathValidationTest {
          -    @Test
          -    void testIsPathValid() {
          -        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          -        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          -        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          -    }
          -
          -    @Test
          -    void testPathValidationClass() {
          -        try {
          -            PathValidation pathValidationClass = new PathValidation();
          -        } catch (Error ex) {
          -            assertTrue(ex instanceof AssertionError);
          -            assertEquals("You just can't instantiate this class.", ex.getMessage());
          -        }
          -    }
          -}
          diff --git a/src/test/java/musichub/util/PathValidationTest.java b/src/test/java/musichub/util/PathValidationTest.java
          new file mode 100644
          index 0000000..4c7a3d6
          --- /dev/null
          +++ b/src/test/java/musichub/util/PathValidationTest.java
          @@ -0,0 +1,26 @@
          +package musichub.util;
          +
          +
          +import org.junit.jupiter.api.Test;
          +
          +import static musichub.util.PathValidation.isPathValid;
          +import static org.junit.jupiter.api.Assertions.*;
          +
          +public class PathValidationTest {
          +    @Test
          +    void testIsPathValid() {
          +        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          +        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          +        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          +    }
          +
          +    @Test
          +    void testPathValidationClass() {
          +        try {
          +            PathValidation pathValidationClass = new PathValidation();
          +        } catch (Error ex) {
          +            assertTrue(ex instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", ex.getMessage());
          +        }
          +    }
          +}
          -- 
          cgit v1.2.3
          
          
          From 572a9591b7970180a18d1a59e9dab8920c363608 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sat, 26 Jun 2021 21:02:26 +0200
          Subject: Starting the log class.
          
          ---
           log/spoteezer.log                          |  0
           src/main/java/musichub/util/LogWriter.java | 27 +++++++++++++++++++++++++++
           2 files changed, 27 insertions(+)
           create mode 100644 log/spoteezer.log
           create mode 100644 src/main/java/musichub/util/LogWriter.java
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          new file mode 100644
          index 0000000..e69de29
          diff --git a/src/main/java/musichub/util/LogWriter.java b/src/main/java/musichub/util/LogWriter.java
          new file mode 100644
          index 0000000..46d602e
          --- /dev/null
          +++ b/src/main/java/musichub/util/LogWriter.java
          @@ -0,0 +1,27 @@
          +package musichub.util;
          +
          +/**
          + * Class offering a log writing method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class LogWriter {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Aimeric ADJUTOR
          +     */
          +
          +    public LogWriter() {
          +        throw new AssertionError("You just can't instantiate this class.");
          +    }
          +
          +    public static void write(String msg) {
          +
          +    }
          +
          +}
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 5d167b38848c3f69bbcfd952272ac39e48a9af93 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sat, 26 Jun 2021 21:54:26 +0200
          Subject: LogHandler now working fine.
          
          ---
           log/spoteezer.log                                  |   3 ++
           src/main/java/musichub/main/Main.java              |  12 ++++-
           src/main/java/musichub/util/LogHandler.java        |  56 +++++++++++++++++++++
           src/main/java/musichub/util/LogWriter.java         |  27 ----------
           .../classes/musichub/business/PathValidation.class | Bin 865 -> 0 bytes
           target/classes/musichub/main/Main.class            | Bin 10064 -> 10287 bytes
           .../musichub/business/PathValidationTest.class     | Bin 1190 -> 0 bytes
           7 files changed, 70 insertions(+), 28 deletions(-)
           create mode 100644 src/main/java/musichub/util/LogHandler.java
           delete mode 100644 src/main/java/musichub/util/LogWriter.java
           delete mode 100644 target/classes/musichub/business/PathValidation.class
           delete mode 100644 target/test-classes/musichub/business/PathValidationTest.class
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index e69de29..091f5e0 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -0,0 +1,3 @@
          +[yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
          +[2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
          +[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index e06d056..e7ca721 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -1,6 +1,7 @@
           package musichub.main;
           
           import musichub.business.*;
          +import musichub.util.LogHandler;
           
           import javax.sound.sampled.LineUnavailableException;
           import javax.sound.sampled.UnsupportedAudioFileException;
          @@ -93,7 +94,9 @@ public class Main {
                               System.out.println("Song content: ");
                               String content = scan.nextLine();
                               if (!isPathValid(content)) {
          -                        System.out.println("The music file was not found with the path you've provided.\nType h for available commands");
          +                        String logMsg = "The music file was not found with the path you've provided.";
          +                        LogHandler.write(logMsg, "WARNING"); //write a line in the log file
          +                        System.out.println(logMsg + "\nType h for available commands");
                                   choice = scan.nextLine();
                                   break;
                               }
          @@ -240,6 +243,12 @@ public class Main {
                               printAvailableCommands();
                               choice = scan.nextLine();
                               break;
          +                case 'o':
          +                    //consult the app logs
          +                    LogHandler.read();
          +                    System.out.println("Type h for available commands");
          +                    choice = scan.nextLine();
          +                    break;
                           default:
           
                               break;
          @@ -260,6 +269,7 @@ public class Main {
                   System.out.println("p: create a new playlist from existing songs and audio books");
                   System.out.println("-: delete an existing playlist");
                   System.out.println("s: save elements, albums, playlists");
          +        System.out.println("o: consult the app logs");
                   System.out.println("q: quit program");
               }
           }
          \ No newline at end of file
          diff --git a/src/main/java/musichub/util/LogHandler.java b/src/main/java/musichub/util/LogHandler.java
          new file mode 100644
          index 0000000..f6522f5
          --- /dev/null
          +++ b/src/main/java/musichub/util/LogHandler.java
          @@ -0,0 +1,56 @@
          +package musichub.util;
          +
          +import java.io.IOException;
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.StandardOpenOption;
          +import java.sql.Timestamp;
          +
          +/**
          + * Class offering a log writing method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class LogHandler {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Aimeric ADJUTOR
          +     */
          +
          +    public LogHandler() {
          +        throw new AssertionError("You just can't instantiate this class.");
          +    }
          +
          +    public static void write(String msg, String type) throws IOException {
          +
          +        Timestamp timestamp = new Timestamp(System.currentTimeMillis());
          +
          +        //Create the log using the given message
          +        String logMsg = "\n[" + timestamp + "] " + type + ": " + msg;
          +
          +        // Define the file name of the file
          +        Path fileName = Path.of("log/spoteezer.log");
          +
          +        // Write into the file
          +        Files.writeString(fileName, logMsg, StandardOpenOption.APPEND);
          +
          +
          +    }
          +
          +    public static void read() throws IOException {
          +        Path fileName = Path.of("log/spoteezer.log");
          +
          +        // Read the content of the file
          +        String file_content = Files.readString(fileName);
          +
          +        // Print the content inside the file
          +        System.out.println("\n" + file_content + "\n");
          +
          +    }
          +
          +}
          \ No newline at end of file
          diff --git a/src/main/java/musichub/util/LogWriter.java b/src/main/java/musichub/util/LogWriter.java
          deleted file mode 100644
          index 46d602e..0000000
          --- a/src/main/java/musichub/util/LogWriter.java
          +++ /dev/null
          @@ -1,27 +0,0 @@
          -package musichub.util;
          -
          -/**
          - * Class offering a log writing method.
          - *
          - * @author Aimeric ADJUTOR
          - * @version 1.0
          - */
          -
          -public final class LogWriter {
          -
          -    /**
          -     * Method that just throws an AssertionError if the class is called
          -     *
          -     * @throws AssertionError you can't instantiate this class
          -     * @author Aimeric ADJUTOR
          -     */
          -
          -    public LogWriter() {
          -        throw new AssertionError("You just can't instantiate this class.");
          -    }
          -
          -    public static void write(String msg) {
          -
          -    }
          -
          -}
          \ No newline at end of file
          diff --git a/target/classes/musichub/business/PathValidation.class b/target/classes/musichub/business/PathValidation.class
          deleted file mode 100644
          index 5e3ac15..0000000
          Binary files a/target/classes/musichub/business/PathValidation.class and /dev/null differ
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index f3d2052..632e576 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          diff --git a/target/test-classes/musichub/business/PathValidationTest.class b/target/test-classes/musichub/business/PathValidationTest.class
          deleted file mode 100644
          index 24d063b..0000000
          Binary files a/target/test-classes/musichub/business/PathValidationTest.class and /dev/null differ
          -- 
          cgit v1.2.3
          
          
          From 67ed18fe86ddfabe5f6c6c270273597799722a72 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sat, 26 Jun 2021 22:07:53 +0200
          Subject: Tests are ok fully covered.
          
          ---
           log/spoteezer.log                                  |   5 +-
           src/main/java/musichub/util/LogHandler.java        |  12 +
           src/test/java/musichub/util/LogHandlerTest.java    |  41 +++
           target/jacoco.exec                                 | Bin 80650 -> 27236 bytes
           target/maven-archiver/pom.properties               |   2 +-
           target/maven-javadoc-plugin-stale-data.txt         |  39 +-
           .../compile/default-compile/createdFiles.lst       |   3 +-
           .../compile/default-compile/inputFiles.lst         |   3 +-
           .../default-testCompile/createdFiles.lst           |   3 +-
           .../testCompile/default-testCompile/inputFiles.lst |   3 +-
           target/original-spoteezer-0.1.0.jar                | Bin 31900 -> 33244 bytes
           target/site/apidocs/allclasses-index.html          |  32 +-
           target/site/apidocs/allpackages-index.html         |   2 +-
           target/site/apidocs/help-doc.html                  |   2 +-
           target/site/apidocs/index-all.html                 |  31 +-
           target/site/apidocs/index.html                     |   2 +-
           target/site/apidocs/member-search-index.js         |   2 +-
           target/site/apidocs/musichub/business/Album.html   |   2 +-
           .../site/apidocs/musichub/business/AudioBook.html  |   2 +-
           .../apidocs/musichub/business/AudioElement.html    |   2 +-
           .../site/apidocs/musichub/business/Category.html   |   2 +-
           target/site/apidocs/musichub/business/Genre.html   |   2 +-
           .../site/apidocs/musichub/business/Language.html   |   2 +-
           .../site/apidocs/musichub/business/MusicHub.html   |   2 +-
           .../musichub/business/NoAlbumFoundException.html   |   2 +-
           .../musichub/business/NoElementFoundException.html |   2 +-
           .../business/NoPlayListFoundException.html         |   2 +-
           .../apidocs/musichub/business/PathValidation.html  | 189 ----------
           .../site/apidocs/musichub/business/PlayList.html   |   2 +-
           target/site/apidocs/musichub/business/Song.html    |   2 +-
           .../apidocs/musichub/business/class-use/Album.html |   2 +-
           .../musichub/business/class-use/AudioBook.html     |   2 +-
           .../musichub/business/class-use/AudioElement.html  |   2 +-
           .../musichub/business/class-use/Category.html      |   2 +-
           .../apidocs/musichub/business/class-use/Genre.html |   2 +-
           .../musichub/business/class-use/Language.html      |   2 +-
           .../musichub/business/class-use/MusicHub.html      |   2 +-
           .../business/class-use/NoAlbumFoundException.html  |   2 +-
           .../class-use/NoElementFoundException.html         |   2 +-
           .../class-use/NoPlayListFoundException.html        |   2 +-
           .../business/class-use/PathValidation.html         |  65 ----
           .../musichub/business/class-use/PlayList.html      |   2 +-
           .../apidocs/musichub/business/class-use/Song.html  |   2 +-
           .../apidocs/musichub/business/package-summary.html |  12 +-
           .../apidocs/musichub/business/package-tree.html    |   3 +-
           .../apidocs/musichub/business/package-use.html     |   2 +-
           target/site/apidocs/musichub/main/Main.html        |   2 +-
           .../site/apidocs/musichub/main/class-use/Main.html |   2 +-
           .../apidocs/musichub/main/package-summary.html     |   2 +-
           .../site/apidocs/musichub/main/package-tree.html   |   2 +-
           target/site/apidocs/musichub/main/package-use.html |   2 +-
           target/site/apidocs/musichub/util/XMLHandler.html  |   2 +-
           .../musichub/util/class-use/XMLHandler.html        |   2 +-
           .../apidocs/musichub/util/package-summary.html     |  10 +-
           .../site/apidocs/musichub/util/package-tree.html   |   4 +-
           target/site/apidocs/musichub/util/package-use.html |   2 +-
           target/site/apidocs/overview-summary.html          |   2 +-
           target/site/apidocs/overview-tree.html             |   5 +-
           target/site/apidocs/serialized-form.html           |   2 +-
           target/site/apidocs/type-search-index.js           |   2 +-
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   5 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/PathValidation.html   |   1 -
           .../musichub.business/PathValidation.java.html     |  39 --
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.html         |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 410 +++++++++++----------
           target/site/jacoco/musichub.main/index.html        |   2 +-
           target/site/jacoco/musichub.main/index.source.html |   2 +-
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           target/spoteezer-0.1.0.jar                         | Bin 367786 -> 369146 bytes
           .../TEST-musichub.business.PathValidationTest.xml  |  60 ---
           .../musichub.business.PathValidationTest.txt       |   4 -
           77 files changed, 412 insertions(+), 669 deletions(-)
           create mode 100644 src/test/java/musichub/util/LogHandlerTest.java
           delete mode 100644 target/site/apidocs/musichub/business/PathValidation.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/PathValidation.html
           delete mode 100644 target/site/jacoco/musichub.business/PathValidation.html
           delete mode 100644 target/site/jacoco/musichub.business/PathValidation.java.html
           delete mode 100644 target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
           delete mode 100644 target/surefire-reports/musichub.business.PathValidationTest.txt
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 091f5e0..834e29f 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,3 +1,6 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
          -[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          \ No newline at end of file
          +[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          +[2021-06-26 22:05:28.614] INFO: JUnit test
          +[2021-06-26 22:06:26.191] INFO: JUnit test
          +[2021-06-26 22:06:38.453] INFO: JUnit test
          \ No newline at end of file
          diff --git a/src/main/java/musichub/util/LogHandler.java b/src/main/java/musichub/util/LogHandler.java
          index f6522f5..988b149 100644
          --- a/src/main/java/musichub/util/LogHandler.java
          +++ b/src/main/java/musichub/util/LogHandler.java
          @@ -26,6 +26,13 @@ public final class LogHandler {
                   throw new AssertionError("You just can't instantiate this class.");
               }
           
          +    /**
          +     * Method that writes a log message to spoteezer.log
          +     *
          +     * @param msg  the message to write
          +     * @param type the type of log
          +     * @throws IOException if the file's not there
          +     */
               public static void write(String msg, String type) throws IOException {
           
                   Timestamp timestamp = new Timestamp(System.currentTimeMillis());
          @@ -42,6 +49,11 @@ public final class LogHandler {
           
               }
           
          +    /**
          +     * Method that prints the content of spoteezer.log
          +     *
          +     * @throws IOException if the file's not there
          +     */
               public static void read() throws IOException {
                   Path fileName = Path.of("log/spoteezer.log");
           
          diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
          new file mode 100644
          index 0000000..17b47f6
          --- /dev/null
          +++ b/src/test/java/musichub/util/LogHandlerTest.java
          @@ -0,0 +1,41 @@
          +package musichub.util;
          +
          +
          +import org.junit.jupiter.api.Test;
          +
          +import java.io.IOException;
          +
          +import static musichub.util.LogHandler.read;
          +import static musichub.util.LogHandler.write;
          +import static org.junit.jupiter.api.Assertions.assertEquals;
          +import static org.junit.jupiter.api.Assertions.assertTrue;
          +
          +public class LogHandlerTest {
          +    @Test
          +    void testWrite() {
          +        try {
          +            write("JUnit test", "INFO");
          +        } catch (IOException e) {
          +            e.printStackTrace();
          +        }
          +    }
          +
          +    @Test
          +    void testRead() {
          +        try {
          +            read();
          +        } catch (IOException e) {
          +            e.printStackTrace();
          +        }
          +    }
          +
          +    @Test
          +    void testLogHandlerClass() {
          +        try {
          +            LogHandler logHandlerClass = new LogHandler();
          +        } catch (Error ex) {
          +            assertTrue(ex instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", ex.getMessage());
          +        }
          +    }
          +}
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index a11f908..5deaa95 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          index 1d6eb92..9bf0389 100644
          --- a/target/maven-archiver/pom.properties
          +++ b/target/maven-archiver/pom.properties
          @@ -1,5 +1,5 @@
           #Generated by Maven
          -#Sat Jun 26 14:29:09 CEST 2021
          +#Sat Jun 26 22:06:26 CEST 2021
           groupId=esiea.softwareengineering
           artifactId=spoteezer
           version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          index 211d1c0..e5ff7a2 100644
          --- a/target/maven-javadoc-plugin-stale-data.txt
          +++ b/target/maven-javadoc-plugin-stale-data.txt
          @@ -34,10 +34,11 @@
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PathValidation.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
           C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          @@ -45,21 +46,21 @@ C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\ju
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
           C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
           C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624710556861
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624710556864
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624710556758
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624710556888
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624710556884
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624710556844
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624710556910
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624710556868
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624710556865
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624710556885
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624710556841
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624710556866
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624710556892
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624710556895
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624710556785
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624710556891
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624710556869
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624710556867
          \ No newline at end of file
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624737994231
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624737994233
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624737994134
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624737994257
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624737994253
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624737994214
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624737994280
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624737994238
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624737994234
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624737994255
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624737994211
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624737994235
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624737994260
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624737994263
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624737994156
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624737994259
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624737994239
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624737994236
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          index 26c13ed..acee52e 100644
          --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          @@ -1,6 +1,6 @@
           musichub\util\XMLHandler.class
          -musichub\business\PathValidation.class
           musichub\business\NoElementFoundException.class
          +musichub\util\LogHandler.class
           musichub\business\Language.class
           musichub\business\PlayList.class
           musichub\main\Main.class
          @@ -11,6 +11,7 @@ musichub\business\SortByAuthor.class
           musichub\business\NoAlbumFoundException.class
           musichub\business\AudioBook.class
           musichub\business\Song.class
          +musichub\util\PathValidation.class
           musichub\business\Genre.class
           musichub\business\NoPlayListFoundException.class
           musichub\business\Category.class
          diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          index 93f6593..a533945 100644
          --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          @@ -5,9 +5,10 @@ C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\main\Main.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioBook.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java
          +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\LogHandler.java
          +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\PathValidation.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java
          -C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PathValidation.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 649a939..13c2c99 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1 +1,2 @@
          -musichub\business\PathValidationTest.class
          +musichub\util\PathValidationTest.class
          +musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 9b5d3f0..1b9eea3 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1 +1,2 @@
          -C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PathValidationTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          index fbeb8a5..e14293d 100644
          Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          index 767b8ab..e4d9f65 100644
          --- a/target/site/apidocs/allclasses-index.html
          +++ b/target/site/apidocs/allclasses-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>All Classes (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -76,26 +76,30 @@ loadScripts(document, 'script');</script>
           <div class="col-last even-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
           <div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></div>
           <div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
           <div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
           <div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
           <div class="block">Class offering a path validation method.</div>
           </div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
           <div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
           </div>
           </div>
           </div>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          index daffbfc..1670da5 100644
          --- a/target/site/apidocs/allpackages-index.html
          +++ b/target/site/apidocs/allpackages-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>All Packages (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          index 084eeb0..4d85c2b 100644
          --- a/target/site/apidocs/help-doc.html
          +++ b/target/site/apidocs/help-doc.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>API Help (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          index bb26bd1..0df0f51 100644
          --- a/target/site/apidocs/index-all.html
          +++ b/target/site/apidocs/index-all.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Index (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -54,7 +54,7 @@ loadScripts(document, 'script');</script>
           <div class="header">
           <h1>Index</h1>
           </div>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
           <h2 class="title" id="I:A">A</h2>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addAlbum(musichub.business.Album)">addAlbum(Album)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          @@ -202,7 +202,7 @@ loadScripts(document, 'script');</script>
           </dl>
           <h2 class="title" id="I:I">I</h2>
           <dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></dt>
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
           <dd>
           <div class="block">Method that checks the validity of a given path</div>
           </dd>
          @@ -220,6 +220,14 @@ loadScripts(document, 'script');</script>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#lengthInSeconds">lengthInSeconds</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
           <dd>&nbsp;</dd>
          +<dt><a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>
          +<div class="block">Class offering a log writing method.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#%3Cinit%3E()">LogHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</dd>
           </dl>
           <h2 class="title" id="I:M">M</h2>
           <dl class="index">
          @@ -263,11 +271,11 @@ loadScripts(document, 'script');</script>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#parseXMLFile(java.lang.String)">parseXMLFile(String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
           <dd>&nbsp;</dd>
          -<dt><a href="musichub/business/PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dt><a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
           <dd>
           <div class="block">Class offering a path validation method.</div>
           </dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></dt>
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
           <dd>
           <div class="block">Method that just throws an AssertionError if the class is called</div>
           </dd>
          @@ -290,6 +298,10 @@ loadScripts(document, 'script');</script>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/business/Genre.html#RAP">RAP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
           <dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#read()">read()</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that prints the content of spoteezer.log</div>
          +</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Genre.html#ROCK">ROCK</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
           <dd>&nbsp;</dd>
           </dl>
          @@ -368,6 +380,13 @@ the order they are declared.</div>
           the order they are declared.</div>
           </dd>
           </dl>
          +<h2 class="title" id="I:W">W</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#write(java.lang.String,java.lang.String)">write(String, String)</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that writes a log message to spoteezer.log</div>
          +</dd>
          +</dl>
           <h2 class="title" id="I:X">X</h2>
           <dl class="index">
           <dt><a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          @@ -380,7 +399,7 @@ the order they are declared.</div>
           <dt><span class="member-name-link"><a href="musichub/business/Category.html#YOUTH">YOUTH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
           <dd>&nbsp;</dd>
           </dl>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
           <footer role="contentinfo">
           <hr>
           <p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          index a865d2c..e5010d9 100644
          --- a/target/site/apidocs/index.html
          +++ b/target/site/apidocs/index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Overview (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          index 7c431d3..f583be9 100644
          --- a/target/site/apidocs/member-search-index.js
          +++ b/target/site/apidocs/member-search-index.js
          @@ -1 +1 @@
          -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          index 824d2f6..fd0beaa 100644
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ b/target/site/apidocs/musichub/business/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          index f171946..211e1b0 100644
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          index f2ecb62..fe6ad42 100644
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          index 6fa6ed1..4266493 100644
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ b/target/site/apidocs/musichub/business/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          index 404433a..96e2762 100644
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ b/target/site/apidocs/musichub/business/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          index 7c71eef..6bebff8 100644
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ b/target/site/apidocs/musichub/business/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          index a96d88e..4af462c 100644
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          index 51defb8..16143e3 100644
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          index b935b6c..3a04446 100644
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          index 56d2aaf..4a9413a 100644
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/PathValidation.html b/target/site/apidocs/musichub/business/PathValidation.html
          deleted file mode 100644
          index 9a7945c..0000000
          --- a/target/site/apidocs/musichub/business/PathValidation.html
          +++ /dev/null
          @@ -1,189 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          -<title>PathValidation (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: PathValidation">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/PathValidation.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class PathValidation" class="title">Class PathValidation</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.PathValidation</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">PathValidation</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -<div class="block">Class offering a path validation method.</div>
          -<dl class="notes">
          -<dt>Version:</dt>
          -<dd>1.0</dd>
          -<dt>Author:</dt>
          -<dd>Aimeric ADJUTOR</dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">PathValidation</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#isPathValid(java.lang.String)">isPathValid</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Method that checks the validity of a given path</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>PathValidation</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PathValidation</span>()</div>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">AssertionError</a></code> - you can't instantiate this class</dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="isPathValid(java.lang.String)">
          -<h3>isPathValid</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPathValid</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</span></div>
          -<div class="block">Method that checks the validity of a given path</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>inputPath</code> - the path given by the user</dd>
          -<dt>Returns:</dt>
          -<dd>a boolean</dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          index 533a2ad..a1ccc9b 100644
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ b/target/site/apidocs/musichub/business/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          index aa13772..82582dd 100644
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ b/target/site/apidocs/musichub/business/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          index a799c69..097e8c7 100644
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ b/target/site/apidocs/musichub/business/class-use/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          index 6054d2d..a109ca3 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          index ab20cf8..1249775 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          index d0b7007..022df3a 100644
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ b/target/site/apidocs/musichub/business/class-use/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          index 94c178d..a9cd613 100644
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ b/target/site/apidocs/musichub/business/class-use/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          index 6df04ff..86ed23a 100644
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ b/target/site/apidocs/musichub/business/class-use/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          index 2f00178..683a7e5 100644
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          index c11e6be..3d190ec 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          index 70bbffa..07bc200 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          index 97c5c34..0a7a442 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/PathValidation.html b/target/site/apidocs/musichub/business/class-use/PathValidation.html
          deleted file mode 100644
          index b8a4f5a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/PathValidation.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          -<title>Uses of Class musichub.business.PathValidation (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: PathValidation">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../PathValidation.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.PathValidation" class="title">Uses of Class<br>musichub.business.PathValidation</h1>
          -</div>
          -No usage of musichub.business.PathValidation</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          index 7d039a5..151e091 100644
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          index 853c506..f7caf68 100644
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ b/target/site/apidocs/musichub/business/class-use/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          index 57c22af..ab9bef3 100644
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ b/target/site/apidocs/musichub/business/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -71,14 +71,10 @@ loadScripts(document, 'script');</script>
           <div class="col-last even-row-color">&nbsp;</div>
           <div class="col-first odd-row-color"><a href="MusicHub.html" title="class in musichub.business">MusicHub</a></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="PathValidation.html" title="class in musichub.business">PathValidation</a></div>
          -<div class="col-last even-row-color">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first odd-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-first even-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
           </div>
           </li>
           <li>
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          index 31cbe13..e1a5f5b 100644
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ b/target/site/apidocs/musichub/business/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -71,7 +71,6 @@ loadScripts(document, 'script');</script>
           </ul>
           </li>
           <li class="circle">musichub.business.<a href="MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.business.<a href="PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
           <ul>
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          index c75e960..89e8d56 100644
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ b/target/site/apidocs/musichub/business/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          index d060888..2a6bcf8 100644
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ b/target/site/apidocs/musichub/main/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          index 2ea6da4..819433d 100644
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ b/target/site/apidocs/musichub/main/class-use/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          index 87c57b3..afcd6ad 100644
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ b/target/site/apidocs/musichub/main/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          index d6354f0..393b386 100644
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ b/target/site/apidocs/musichub/main/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          index 68e7ada..0747159 100644
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ b/target/site/apidocs/musichub/main/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          index 52734c9..53ffdbe 100644
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          index 04b02a0..8c6ad08 100644
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          index 72ff644..24257be 100644
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ b/target/site/apidocs/musichub/util/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -63,6 +63,14 @@ loadScripts(document, 'script');</script>
           <div class="summary-table two-column-summary">
           <div class="table-header col-first">Class</div>
           <div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color"><a href="PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Class offering a path validation method.</div>
          +</div>
           <div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
           </div>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          index 7817d93..ace19b6 100644
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ b/target/site/apidocs/musichub/util/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -63,6 +63,8 @@ loadScripts(document, 'script');</script>
           <ul>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
           <ul>
          +<li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          +<li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
           </ul>
           </li>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          index afe8c6d..02a3fc7 100644
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ b/target/site/apidocs/musichub/util/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          index 1961838..370d2cb 100644
          --- a/target/site/apidocs/overview-summary.html
          +++ b/target/site/apidocs/overview-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>spoteezer 0.1.0 API</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          index 69d606a..943af3e 100644
          --- a/target/site/apidocs/overview-tree.html
          +++ b/target/site/apidocs/overview-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -72,9 +72,10 @@ loadScripts(document, 'script');</script>
           <li class="circle">musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
           </ul>
           </li>
          +<li class="circle">musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
           <li class="circle">musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
           <li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a></li>
          +<li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
           <ul>
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          index 011c84f..781fdeb 100644
          --- a/target/site/apidocs/serialized-form.html
          +++ b/target/site/apidocs/serialized-form.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Serialized Form (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          index be00fa7..26dac6f 100644
          --- a/target/site/apidocs/type-search-index.js
          +++ b/target/site/apidocs/type-search-index.js
          @@ -1 +1 @@
          -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index f0faf92..b800f3f 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 723 of 2 740</td><td class="ctr2">0 %</td><td class="bar">209 of 209</td><td class="ctr2">0 %</td><td class="ctr1">205</td><td class="ctr2">207</td><td class="ctr1">723</td><td class="ctr2">727</td><td class="ctr1">88</td><td class="ctr2">90</td><td class="ctr1">17</td><td class="ctr2">18</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="119" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">174</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">503</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">83</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">16</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="33" height="10" title="588" alt="588"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="28" height="10" title="40" alt="40"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">29</td><td class="ctr2" id="g1">29</td><td class="ctr1" id="h1">199</td><td class="ctr2" id="i1">199</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">4</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 740 of 2 803</td><td class="ctr2">2 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">206</td><td class="ctr2">211</td><td class="ctr1">730</td><td class="ctr2">745</td><td class="ctr1">88</td><td class="ctr2">93</td><td class="ctr1">17</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/><img src="jacoco-resources/greenbar.gif" width="3" height="10" title="63" alt="63"/></td><td class="ctr2" id="c0">46 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 478feda..4058e1f 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-e57e2e00</span></td><td>26 juin 2021, 14:29:08</td><td>26 juin 2021, 14:29:09</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-3e358c1a</span></td><td>26 juin 2021, 14:29:30</td><td>26 juin 2021, 14:29:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-56f46767</span></td><td>26 juin 2021, 14:29:49</td><td>26 juin 2021, 14:29:49</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-e88c304d</span></td><td>26 juin 2021, 14:30:30</td><td>26 juin 2021, 14:30:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-20d8781c</span></td><td>26 juin 2021, 14:30:42</td><td>26 juin 2021, 14:30:43</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-442c10a6</span></td><td>26 juin 2021, 14:30:53</td><td>26 juin 2021, 14:30:53</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="musichub.business/PathValidation.html" class="el_class">musichub.business.PathValidation</a></td><td><code>23fa11bc9f27a597</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>c2c5ebe52507fc9e</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>325f5b44374bcaeb</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>4c7ade2bf38c6e74</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>192d10ac364dc41c</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.org.apache.maven.shared.utils.StringUtils</span></td><td><code>336ef03300f29635</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ClassNameStackTraceFilter</span></td><td><code>2e0e75f8104a222a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.PojoStackTraceWriter</span></td><td><code>cdfe959904c6726b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SafeThrowable</span></td><td><code>e61429531d0f0c1c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SmartStackTraceParser</span></td><td><code>05e423188a7bbb31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.BlacklistedExceptions</span></td><td><code>73365157bacc50af</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ExceptionUtils</span></td><td><code>0125033b30a9585f</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">org.opentest4j.AssertionFailedError</span></td><td><code>2c5f69ceb24e9128</code></td></tr><tr><td><span class="el_class">org.opentest4j.ValueWrapper</span></td><td><code>7d0d1c90c1c4c4b3</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-be4b9e12</span></td><td>26 juin 2021, 22:06:25</td><td>26 juin 2021, 22:06:26</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-4db7b834</span></td><td>26 juin 2021, 22:06:38</td><td>26 juin 2021, 22:06:38</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>727806a24a38b49a</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>d7b83ca1e47cacd7</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>b026f96f38b030a9</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 9aff09d..6466855 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -1,7 +1,8 @@
           GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
          +spoteezer,musichub.util,PathValidation,0,17,0,0,0,4,0,2,0,2
          +spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
           spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
          -spoteezer,musichub.business,PathValidation,0,17,0,0,0,4,0,2,0,2
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          @@ -16,4 +17,4 @@ spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,56,0,0,0,6,0,3,0,3,0
           spoteezer,musichub.business,AudioElement,266,0,11,0,72,0,16,0,9,0
          -spoteezer,musichub.main,Main,588,0,40,0,199,0,29,0,3,0
          +spoteezer,musichub.main,Main,605,0,41,0,206,0,30,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 5a939ee..2e46b55 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-e57e2e00" start="1624710548706" dump="1624710549076"/><sessioninfo id="DESKTOP-M4INQND-3e358c1a" start="1624710570201" dump="1624710570575"/><sessioninfo id="DESKTOP-M4INQND-56f46767" start="1624710589444" dump="1624710589830"/><sessioninfo id="DESKTOP-M4INQND-e88c304d" start="1624710630581" dump="1624710630973"/><sessioninfo id="DESKTOP-M4INQND-20d8781c" start="1624710642738" dump="1624710643144"/><sessioninfo id="DESKTOP-M4INQND-442c10a6" start="1624710653198" dump="1624710653579"/><package name="musichub/util"><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="22"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="34"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="PathValidation.java"><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="5" mb="0" cb="0"/><line nr="34" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="17"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="4"/><counter type="COMPLEXITY" missed="172" covered="2"/><counter type="METHOD" missed="81" covered="2"/><counter type="CLASS" missed="15" covered="1"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="14"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="548" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="185" covered="0"/><counter type="COMPLEXITY" missed="27" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="252"><counter type="INSTRUCTION" missed="37" covered="0"/><counter type="LINE" missed="13" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="14" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="2" cb="0"/><line nr="29" mi="4" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="14" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="3" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="3" ci="0" mb="0" cb="0"/><line nr="57" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="3" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="2" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="101" mi="9" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="105" mi="10" ci="0" mb="2" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="8" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="10" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="2" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="7" ci="0" mb="2" cb="0"/><line nr="138" mi="1" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="2" cb="0"/><line nr="144" mi="4" ci="0" mb="0" cb="0"/><line nr="145" mi="4" ci="0" mb="0" cb="0"/><line nr="146" mi="1" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="4" ci="0" mb="0" cb="0"/><line nr="150" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="154" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="4" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="10" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="10" ci="0" mb="2" cb="0"/><line nr="177" mi="1" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="1" ci="0" mb="0" cb="0"/><line nr="182" mi="3" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="2" cb="0"/><line nr="186" mi="4" ci="0" mb="0" cb="0"/><line nr="187" mi="4" ci="0" mb="0" cb="0"/><line nr="188" mi="1" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="5" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="2" cb="0"/><line nr="197" mi="4" ci="0" mb="0" cb="0"/><line nr="198" mi="4" ci="0" mb="0" cb="0"/><line nr="199" mi="1" ci="0" mb="0" cb="0"/><line nr="200" mi="5" ci="0" mb="2" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="4" ci="0" mb="0" cb="0"/><line nr="207" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="3" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="214" mi="3" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="4" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="231" mi="1" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="2" ci="0" mb="0" cb="0"/><line nr="237" mi="2" ci="0" mb="0" cb="0"/><line nr="238" mi="2" ci="0" mb="0" cb="0"/><line nr="239" mi="3" ci="0" mb="0" cb="0"/><line nr="240" mi="1" ci="0" mb="0" cb="0"/><line nr="241" mi="3" ci="0" mb="0" cb="0"/><line nr="242" mi="1" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="2" ci="0" mb="0" cb="0"/><line nr="249" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="3" ci="0" mb="0" cb="0"/><line nr="253" mi="3" ci="0" mb="0" cb="0"/><line nr="254" mi="3" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="0" cb="0"/><line nr="257" mi="3" ci="0" mb="0" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="3" ci="0" mb="0" cb="0"/><line nr="260" mi="3" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2723" covered="17"/><counter type="BRANCH" missed="209" covered="0"/><counter type="LINE" missed="723" covered="4"/><counter type="COMPLEXITY" missed="205" covered="2"/><counter type="METHOD" missed="88" covered="2"/><counter type="CLASS" missed="17" covered="1"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-be4b9e12" start="1624737985817" dump="1624737986228"/><sessioninfo id="DESKTOP-M4INQND-4db7b834" start="1624737998088" dump="1624737998495"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="37"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="56"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="37" mi="0" ci="5" mb="0" cb="0"/><line nr="40" mi="0" ci="5" mb="0" cb="0"/><line nr="43" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="10" mb="0" cb="0"/><line nr="49" mi="0" ci="1" mb="0" cb="0"/><line nr="56" mi="0" ci="5" mb="0" cb="0"/><line nr="59" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="63"/><counter type="LINE" missed="25" covered="15"/><counter type="COMPLEXITY" missed="4" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="1" covered="2"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2740" covered="63"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="730" covered="15"/><counter type="COMPLEXITY" missed="206" covered="5"/><counter type="METHOD" missed="88" covered="5"/><counter type="CLASS" missed="17" covered="2"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.html b/target/site/jacoco/musichub.business/PathValidation.html
          deleted file mode 100644
          index 3b58bb2..0000000
          --- a/target/site/jacoco/musichub.business/PathValidation.html
          +++ /dev/null
          @@ -1 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L34" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L22" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.java.html b/target/site/jacoco/musichub.business/PathValidation.java.html
          deleted file mode 100644
          index 4d22953..0000000
          --- a/target/site/jacoco/musichub.business/PathValidation.java.html
          +++ /dev/null
          @@ -1,39 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PathValidation.java</span></div><h1>PathValidation.java</h1><pre class="source lang-java linenums">package musichub.business;
          -
          -import java.nio.file.Files;
          -import java.nio.file.Path;
          -import java.nio.file.Paths;
          -
          -/**
          - * Class offering a path validation method.
          - *
          - * @author Aimeric ADJUTOR
          - * @version 1.0
          - */
          -
          -public final class PathValidation {
          -
          -    /**
          -     * Method that just throws an AssertionError if the class is called
          -     * @author Aimeric ADJUTOR
          -     * @throws AssertionError you can't instantiate this class
          -     */
          -
          -<span class="fc" id="L22">    public PathValidation() {</span>
          -<span class="fc" id="L23">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          -    }
          -
          -    /**
          -     * Method that checks the validity of a given path
          -     *
          -     * @param inputPath the path given by the user
          -     * @return a boolean
          -     */
          -
          -    public static boolean isPathValid(String inputPath) {
          -<span class="fc" id="L34">        Path path = Paths.get(inputPath);</span>
          -<span class="fc" id="L35">        return Files.exists(path);</span>
          -    }
          -
          -}
          -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 178e60b..421752c 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a15"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c15">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k15">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a10"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g12">2</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k12">2</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 45a5b59..13ddd53 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a10"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          index de45b84..ea5f0da 100644
          --- a/target/site/jacoco/musichub.main/Main.html
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L17" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="548" alt="548"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">27</td><td class="ctr2" id="g0">27</td><td class="ctr1" id="h0">185</td><td class="ctr2" id="i0">185</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L252" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L14" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L18" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="562" alt="562"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">28</td><td class="ctr2" id="g0">28</td><td class="ctr1" id="h0">191</td><td class="ctr2" id="i0">191</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L261" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="40" alt="40"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L15" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index df39af0..7ec6a41 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -1,6 +1,7 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.main</a> &gt; <span class="el_source">Main.java</span></div><h1>Main.java</h1><pre class="source lang-java linenums">package musichub.main;
           
           import musichub.business.*;
          +import musichub.util.LogHandler;
           
           import javax.sound.sampled.LineUnavailableException;
           import javax.sound.sampled.UnsupportedAudioFileException;
          @@ -9,258 +10,267 @@ import java.util.Iterator;
           import java.util.List;
           import java.util.Scanner;
           
          -import static musichub.business.PathValidation.isPathValid;
          +import static musichub.util.PathValidation.isPathValid;
           
          -<span class="nc" id="L14">public class Main {</span>
          +<span class="nc" id="L15">public class Main {</span>
               public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
           
          -<span class="nc" id="L17">        MusicHub theHub = new MusicHub();</span>
          +<span class="nc" id="L18">        MusicHub theHub = new MusicHub();</span>
           
          -<span class="nc" id="L19">        System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L20">        System.out.println(&quot;Type h for available commands&quot;);</span>
           
           
          -<span class="nc" id="L22">        Scanner scan = new Scanner(System.in);</span>
          -<span class="nc" id="L23">        String choice = scan.nextLine();</span>
          +<span class="nc" id="L23">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L24">        String choice = scan.nextLine();</span>
           
                   String albumTitle;
           
          -<span class="nc bnc" id="L27" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          +<span class="nc bnc" id="L28" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
           
          -<span class="nc bnc" id="L29" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -<span class="nc bnc" id="L30" title="All 14 branches missed.">            switch (choice.charAt(0)) {</span>
          +<span class="nc bnc" id="L30" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +<span class="nc bnc" id="L31" title="All 15 branches missed.">            switch (choice.charAt(0)) {</span>
                           case 'q': //added the option directly in the switch instead of the loop
          -<span class="nc" id="L32">                    System.exit(0);</span>
          +<span class="nc" id="L33">                    System.exit(0);</span>
                           case 'h':
          -<span class="nc" id="L34">                    printAvailableCommands();</span>
          -<span class="nc" id="L35">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L36">                    break;</span>
          +<span class="nc" id="L35">                    printAvailableCommands();</span>
          +<span class="nc" id="L36">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L37">                    break;</span>
                           case 't':
                               //album titles, ordered by date
          -<span class="nc" id="L39">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -<span class="nc" id="L40">                    printAvailableCommands();</span>
          -<span class="nc" id="L41">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L42">                    break;</span>
          +<span class="nc" id="L40">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L41">                    printAvailableCommands();</span>
          +<span class="nc" id="L42">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L43">                    break;</span>
                           case 'g':
                               //songs of an album, sorted by genre
          -<span class="nc" id="L45">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L46">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L46">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L47">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
           
          -<span class="nc" id="L48">                    albumTitle = scan.nextLine();</span>
          +<span class="nc" id="L49">                    albumTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L50">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          -<span class="nc" id="L51">                        System.out.println(songs);</span>
          -<span class="nc" id="L52">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L53">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L54">                    }</span>
          -<span class="nc" id="L55">                    printAvailableCommands();</span>
          -<span class="nc" id="L56">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L57">                    break;</span>
          +<span class="nc" id="L51">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L52">                        System.out.println(songs);</span>
          +<span class="nc" id="L53">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L54">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L55">                    }</span>
          +<span class="nc" id="L56">                    printAvailableCommands();</span>
          +<span class="nc" id="L57">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L58">                    break;</span>
                           case 'd':
                               //songs of an album
          -<span class="nc" id="L60">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L61">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L61">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L62">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
           
          -<span class="nc" id="L63">                    albumTitle = scan.nextLine();</span>
          +<span class="nc" id="L64">                    albumTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L65">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L66">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L67">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L68">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L69">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L70">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L71">                    }</span>
          -<span class="nc" id="L72">                    printAvailableCommands();</span>
          -<span class="nc" id="L73">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L74">                    break;</span>
          +<span class="nc" id="L66">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L67">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L68">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L69">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L70">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L71">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L72">                    }</span>
          +<span class="nc" id="L73">                    printAvailableCommands();</span>
          +<span class="nc" id="L74">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L75">                    break;</span>
                           case 'u':
                               //audiobooks ordered by author
          -<span class="nc" id="L77">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L78">                    printAvailableCommands();</span>
          -<span class="nc" id="L79">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L80">                    break;</span>
          +<span class="nc" id="L78">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L79">                    printAvailableCommands();</span>
          +<span class="nc" id="L80">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L81">                    break;</span>
                           case 'c':
                               // add a new song
          -<span class="nc" id="L83">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L84">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L85">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L86">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L87">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L88">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L89">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L90">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -<span class="nc" id="L91">                    int length = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L84">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L85">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L86">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L87">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L88">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L89">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L90">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L91">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L92">                    int length = Integer.parseInt(scan.nextLine());</span>
           
          -<span class="nc" id="L93">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc" id="L94">                    String content = scan.nextLine();</span>
          -<span class="nc bnc" id="L95" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L96">                        System.out.println(&quot;The music file was not found with the path you've provided.\nType h for available commands&quot;);</span>
          -<span class="nc" id="L97">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L98">                        break;</span>
          +<span class="nc" id="L94">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L95">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L96" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided.&quot;;</span>
          +<span class="nc" id="L98">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          +<span class="nc" id="L99">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          +<span class="nc" id="L100">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L101">                        break;</span>
                               }
           
          -<span class="nc" id="L101">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L102">                    theHub.addElement(s);</span>
          -<span class="nc" id="L103">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc" id="L104">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc bnc" id="L105" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L106">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L107">                    printAvailableCommands();</span>
          -<span class="nc" id="L108">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L109">                    break;</span>
          +<span class="nc" id="L104">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L105">                    theHub.addElement(s);</span>
          +<span class="nc" id="L106">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L107">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L109">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L110">                    printAvailableCommands();</span>
          +<span class="nc" id="L111">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L112">                    break;</span>
                           case 'a':
                               // add a new album
          -<span class="nc" id="L112">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L113">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L114">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L115">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L116">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L117">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L118">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L119">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L120">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L121">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L122">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L123">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc" id="L124">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc bnc" id="L125" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L126">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L127">                    printAvailableCommands();</span>
          -<span class="nc" id="L128">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L129">                    break;</span>
          +<span class="nc" id="L115">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L116">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L117">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L118">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L119">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L120">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L121">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L122">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L123">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L124">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L125">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L126">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L127">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L128" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L129">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L130">                    printAvailableCommands();</span>
          +<span class="nc" id="L131">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L132">                    break;</span>
                           case '+':
                               //add a song to an album:
          -<span class="nc" id="L132">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L133">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc" id="L134">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc bnc" id="L135" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          -<span class="nc" id="L136">                        AudioElement ae = itae.next();</span>
          -<span class="nc bnc" id="L137" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L138">                    }</span>
          -<span class="nc" id="L139">                    String songTitle = scan.nextLine();</span>
          +<span class="nc" id="L135">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L136">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L137">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L139">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L140" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L141">                    }</span>
          +<span class="nc" id="L142">                    String songTitle = scan.nextLine();</span>
           
          -<span class="nc" id="L141">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc" id="L142">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc bnc" id="L143" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L144">                        Album al = ait.next();</span>
          -<span class="nc" id="L145">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L146">                    }</span>
          -<span class="nc" id="L147">                    String titleAlbum = scan.nextLine();</span>
          +<span class="nc" id="L144">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L145">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L147">                        Album al = ait.next();</span>
          +<span class="nc" id="L148">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L149">                    }</span>
          +<span class="nc" id="L150">                    String titleAlbum = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L149">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L150">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L151">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L152">                    }</span>
          -<span class="nc" id="L153">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L154">                    printAvailableCommands();</span>
          -<span class="nc" id="L155">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L156">                    break;</span>
          +<span class="nc" id="L152">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L153">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L154">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L155">                    }</span>
          +<span class="nc" id="L156">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L157">                    printAvailableCommands();</span>
          +<span class="nc" id="L158">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L159">                    break;</span>
                           case 'l':
                               // add a new audiobook
          -<span class="nc" id="L159">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L160">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L161">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L162">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L163">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L164">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L165">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L166">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L167">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L168">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L169">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L170">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L171">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L172">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L173">                    theHub.addElement(b);</span>
          -<span class="nc" id="L174">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc" id="L175">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc bnc" id="L176" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L177">                    printAvailableCommands();</span>
          -<span class="nc" id="L178">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L179">                    break;</span>
          +<span class="nc" id="L162">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L163">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L164">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L165">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L166">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L167">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L168">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L169">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L170">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L171">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L172">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L173">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L174">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L175">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L176">                    theHub.addElement(b);</span>
          +<span class="nc" id="L177">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L178">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L179" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L180">                    printAvailableCommands();</span>
          +<span class="nc" id="L181">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L182">                    break;</span>
                           case 'p':
                               //create a new playlist from existing elements
          -<span class="nc" id="L182">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L183">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc" id="L184">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc bnc" id="L185" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L186">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L187">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L188">                    }</span>
          -<span class="nc" id="L189">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L190">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L191">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L192">                    theHub.addPlaylist(pl);</span>
          -<span class="nc" id="L193">                    System.out.println(&quot;Available elements: &quot;);</span>
          +<span class="nc" id="L185">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L186">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L187">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L188" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L189">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L190">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L191">                    }</span>
          +<span class="nc" id="L192">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L193">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L194">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L195">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L196">                    System.out.println(&quot;Available elements: &quot;);</span>
           
          -<span class="nc" id="L195">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc bnc" id="L196" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L197">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L198">                        System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L199">                    }</span>
          -<span class="nc bnc" id="L200" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L201">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -<span class="nc" id="L202">                        String elementTitle = scan.nextLine();</span>
          +<span class="nc" id="L198">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L200">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L201">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L202">                    }</span>
          +<span class="nc bnc" id="L203" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L204">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L205">                        String elementTitle = scan.nextLine();</span>
                                   try {
          -<span class="nc" id="L204">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L205">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L206">                            System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L207">                        }</span>
          +<span class="nc" id="L207">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L208">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L209">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L210">                        }</span>
           
          -<span class="nc" id="L209">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L210">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L211">                    }</span>
          -<span class="nc" id="L212">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L213">                    printAvailableCommands();</span>
          -<span class="nc" id="L214">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L215">                    break;</span>
          +<span class="nc" id="L212">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L213">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L214">                    }</span>
          +<span class="nc" id="L215">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L216">                    printAvailableCommands();</span>
          +<span class="nc" id="L217">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L218">                    break;</span>
                           case '-':
                               //delete a playlist
          -<span class="nc" id="L218">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc" id="L219">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc bnc" id="L220" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L221">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L222">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L223">                    }</span>
          -<span class="nc" id="L224">                    String plTitle = scan.nextLine();</span>
          +<span class="nc" id="L221">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L222">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L223" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L224">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L225">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L226">                    }</span>
          +<span class="nc" id="L227">                    String plTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L226">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L227">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L228">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L229">                    }</span>
          -<span class="nc" id="L230">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L231">                    printAvailableCommands();</span>
          -<span class="nc" id="L232">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L233">                    break;</span>
          +<span class="nc" id="L229">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L230">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L231">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L232">                    }</span>
          +<span class="nc" id="L233">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L234">                    printAvailableCommands();</span>
          +<span class="nc" id="L235">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L236">                    break;</span>
                           case 's':
                               //save elements, albums, playlists
          -<span class="nc" id="L236">                    theHub.saveElements();</span>
          -<span class="nc" id="L237">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L238">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L239">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L240">                    printAvailableCommands();</span>
          -<span class="nc" id="L241">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L242">                    break;</span>
          +<span class="nc" id="L239">                    theHub.saveElements();</span>
          +<span class="nc" id="L240">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L241">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L242">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L243">                    printAvailableCommands();</span>
          +<span class="nc" id="L244">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L245">                    break;</span>
          +                case 'o':
          +                    //consult the app logs
          +<span class="nc" id="L248">                    LogHandler.read();</span>
          +<span class="nc" id="L249">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L250">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L251">                    break;</span>
                           default:
           
          -<span class="nc" id="L245">                    break;</span>
          +<span class="nc" id="L254">                    break;</span>
                       }
                   }
          -<span class="nc" id="L248">        scan.close();</span>
          -<span class="nc" id="L249">    }</span>
          +<span class="nc" id="L257">        scan.close();</span>
          +<span class="nc" id="L258">    }</span>
           
               private static void printAvailableCommands() {
          -<span class="nc" id="L252">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L253">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L254">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L255">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L256">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L257">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L258">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L259">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -<span class="nc" id="L260">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          -<span class="nc" id="L261">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          -<span class="nc" id="L262">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          -<span class="nc" id="L263">        System.out.println(&quot;q: quit program&quot;);</span>
          -<span class="nc" id="L264">    }</span>
          +<span class="nc" id="L261">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L262">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L263">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L264">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L265">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L266">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L267">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L268">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L269">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L270">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L271">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L272">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          +<span class="nc" id="L273">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L274">    }</span>
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          index c4e995d..191e4db 100644
          --- a/target/site/jacoco/musichub.main/index.html
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          index 189774f..654a78a 100644
          --- a/target/site/jacoco/musichub.main/index.source.html
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 1194ec1..20f0d2b 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index e6f6dba..f8bbd4e 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index 16e8971..ea96baa 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          deleted file mode 100644
          index 4a19c26..0000000
          --- a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          +++ /dev/null
          @@ -1,60 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PathValidationTest" time="0.014" tests="2" errors="0" skipped="0" failures="0">
          -  <properties>
          -    <property name="java.specification.version" value="16"/>
          -    <property name="sun.cpu.isalist" value="amd64"/>
          -    <property name="sun.jnu.encoding" value="Cp1252"/>
          -    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          -    <property name="java.vm.vendor" value="Oracle Corporation"/>
          -    <property name="sun.arch.data.model" value="64"/>
          -    <property name="user.variant" value=""/>
          -    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          -    <property name="user.timezone" value="Europe/Paris"/>
          -    <property name="os.name" value="Windows 10"/>
          -    <property name="java.vm.specification.version" value="16"/>
          -    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          -    <property name="user.country" value="FR"/>
          -    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492 2021-06-26T14-30-52_984-jvmRun1 surefire12207114920762145658tmp surefire_04118465738105299962tmp"/>
          -    <property name="jdk.debug" value="release"/>
          -    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          -    <property name="sun.cpu.endian" value="little"/>
          -    <property name="user.home" value="C:\Users\SoftA"/>
          -    <property name="user.language" value="fr"/>
          -    <property name="java.specification.vendor" value="Oracle Corporation"/>
          -    <property name="java.version.date" value="2021-04-20"/>
          -    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          -    <property name="file.separator" value="\"/>
          -    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          -    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          -    <property name="line.separator" value="&#10;"/>
          -    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          -    <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar"/>
          -    <property name="user.script" value=""/>
          -    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          -    <property name="java.runtime.version" value="16.0.1+9-24"/>
          -    <property name="user.name" value="SoftA"/>
          -    <property name="path.separator" value=";"/>
          -    <property name="os.version" value="10.0"/>
          -    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          -    <property name="file.encoding" value="Cp1252"/>
          -    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          -    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          -    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          -    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          -    <property name="java.version" value="16.0.1"/>
          -    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          -    <property name="os.arch" value="amd64"/>
          -    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          -    <property name="sun.os.patch.level" value=""/>
          -    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          -    <property name="java.vm.info" value="mixed mode, sharing"/>
          -    <property name="java.vendor" value="Oracle Corporation"/>
          -    <property name="java.vm.version" value="16.0.1+9-24"/>
          -    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          -    <property name="java.class.version" value="60.0"/>
          -  </properties>
          -  <testcase name="testPathValidationClass" classname="musichub.business.PathValidationTest" time="0.007"/>
          -  <testcase name="testIsPathValid" classname="musichub.business.PathValidationTest" time="0.002"/>
          -</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.PathValidationTest.txt b/target/surefire-reports/musichub.business.PathValidationTest.txt
          deleted file mode 100644
          index 87f14cb..0000000
          --- a/target/surefire-reports/musichub.business.PathValidationTest.txt
          +++ /dev/null
          @@ -1,4 +0,0 @@
          --------------------------------------------------------------------------------
          -Test set: musichub.business.PathValidationTest
          --------------------------------------------------------------------------------
          -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.PathValidationTest
          -- 
          cgit v1.2.3
          
          
          From 45bd8c1b3836e442968c4bfedda546984edce4fd Mon Sep 17 00:00:00 2001
          From: said belhadj <saidbelhadj0312@gmail.com>
          Date: Sun, 27 Jun 2021 02:27:13 +0200
          Subject: Add search functionality
          
          ---
           src/main/java/musichub/business/MusicHub.java | 16 ++++++++++++++++
           src/main/java/musichub/main/Main.java         |  8 +++++++-
           2 files changed, 23 insertions(+), 1 deletion(-)
          
          diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
          index f7cf137..add55e6 100644
          --- a/src/main/java/musichub/business/MusicHub.java
          +++ b/src/main/java/musichub/business/MusicHub.java
          @@ -339,4 +339,20 @@ public class MusicHub {
                   }
           
               }
          +
          +    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
          +        Scanner scanner = new Scanner(System.in);
          +        String word = scanner.next().toLowerCase(Locale.ROOT);
          +        List<AudioElement> searchResult = new ArrayList<>();
          +        for(AudioElement el : elements){
          +            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){
          +                searchResult.add(el);
          +                System.out.println(el);
          +            }
          +        }
          +        if (searchResult.size()==1){
          +            this.getAudioElement(searchResult, searchResult.get(0).getTitle());
          +        }
          +    }
          +
           }
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index e2e4731..480a2c2 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -12,7 +12,8 @@ import java.util.Scanner;
           import static musichub.business.PathValidation.isPathValid;
           
           public class Main {
          -    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException {
          +
           
                   MusicHub theHub = new MusicHub();
           
          @@ -240,6 +241,10 @@ public class Main {
                               printAvailableCommands();
                               choice = scan.nextLine();
                               break;
          +                case 'r':
          +                    //search a music
          +                    theHub.searchAudioElement();
          +                    break;
                           default:
           
                               break;
          @@ -262,4 +267,5 @@ public class Main {
                   System.out.println("s: save elements, albums, playlists");
                   System.out.println("q: quit program");
               }
          +
           }
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 9cf446a8efaa8a6d16c260e343adb17ae3c75ff2 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 10:59:09 +0200
          Subject: Starting the XMLHandler tests
          
          ---
           src/test/java/musichub/util/XMLHandlerTest.java | 30 +++++++++++++++++++++++++
           1 file changed, 30 insertions(+)
           create mode 100644 src/test/java/musichub/util/XMLHandlerTest.java
          
          diff --git a/src/test/java/musichub/util/XMLHandlerTest.java b/src/test/java/musichub/util/XMLHandlerTest.java
          new file mode 100644
          index 0000000..1be2258
          --- /dev/null
          +++ b/src/test/java/musichub/util/XMLHandlerTest.java
          @@ -0,0 +1,30 @@
          +package musichub.util;
          +
          +
          +import org.junit.jupiter.api.Test;
          +import org.w3c.dom.Document;
          +import org.w3c.dom.NodeList;
          +
          +public class XMLHandlerTest {
          +
          +    final String DIR = System.getProperty("user.dir");
          +    final String JUNIT_FILE_PATH = DIR + "/files/JUnit.xml";
          +
          +/*    @Test
          +    void testXMLHandlerClass() {
          +            XMLHandler xmlHandler = new XMLHandler();
          +    }*/
          +
          +    @Test
          +    void testCreateXML() {
          +        XMLHandler xmlHandler = new XMLHandler(); //XML class
          +        Document document = xmlHandler.createXMLDocument(); //XMLDocument method
          +        xmlHandler.createXMLFile(document, JUNIT_FILE_PATH); //XMLFile method
          +    }
          +
          +    @Test
          +    void testParseXMLFile() {
          +        XMLHandler xmlHandler = new XMLHandler();
          +        NodeList albumNodes = xmlHandler.parseXMLFile(JUNIT_FILE_PATH);
          +    }
          +}
          -- 
          cgit v1.2.3
          
          
          From d4c6fe18ca94ed0880720d7ff135b82920d764b4 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 11:16:21 +0200
          Subject: XMLHandler tests covered at 91%
          
          ---
           files/parse_JUnit.xml                              |   4 +
           log/spoteezer.log                                  |  22 +-
           src/test/java/musichub/util/LogHandlerTest.java    |  20 +-
           .../java/musichub/util/PathValidationTest.java     |  20 +-
           src/test/java/musichub/util/XMLHandlerTest.java    |  14 +-
           target/jacoco.exec                                 | Bin 27236 -> 14814 bytes
           .../javadoc-options-javadoc-resources.xml          |  10 -
           target/maven-archiver/pom.properties               |   5 -
           target/maven-javadoc-plugin-stale-data.txt         |  66 --
           .../default-testCompile/createdFiles.lst           |   1 +
           .../testCompile/default-testCompile/inputFiles.lst |   1 +
           target/original-spoteezer-0.1.0.jar                | Bin 33244 -> 0 bytes
           target/site/apidocs/allclasses-index.html          | 114 ---
           target/site/apidocs/allpackages-index.html         |  76 --
           target/site/apidocs/element-list                   |   3 -
           target/site/apidocs/help-doc.html                  | 162 ----
           target/site/apidocs/index-all.html                 | 410 ----------
           target/site/apidocs/index.html                     |  78 --
           target/site/apidocs/jquery-ui.overrides.css        |  34 -
           target/site/apidocs/member-search-index.js         |   1 -
           target/site/apidocs/module-search-index.js         |   1 -
           target/site/apidocs/musichub/business/Album.html   | 250 -------
           .../site/apidocs/musichub/business/AudioBook.html  | 273 -------
           .../apidocs/musichub/business/AudioElement.html    | 325 --------
           .../site/apidocs/musichub/business/Category.html   | 258 -------
           target/site/apidocs/musichub/business/Genre.html   | 266 -------
           .../site/apidocs/musichub/business/Language.html   | 258 -------
           .../site/apidocs/musichub/business/MusicHub.html   | 412 ----------
           .../musichub/business/NoAlbumFoundException.html   | 150 ----
           .../musichub/business/NoElementFoundException.html | 150 ----
           .../business/NoPlayListFoundException.html         | 150 ----
           .../site/apidocs/musichub/business/PlayList.html   | 215 ------
           target/site/apidocs/musichub/business/Song.html    | 251 -------
           .../apidocs/musichub/business/class-use/Album.html |  99 ---
           .../musichub/business/class-use/AudioBook.html     |  65 --
           .../musichub/business/class-use/AudioElement.html  | 124 ---
           .../musichub/business/class-use/Category.html      | 101 ---
           .../apidocs/musichub/business/class-use/Genre.html |  98 ---
           .../musichub/business/class-use/Language.html      | 101 ---
           .../musichub/business/class-use/MusicHub.html      |  65 --
           .../business/class-use/NoAlbumFoundException.html  | 101 ---
           .../class-use/NoElementFoundException.html         |  95 ---
           .../class-use/NoPlayListFoundException.html        |  94 ---
           .../musichub/business/class-use/PlayList.html      |  99 ---
           .../apidocs/musichub/business/class-use/Song.html  |  90 ---
           .../apidocs/musichub/business/package-summary.html | 116 ---
           .../apidocs/musichub/business/package-tree.html    | 114 ---
           .../apidocs/musichub/business/package-use.html     | 105 ---
           target/site/apidocs/musichub/main/Main.html        | 175 -----
           .../site/apidocs/musichub/main/class-use/Main.html |  65 --
           .../apidocs/musichub/main/package-summary.html     |  80 --
           .../site/apidocs/musichub/main/package-tree.html   |  79 --
           target/site/apidocs/musichub/main/package-use.html |  65 --
           target/site/apidocs/musichub/util/XMLHandler.html  | 186 -----
           .../musichub/util/class-use/XMLHandler.html        |  65 --
           .../apidocs/musichub/util/package-summary.html     |  88 ---
           .../site/apidocs/musichub/util/package-tree.html   |  81 --
           target/site/apidocs/musichub/util/package-use.html |  65 --
           target/site/apidocs/overview-summary.html          |  27 -
           target/site/apidocs/overview-tree.html             | 120 ---
           target/site/apidocs/package-search-index.js        |   1 -
           target/site/apidocs/resources/glass.png            | Bin 499 -> 0 bytes
           target/site/apidocs/resources/x.png                | Bin 394 -> 0 bytes
           .../images/ui-bg_glass_55_fbf9ee_1x400.png         | Bin 335 -> 0 bytes
           .../images/ui-bg_glass_65_dadada_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_75_dadada_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_75_e6e6e6_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_95_fef1ec_1x400.png         | Bin 332 -> 0 bytes
           .../ui-bg_highlight-soft_75_cccccc_1x100.png       | Bin 280 -> 0 bytes
           .../script-dir/images/ui-icons_222222_256x240.png  | Bin 6922 -> 0 bytes
           .../script-dir/images/ui-icons_2e83ff_256x240.png  | Bin 4549 -> 0 bytes
           .../script-dir/images/ui-icons_454545_256x240.png  | Bin 6992 -> 0 bytes
           .../script-dir/images/ui-icons_888888_256x240.png  | Bin 6999 -> 0 bytes
           .../script-dir/images/ui-icons_cd0a0a_256x240.png  | Bin 4549 -> 0 bytes
           target/site/apidocs/script-dir/jquery-3.5.1.min.js |   2 -
           target/site/apidocs/script-dir/jquery-ui.min.css   |   7 -
           target/site/apidocs/script-dir/jquery-ui.min.js    |   6 -
           .../apidocs/script-dir/jquery-ui.structure.min.css |   5 -
           target/site/apidocs/script.js                      | 132 ----
           target/site/apidocs/search.js                      | 354 ---------
           target/site/apidocs/serialized-form.html           |  89 ---
           target/site/apidocs/stylesheet.css                 | 827 ---------------------
           target/site/apidocs/tag-search-index.js            |   1 -
           target/site/apidocs/type-search-index.js           |   1 -
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   2 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           target/site/jacoco/musichub.util/XMLHandler.html   |   2 +-
           .../site/jacoco/musichub.util/XMLHandler.java.html |  42 +-
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           target/spoteezer-0.1.0.jar                         | Bin 369146 -> 0 bytes
           93 files changed, 82 insertions(+), 7962 deletions(-)
           create mode 100644 files/parse_JUnit.xml
           delete mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
           delete mode 100644 target/maven-archiver/pom.properties
           delete mode 100644 target/maven-javadoc-plugin-stale-data.txt
           delete mode 100644 target/original-spoteezer-0.1.0.jar
           delete mode 100644 target/site/apidocs/allclasses-index.html
           delete mode 100644 target/site/apidocs/allpackages-index.html
           delete mode 100644 target/site/apidocs/element-list
           delete mode 100644 target/site/apidocs/help-doc.html
           delete mode 100644 target/site/apidocs/index-all.html
           delete mode 100644 target/site/apidocs/index.html
           delete mode 100644 target/site/apidocs/jquery-ui.overrides.css
           delete mode 100644 target/site/apidocs/member-search-index.js
           delete mode 100644 target/site/apidocs/module-search-index.js
           delete mode 100644 target/site/apidocs/musichub/business/Album.html
           delete mode 100644 target/site/apidocs/musichub/business/AudioBook.html
           delete mode 100644 target/site/apidocs/musichub/business/AudioElement.html
           delete mode 100644 target/site/apidocs/musichub/business/Category.html
           delete mode 100644 target/site/apidocs/musichub/business/Genre.html
           delete mode 100644 target/site/apidocs/musichub/business/Language.html
           delete mode 100644 target/site/apidocs/musichub/business/MusicHub.html
           delete mode 100644 target/site/apidocs/musichub/business/NoAlbumFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/NoElementFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/NoPlayListFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/PlayList.html
           delete mode 100644 target/site/apidocs/musichub/business/Song.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Album.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/AudioBook.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/AudioElement.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Category.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Genre.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Language.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/MusicHub.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/PlayList.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Song.html
           delete mode 100644 target/site/apidocs/musichub/business/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/business/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/business/package-use.html
           delete mode 100644 target/site/apidocs/musichub/main/Main.html
           delete mode 100644 target/site/apidocs/musichub/main/class-use/Main.html
           delete mode 100644 target/site/apidocs/musichub/main/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/main/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/main/package-use.html
           delete mode 100644 target/site/apidocs/musichub/util/XMLHandler.html
           delete mode 100644 target/site/apidocs/musichub/util/class-use/XMLHandler.html
           delete mode 100644 target/site/apidocs/musichub/util/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/util/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/util/package-use.html
           delete mode 100644 target/site/apidocs/overview-summary.html
           delete mode 100644 target/site/apidocs/overview-tree.html
           delete mode 100644 target/site/apidocs/package-search-index.js
           delete mode 100644 target/site/apidocs/resources/glass.png
           delete mode 100644 target/site/apidocs/resources/x.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/jquery-3.5.1.min.js
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.min.css
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.min.js
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.structure.min.css
           delete mode 100644 target/site/apidocs/script.js
           delete mode 100644 target/site/apidocs/search.js
           delete mode 100644 target/site/apidocs/serialized-form.html
           delete mode 100644 target/site/apidocs/stylesheet.css
           delete mode 100644 target/site/apidocs/tag-search-index.js
           delete mode 100644 target/site/apidocs/type-search-index.js
           delete mode 100644 target/spoteezer-0.1.0.jar
          
          diff --git a/files/parse_JUnit.xml b/files/parse_JUnit.xml
          new file mode 100644
          index 0000000..92f7c75
          --- /dev/null
          +++ b/files/parse_JUnit.xml
          @@ -0,0 +1,4 @@
          +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
          +<parse>
          +
          +</parse>
          \ No newline at end of file
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 834e29f..910a4f2 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -3,4 +3,24 @@
           [2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
           [2021-06-26 22:05:28.614] INFO: JUnit test
           [2021-06-26 22:06:26.191] INFO: JUnit test
          -[2021-06-26 22:06:38.453] INFO: JUnit test
          \ No newline at end of file
          +[2021-06-26 22:06:38.453] INFO: JUnit test
          +[2021-06-27 10:23:31.646] INFO: JUnit test
          +[2021-06-27 10:31:25.514] INFO: JUnit test
          +[2021-06-27 10:38:07.141] INFO: JUnit test
          +[2021-06-27 10:42:26.41] INFO: JUnit test
          +[2021-06-27 10:44:04.343] INFO: JUnit test
          +[2021-06-27 10:44:22.383] INFO: JUnit test
          +[2021-06-27 10:50:24.719] INFO: JUnit test
          +[2021-06-27 10:52:37.112] INFO: JUnit test
          +[2021-06-27 10:52:59.042] INFO: JUnit test
          +[2021-06-27 10:57:26.087] INFO: JUnit test
          +[2021-06-27 10:58:04.601] INFO: JUnit test
          +[2021-06-27 11:03:08.428] INFO: JUnit test
          +[2021-06-27 11:05:43.601] INFO: JUnit test
          +[2021-06-27 11:06:15.442] INFO: JUnit test
          +[2021-06-27 11:06:35.753] INFO: JUnit test
          +[2021-06-27 11:08:19.669] INFO: JUnit test
          +[2021-06-27 11:09:37.095] INFO: JUnit test
          +[2021-06-27 11:09:46.982] INFO: JUnit test
          +[2021-06-27 11:13:46.639] INFO: JUnit test
          +[2021-06-27 11:15:45.379] INFO: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
          index 17b47f6..3965520 100644
          --- a/src/test/java/musichub/util/LogHandlerTest.java
          +++ b/src/test/java/musichub/util/LogHandlerTest.java
          @@ -11,6 +11,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
           import static org.junit.jupiter.api.Assertions.assertTrue;
           
           public class LogHandlerTest {
          +    @Test
          +    void testLogHandlerClass() {
          +        try {
          +            LogHandler logHandlerClass = new LogHandler();
          +        } catch (Error e) {
          +            assertTrue(e instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", e.getMessage());
          +        }
          +    }
          +
               @Test
               void testWrite() {
                   try {
          @@ -28,14 +38,4 @@ public class LogHandlerTest {
                       e.printStackTrace();
                   }
               }
          -
          -    @Test
          -    void testLogHandlerClass() {
          -        try {
          -            LogHandler logHandlerClass = new LogHandler();
          -        } catch (Error ex) {
          -            assertTrue(ex instanceof AssertionError);
          -            assertEquals("You just can't instantiate this class.", ex.getMessage());
          -        }
          -    }
           }
          diff --git a/src/test/java/musichub/util/PathValidationTest.java b/src/test/java/musichub/util/PathValidationTest.java
          index 4c7a3d6..b0e0c38 100644
          --- a/src/test/java/musichub/util/PathValidationTest.java
          +++ b/src/test/java/musichub/util/PathValidationTest.java
          @@ -7,20 +7,20 @@ import static musichub.util.PathValidation.isPathValid;
           import static org.junit.jupiter.api.Assertions.*;
           
           public class PathValidationTest {
          -    @Test
          -    void testIsPathValid() {
          -        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          -        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          -        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          -    }
          -
               @Test
               void testPathValidationClass() {
                   try {
                       PathValidation pathValidationClass = new PathValidation();
          -        } catch (Error ex) {
          -            assertTrue(ex instanceof AssertionError);
          -            assertEquals("You just can't instantiate this class.", ex.getMessage());
          +        } catch (Error e) {
          +            assertTrue(e instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", e.getMessage());
                   }
               }
          +
          +    @Test
          +    void testIsPathValid() {
          +        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          +        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          +        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          +    }
           }
          diff --git a/src/test/java/musichub/util/XMLHandlerTest.java b/src/test/java/musichub/util/XMLHandlerTest.java
          index 1be2258..7b5a791 100644
          --- a/src/test/java/musichub/util/XMLHandlerTest.java
          +++ b/src/test/java/musichub/util/XMLHandlerTest.java
          @@ -10,11 +10,6 @@ public class XMLHandlerTest {
               final String DIR = System.getProperty("user.dir");
               final String JUNIT_FILE_PATH = DIR + "/files/JUnit.xml";
           
          -/*    @Test
          -    void testXMLHandlerClass() {
          -            XMLHandler xmlHandler = new XMLHandler();
          -    }*/
          -
               @Test
               void testCreateXML() {
                   XMLHandler xmlHandler = new XMLHandler(); //XML class
          @@ -24,7 +19,12 @@ public class XMLHandlerTest {
           
               @Test
               void testParseXMLFile() {
          +        final String PARSE_DIR = System.getProperty("user.dir");
          +        final String PARSE_FILE_PATH = PARSE_DIR + "/files/parse_JUnit.xml";
                   XMLHandler xmlHandler = new XMLHandler();
          -        NodeList albumNodes = xmlHandler.parseXMLFile(JUNIT_FILE_PATH);
          +        //wrong content of file resulting in an exception, will print it during test but it's normal
          +        NodeList junitNodes = xmlHandler.parseXMLFile(JUNIT_FILE_PATH);
          +        //right content of file
          +        NodeList parseNodes = xmlHandler.parseXMLFile(PARSE_FILE_PATH);
               }
          -}
          +}
          \ No newline at end of file
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 5deaa95..51b090d 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          deleted file mode 100644
          index 8b89c97..0000000
          --- a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          +++ /dev/null
          @@ -1,10 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<javadocOptions>
          -  <docletArtifacts>
          -    <docletArtifact />
          -  </docletArtifacts>
          -  <tagletArtifacts>
          -    <tagletArtifact />
          -  </tagletArtifacts>
          -  <javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
          -</javadocOptions>
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          deleted file mode 100644
          index 9bf0389..0000000
          --- a/target/maven-archiver/pom.properties
          +++ /dev/null
          @@ -1,5 +0,0 @@
          -#Generated by Maven
          -#Sat Jun 26 22:06:26 CEST 2021
          -groupId=esiea.softwareengineering
          -artifactId=spoteezer
          -version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          deleted file mode 100644
          index e5ff7a2..0000000
          --- a/target/maven-javadoc-plugin-stale-data.txt
          +++ /dev/null
          @@ -1,66 +0,0 @@
          -@options
          -@argfile
          --classpath
          -'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar'
          --encoding
          -'Cp1252'
          --protected
          ---release
          -16
          --sourcepath
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java'
          --author
          --bottom
          -'Copyright &#169; 2021. All rights reserved.'
          --charset
          -'UTF-8'
          --d
          -'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs'
          --docencoding
          -'UTF-8'
          --doctitle
          -'spoteezer 0.1.0 API'
          --use
          --version
          --windowtitle
          -'spoteezer 0.1.0 API'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
          -C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
          -C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          -C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770
          -C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
          -C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
          -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624737994231
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624737994233
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624737994134
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624737994257
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624737994253
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624737994214
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624737994280
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624737994238
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624737994234
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624737994255
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624737994211
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624737994235
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624737994260
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624737994263
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624737994156
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624737994259
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624737994239
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624737994236
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 13c2c99..5941d84 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,2 +1,3 @@
          +musichub\util\XMLHandlerTest.class
           musichub\util\PathValidationTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 1b9eea3..8cbb196 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1,2 +1,3 @@
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\XMLHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          deleted file mode 100644
          index e14293d..0000000
          Binary files a/target/original-spoteezer-0.1.0.jar and /dev/null differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          deleted file mode 100644
          index e4d9f65..0000000
          --- a/target/site/apidocs/allclasses-index.html
          +++ /dev/null
          @@ -1,114 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>All Classes (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="class index">
          -<meta name="generator" content="javadoc/AllClassesIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="all-classes-index-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
          -</div>
          -<div id="all-classes-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Class Summary</button><button id="all-classes-table-tab3" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab3', 2)" class="table-tab">Enum Class Summary</button><button id="all-classes-table-tab4" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab4', 2)" class="table-tab">Exception Summary</button></div>
          -<div id="all-classes-table.tabpanel" role="tabpanel">
          -<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Album.html" title="class in musichub.business">Album</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          -<div class="block">Class offering a log writing method.</div>
          -</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          deleted file mode 100644
          index 1670da5..0000000
          --- a/target/site/apidocs/allpackages-index.html
          +++ /dev/null
          @@ -1,76 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>All Packages (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="package index">
          -<meta name="generator" content="javadoc/AllPackagesIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="all-packages-index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
          -</div>
          -<div class="caption"><span>Package Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/element-list b/target/site/apidocs/element-list
          deleted file mode 100644
          index 87e8cdc..0000000
          --- a/target/site/apidocs/element-list
          +++ /dev/null
          @@ -1,3 +0,0 @@
          -musichub.business
          -musichub.main
          -musichub.util
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          deleted file mode 100644
          index 4d85c2b..0000000
          --- a/target/site/apidocs/help-doc.html
          +++ /dev/null
          @@ -1,162 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>API Help (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="help">
          -<meta name="generator" content="javadoc/HelpWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="help-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li class="nav-bar-cell1-rev">Help</li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">How This API Document Is Organized</h1>
          -<div class="sub-title">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
          -</div>
          -<section class="help-section">
          -<h2>Overview</h2>
          -<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
          -</section>
          -<section class="help-section">
          -<h2>Package</h2>
          -<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
          -<ul class="help-section-list">
          -<li>Interfaces</li>
          -<li>Classes</li>
          -<li>Enum Classes</li>
          -<li>Exceptions</li>
          -<li>Errors</li>
          -<li>Annotation Interfaces</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Class or Interface</h2>
          -<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
          -<ul class="help-section-list">
          -<li>Class Inheritance Diagram</li>
          -<li>Direct Subclasses</li>
          -<li>All Known Subinterfaces</li>
          -<li>All Known Implementing Classes</li>
          -<li>Class or Interface Declaration</li>
          -<li>Class or Interface Description</li>
          -</ul>
          -<br>
          -<ul class="help-section-list">
          -<li>Nested Class Summary</li>
          -<li>Field Summary</li>
          -<li>Property Summary</li>
          -<li>Constructor Summary</li>
          -<li>Method Summary</li>
          -</ul>
          -<br>
          -<ul class="help-section-list">
          -<li>Field Details</li>
          -<li>Property Details</li>
          -<li>Constructor Details</li>
          -<li>Method Details</li>
          -</ul>
          -<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
          -</section>
          -<section class="help-section">
          -<h2>Annotation Interface</h2>
          -<p>Each annotation interface has its own separate page with the following sections:</p>
          -<ul class="help-section-list">
          -<li>Annotation Interface Declaration</li>
          -<li>Annotation Interface Description</li>
          -<li>Required Element Summary</li>
          -<li>Optional Element Summary</li>
          -<li>Element Details</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Enum Class</h2>
          -<p>Each enum class has its own separate page with the following sections:</p>
          -<ul class="help-section-list">
          -<li>Enum Declaration</li>
          -<li>Enum Description</li>
          -<li>Enum Constant Summary</li>
          -<li>Enum Constant Details</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Use</h2>
          -<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
          -</section>
          -<section class="help-section">
          -<h2>Tree (Class Hierarchy)</h2>
          -<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
          -<ul class="help-section-list">
          -<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
          -<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Index</h2>
          -<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
          -</section>
          -<section class="help-section">
          -<h2>Serialized Form</h2>
          -<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.</p>
          -</section>
          -<section class="help-section">
          -<h2>Search</h2>
          -<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:</p>
          -<ul class="help-section-list">
          -<li><code>j.l.obj</code> will match "java.lang.Object"</li>
          -<li><code>InpStr</code> will match "java.io.InputStream"</li>
          -<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li>
          -</ul>
          -<p>Refer to <a href="https://docs.oracle.com/en/java/javase/16/docs/specs/javadoc/javadoc-search-spec.html">the Javadoc Search Specification</a> for a full description of search features.</p>
          -</section>
          -<hr>
          -<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          deleted file mode 100644
          index 0df0f51..0000000
          --- a/target/site/apidocs/index-all.html
          +++ /dev/null
          @@ -1,410 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Index (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="index">
          -<meta name="generator" content="javadoc/IndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li class="nav-bar-cell1-rev">Index</li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1>Index</h1>
          -</div>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
          -<h2 class="title" id="I:A">A</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addAlbum(musichub.business.Album)">addAlbum(Album)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#addElement(java.util.UUID)">addElement(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElement(musichub.business.AudioElement)">addElement(AudioElement)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist(PlayList)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#addSong(java.util.UUID)">addSong(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album(String, String, int, String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(org.w3c.dom.Element)">Album(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#albums()">albums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#artist">artist</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(org.w3c.dom.Element)">AudioBook(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(org.w3c.dom.Element)">AudioElement(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:C">C</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#CLASSIC">CLASSIC</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#content">content</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLDocument()">createXMLDocument()</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile(Document, String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:D">D</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#deletePlayList(java.lang.String)">deletePlayList(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#DIR">DIR</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#DOCUMENTARY">DOCUMENTARY</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:E">E</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#elements()">elements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#ENGLISH">ENGLISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:F">F</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#FRENCH">FRENCH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:G">G</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#GERMAN">GERMAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getArtist()">getArtist()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement(List&lt;AudioElement&gt;, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getCategory()">getCategory()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#getCategory()">getCategory()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getDate()">getDate()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getElements()">getElements()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#getGenre()">getGenre()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#getGenre()">getGenre()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getLanguage()">getLanguage()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#getLanguage()">getLanguage()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongs()">getSongs()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongsRandomly()">getSongsRandomly()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getUUID()">getUUID()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:H">H</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#HIPHOP">HIPHOP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:I">I</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          -<dd>
          -<div class="block">Method that checks the validity of a given path</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#ITALIAN">ITALIAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:J">J</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#JAZZ">JAZZ</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:L">L</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#lengthInSeconds">lengthInSeconds</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>
          -<div class="block">Class offering a log writing method.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#%3Cinit%3E()">LogHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:M">M</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/main/Main.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a> - Class in <a href="musichub/main/package-summary.html">musichub.main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/main/Main.html#%3Cinit%3E()">Main()</a></span> - Constructor for class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#manageAudioElement()">manageAudioElement()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#%3Cinit%3E()">MusicHub()</a></span> - Constructor for class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/package-summary.html">musichub.business</a> - package musichub.business</dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/main/package-summary.html">musichub.main</a> - package musichub.main</dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/package-summary.html">musichub.util</a> - package musichub.util</dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:N">N</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoAlbumFoundException.html#%3Cinit%3E(java.lang.String)">NoAlbumFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoElementFoundException.html#%3Cinit%3E(java.lang.String)">NoElementFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoPlayListFoundException.html#%3Cinit%3E(java.lang.String)">NoPlayListFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#NOVEL">NOVEL</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:P">P</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#parseXMLFile(java.lang.String)">parseXMLFile(String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>
          -<div class="block">Class offering a path validation method.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          -<dd>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</dd>
          -<dt><a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String)">PlayList(String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList(String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(org.w3c.dom.Element)">PlayList(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#playlists()">playlists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#POP">POP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:R">R</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#RAP">RAP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#read()">read()</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that prints the content of spoteezer.log</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#ROCK">ROCK</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:S">S</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveAlbums()">saveAlbums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveElements()">saveElements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#savePlayLists()">savePlayLists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setCategory(java.lang.String)">setCategory(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#setGenre(java.lang.String)">setGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setLanguage(java.lang.String)">setLanguage(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(org.w3c.dom.Element)">Song(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#SPANISH">SPANISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#SPEECH">SPEECH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:T">T</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#THEATER">THEATER</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#title">title</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:U">U</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#uuid">uuid</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:V">V</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:W">W</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#write(java.lang.String,java.lang.String)">write(String, String)</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that writes a log message to spoteezer.log</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:X">X</h2>
          -<dl class="index">
          -<dt><a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#%3Cinit%3E()">XMLHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:Y">Y</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#YOUTH">YOUTH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          deleted file mode 100644
          index e5010d9..0000000
          --- a/target/site/apidocs/index.html
          +++ /dev/null
          @@ -1,78 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Overview (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="package index">
          -<meta name="generator" content="javadoc/PackageIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li class="nav-bar-cell1-rev">Overview</li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">spoteezer 0.1.0 API</h1>
          -</div>
          -<div id="all-packages-table">
          -<div class="caption"><span>Packages</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          -<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          -<div class="col-last odd-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          -<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/jquery-ui.overrides.css b/target/site/apidocs/jquery-ui.overrides.css
          deleted file mode 100644
          index f89acb6..0000000
          --- a/target/site/apidocs/jquery-ui.overrides.css
          +++ /dev/null
          @@ -1,34 +0,0 @@
          -/*
          - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -.ui-state-active,
          -.ui-widget-content .ui-state-active,
          -.ui-widget-header .ui-state-active,
          -a.ui-button:active,
          -.ui-button:active,
          -.ui-button.ui-state-active:hover {
          -    /* Overrides the color of selection used in jQuery UI */
          -    background: #F8981D;
          -}
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          deleted file mode 100644
          index f583be9..0000000
          --- a/target/site/apidocs/member-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/module-search-index.js b/target/site/apidocs/module-search-index.js
          deleted file mode 100644
          index 0d59754..0000000
          --- a/target/site/apidocs/module-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -moduleSearchIndex = [];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          deleted file mode 100644
          index fd0beaa..0000000
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ /dev/null
          @@ -1,250 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Album (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: Album">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Album.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class Album" class="title">Class Album</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.Album</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Album</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addSong(java.util.UUID)">addSong</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getDate()">getDate</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongs()">getSongs</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongsRandomly()">getSongsRandomly</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span>
          -      throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addSong(java.util.UUID)">
          -<h3>addSong</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addSong</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getSongs()">
          -<h3>getSongs</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongs</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getSongsRandomly()">
          -<h3>getSongsRandomly</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongsRandomly</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getDate()">
          -<h3>getDate</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></span>&nbsp;<span class="element-name">getDate</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          deleted file mode 100644
          index 211e1b0..0000000
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ /dev/null
          @@ -1,273 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>AudioBook (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: AudioBook">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/AudioBook.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class AudioBook" class="title">Class AudioBook</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          -<div class="inheritance">musichub.business.AudioBook</div>
          -</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">AudioBook</span>
          -<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="inherited-list">
          -<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setCategory(java.lang.String)">setCategory</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setLanguage(java.lang.String)">setLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getLanguage()">
          -<h3>getLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setLanguage(java.lang.String)">
          -<h3>setLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setLanguage</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getCategory()">
          -<h3>getCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setCategory(java.lang.String)">
          -<h3>setCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setCategory</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          deleted file mode 100644
          index fe6ad42..0000000
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ /dev/null
          @@ -1,325 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>AudioElement (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: AudioElement">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/AudioElement.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class AudioElement" class="title">Class AudioElement</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.AudioElement</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>Direct Known Subclasses:</dt>
          -<dd><code><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></code>, <code><a href="Song.html" title="class in musichub.business">Song</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AudioElement</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="caption"><span>Fields</span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Field</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#artist">artist</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#content">content</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>protected int</code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#lengthInSeconds">lengthInSeconds</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#title">title</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#uuid">uuid</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getArtist()">getArtist</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getUUID()">getUUID</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#manageAudioElement()">manageAudioElement</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ FIELD DETAIL =========== -->
          -<li>
          -<section class="field-details" id="field.detail">
          -<h2>Field Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="title">
          -<h3>title</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">title</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="artist">
          -<h3>artist</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">artist</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="lengthInSeconds">
          -<h3>lengthInSeconds</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">lengthInSeconds</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="uuid">
          -<h3>uuid</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">uuid</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="content">
          -<h3>content</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">content</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getUUID()">
          -<h3>getUUID</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">getUUID</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getArtist()">
          -<h3>getArtist</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getArtist</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="manageAudioElement()">
          -<h3>manageAudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">manageAudioElement</span>()
          -                        throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          deleted file mode 100644
          index 4266493..0000000
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ /dev/null
          @@ -1,258 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Category (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Category">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Category.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Category" class="title">Enum Class Category</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;
          -<div class="inheritance">musichub.business.Category</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Category</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#DOCUMENTARY">DOCUMENTARY</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#NOVEL">NOVEL</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPEECH">SPEECH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#THEATER">THEATER</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#YOUTH">YOUTH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="YOUTH">
          -<h3>YOUTH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">YOUTH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="NOVEL">
          -<h3>NOVEL</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">NOVEL</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="THEATER">
          -<h3>THEATER</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">THEATER</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="DOCUMENTARY">
          -<h3>DOCUMENTARY</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">DOCUMENTARY</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="SPEECH">
          -<h3>SPEECH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">SPEECH</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getCategory()">
          -<h3>getCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          deleted file mode 100644
          index 96e2762..0000000
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ /dev/null
          @@ -1,266 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Genre (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Genre">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Genre.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Genre" class="title">Enum Class Genre</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;
          -<div class="inheritance">musichub.business.Genre</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Genre</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#CLASSIC">CLASSIC</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#HIPHOP">HIPHOP</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#JAZZ">JAZZ</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#POP">POP</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#RAP">RAP</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ROCK">ROCK</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="JAZZ">
          -<h3>JAZZ</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">JAZZ</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="CLASSIC">
          -<h3>CLASSIC</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">CLASSIC</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="HIPHOP">
          -<h3>HIPHOP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">HIPHOP</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ROCK">
          -<h3>ROCK</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">ROCK</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="POP">
          -<h3>POP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">POP</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="RAP">
          -<h3>RAP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">RAP</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getGenre()">
          -<h3>getGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          deleted file mode 100644
          index 6bebff8..0000000
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ /dev/null
          @@ -1,258 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Language (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Language">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Language.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Language" class="title">Enum Class Language</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;
          -<div class="inheritance">musichub.business.Language</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Language</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#ENGLISH">ENGLISH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#FRENCH">FRENCH</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#GERMAN">GERMAN</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ITALIAN">ITALIAN</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPANISH">SPANISH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="FRENCH">
          -<h3>FRENCH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">FRENCH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ENGLISH">
          -<h3>ENGLISH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ENGLISH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ITALIAN">
          -<h3>ITALIAN</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ITALIAN</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="SPANISH">
          -<h3>SPANISH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">SPANISH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="GERMAN">
          -<h3>GERMAN</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">GERMAN</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getLanguage()">
          -<h3>getLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          deleted file mode 100644
          index 4af462c..0000000
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ /dev/null
          @@ -1,412 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>MusicHub (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: MusicHub">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/MusicHub.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class MusicHub" class="title">Class MusicHub</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.MusicHub</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">MusicHub</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="caption"><span>Fields</span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Field</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#DIR">DIR</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">MusicHub</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#albums()">albums</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#elements()">elements</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#playlists()">playlists</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveAlbums()">saveAlbums</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveElements()">saveElements</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#savePlayLists()">savePlayLists</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ FIELD DETAIL =========== -->
          -<li>
          -<section class="field-details" id="field.detail">
          -<h2>Field Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="DIR">
          -<h3>DIR</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">DIR</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ALBUMS_FILE_PATH">
          -<h3>ALBUMS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ALBUMS_FILE_PATH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="PLAYLISTS_FILE_PATH">
          -<h3>PLAYLISTS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">PLAYLISTS_FILE_PATH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ELEMENTS_FILE_PATH">
          -<h3>ELEMENTS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ELEMENTS_FILE_PATH</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>MusicHub</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">MusicHub</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addElement(musichub.business.AudioElement)">
          -<h3>addElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addAlbum(musichub.business.Album)">
          -<h3>addAlbum</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAlbum</span>&#8203;<span class="parameters">(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addPlaylist(musichub.business.PlayList)">
          -<h3>addPlaylist</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addPlaylist</span>&#8203;<span class="parameters">(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="deletePlayList(java.lang.String)">
          -<h3>deletePlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">deletePlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          -                    throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="albums()">
          -<h3>albums</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</span>&nbsp;<span class="element-name">albums</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="playlists()">
          -<h3>playlists</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</span>&nbsp;<span class="element-name">playlists</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="elements()">
          -<h3>elements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">elements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumsTitlesSortedByDate()">
          -<h3>getAlbumsTitlesSortedByDate</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAlbumsTitlesSortedByDate</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAudiobooksTitlesSortedByAuthor()">
          -<h3>getAudiobooksTitlesSortedByAuthor</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAudiobooksTitlesSortedByAuthor</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumSongs(java.lang.String)">
          -<h3>getAlbumSongs</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongs</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                                 throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumSongsSortedByGenre(java.lang.String)">
          -<h3>getAlbumSongsSortedByGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongsSortedByGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                                      throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addElementToAlbum(java.lang.String,java.lang.String)">
          -<h3>addElementToAlbum</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToAlbum</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                       throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          -<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addElementToPlayList(java.lang.String,java.lang.String)">
          -<h3>addElementToPlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToPlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          -                          throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a>,
          -<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          -<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="saveAlbums()">
          -<h3>saveAlbums</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveAlbums</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="savePlayLists()">
          -<h3>savePlayLists</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">savePlayLists</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="saveElements()">
          -<h3>saveElements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveElements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAudioElement(java.util.List,java.lang.String)">
          -<h3>getAudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">getAudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</span>
          -                     throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          deleted file mode 100644
          index 16143e3..0000000
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoAlbumFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoAlbumFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoAlbumFoundException" class="title">Class NoAlbumFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoAlbumFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoAlbumFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoAlbumFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoAlbumFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoAlbumFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoAlbumFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          deleted file mode 100644
          index 3a04446..0000000
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoElementFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoElementFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoElementFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoElementFoundException" class="title">Class NoElementFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoElementFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoElementFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoElementFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoElementFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoElementFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoElementFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          deleted file mode 100644
          index 4a9413a..0000000
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoPlayListFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoPlayListFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoPlayListFoundException" class="title">Class NoPlayListFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoPlayListFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoPlayListFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoPlayListFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoPlayListFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoPlayListFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoPlayListFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          deleted file mode 100644
          index a1ccc9b..0000000
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ /dev/null
          @@ -1,215 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>PlayList (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: PlayList">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/PlayList.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class PlayList" class="title">Class PlayList</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.PlayList</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlayList</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(java.util.UUID)">addElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getElements()">getElements</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.ArrayList)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addElement(java.util.UUID)">
          -<h3>addElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getElements()">
          -<h3>getElements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getElements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          deleted file mode 100644
          index 82582dd..0000000
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ /dev/null
          @@ -1,251 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Song (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: Song">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Song.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class Song" class="title">Class Song</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          -<div class="inheritance">musichub.business.Song</div>
          -</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Song</span>
          -<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="inherited-list">
          -<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setGenre(java.lang.String)">setGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getGenre()">
          -<h3>getGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setGenre(java.lang.String)">
          -<h3>setGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          deleted file mode 100644
          index 097e8c7..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ /dev/null
          @@ -1,99 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: Album">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Album.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.Album" class="title">Uses of Class<br>musichub.business.Album</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Album.html" title="class in musichub.business">Album</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#albums()">albums</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="../Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          deleted file mode 100644
          index a109ca3..0000000
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: AudioBook">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../AudioBook.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.AudioBook" class="title">Uses of Class<br>musichub.business.AudioBook</h1>
          -</div>
          -No usage of musichub.business.AudioBook</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          deleted file mode 100644
          index 1249775..0000000
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ /dev/null
          @@ -1,124 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: AudioElement">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../AudioElement.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.AudioElement" class="title">Uses of Class<br>musichub.business.AudioElement</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Subclasses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>class&nbsp;</code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="../AudioBook.html" title="class in musichub.business">AudioBook</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="../Song.html" title="class in musichub.business">Song</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#elements()">elements</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Method parameters in <a href="../package-summary.html">musichub.business</a> with type arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          deleted file mode 100644
          index 022df3a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Category">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Category.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Category" class="title">Uses of Enum Class<br>musichub.business.Category</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Category.html" title="enum class in musichub.business">Category</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          deleted file mode 100644
          index a9cd613..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ /dev/null
          @@ -1,98 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Genre">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Genre.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Genre" class="title">Uses of Enum Class<br>musichub.business.Genre</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Genre.html" title="enum class in musichub.business">Genre</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#values()">values</a></span>()</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          deleted file mode 100644
          index 86ed23a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Language">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Language.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Language" class="title">Uses of Enum Class<br>musichub.business.Language</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Language.html" title="enum class in musichub.business">Language</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          deleted file mode 100644
          index 683a7e5..0000000
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: MusicHub">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../MusicHub.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.MusicHub" class="title">Uses of Class<br>musichub.business.MusicHub</h1>
          -</div>
          -No usage of musichub.business.MusicHub</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          deleted file mode 100644
          index 3d190ec..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoAlbumFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoAlbumFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoAlbumFoundException" class="title">Uses of Class<br>musichub.business.NoAlbumFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          deleted file mode 100644
          index 07bc200..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ /dev/null
          @@ -1,95 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoElementFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoElementFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoElementFoundException" class="title">Uses of Class<br>musichub.business.NoElementFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          deleted file mode 100644
          index 0a7a442..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ /dev/null
          @@ -1,94 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoPlayListFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoPlayListFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoPlayListFoundException" class="title">Uses of Class<br>musichub.business.NoPlayListFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          deleted file mode 100644
          index 151e091..0000000
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ /dev/null
          @@ -1,99 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: PlayList">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../PlayList.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.PlayList" class="title">Uses of Class<br>musichub.business.PlayList</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../PlayList.html" title="class in musichub.business">PlayList</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#playlists()">playlists</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          deleted file mode 100644
          index f7caf68..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ /dev/null
          @@ -1,90 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: Song">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Song.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.Song" class="title">Uses of Class<br>musichub.business.Song</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Song.html" title="class in musichub.business">Song</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          deleted file mode 100644
          index ab9bef3..0000000
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ /dev/null
          @@ -1,116 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.business (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.business</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.business</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Album.html" title="class in musichub.business">Album</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</li>
          -<li>
          -<div class="caption"><span>Enum Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Category.html" title="enum class in musichub.business">Category</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="Genre.html" title="enum class in musichub.business">Genre</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="Language.html" title="enum class in musichub.business">Language</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -<li>
          -<div class="caption"><span>Exception Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Exception</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          deleted file mode 100644
          index e1a5f5b..0000000
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ /dev/null
          @@ -1,114 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.business</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          -<li class="circle">musichub.business.<a href="AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          -<li class="circle">musichub.business.<a href="Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          -</ul>
          -</li>
          -<li class="circle">musichub.business.<a href="MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -<section class="hierarchy">
          -<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">musichub.business.<a href="Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          -<li class="circle">musichub.business.<a href="Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          -<li class="circle">musichub.business.<a href="Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          deleted file mode 100644
          index 89e8d56..0000000
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ /dev/null
          @@ -1,105 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.business" class="title">Uses of Package<br>musichub.business</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="package-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<div class="caption"><span>Classes in <a href="package-summary.html">musichub.business</a> used by <a href="package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="class-use/Album.html#musichub.business">Album</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/AudioElement.html#musichub.business">AudioElement</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/Category.html#musichub.business">Category</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/Genre.html#musichub.business">Genre</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/Language.html#musichub.business">Language</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/NoAlbumFoundException.html#musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/NoElementFoundException.html#musichub.business">NoElementFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/NoPlayListFoundException.html#musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/PlayList.html#musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/Song.html#musichub.business">Song</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          deleted file mode 100644
          index 2a6bcf8..0000000
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ /dev/null
          @@ -1,175 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.main, class: Main">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Main.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.main</a></div>
          -<h1 title="Class Main" class="title">Class Main</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.main.Main</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Main</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">Main</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>Main</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Main</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="main(java.lang.String[])">
          -<h3>main</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">main</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</span>
          -                 throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          deleted file mode 100644
          index 819433d..0000000
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.main, class: Main">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Main.html" title="class in musichub.main">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.main.Main" class="title">Uses of Class<br>musichub.main.Main</h1>
          -</div>
          -No usage of musichub.main.Main</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          deleted file mode 100644
          index afcd6ad..0000000
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ /dev/null
          @@ -1,80 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.main</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.main</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          deleted file mode 100644
          index 393b386..0000000
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ /dev/null
          @@ -1,79 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.main</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.main.<a href="Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          deleted file mode 100644
          index 0747159..0000000
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.main" class="title">Uses of Package<br>musichub.main</h1>
          -</div>
          -No usage of musichub.main</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          deleted file mode 100644
          index 53ffdbe..0000000
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ /dev/null
          @@ -1,186 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>XMLHandler (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.util, class: XMLHandler">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/XMLHandler.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          -<h1 title="Class XMLHandler" class="title">Class XMLHandler</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.util.XMLHandler</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">XMLHandler</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">XMLHandler</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLDocument()">createXMLDocument</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#parseXMLFile(java.lang.String)">parseXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>XMLHandler</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">XMLHandler</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="createXMLFile(org.w3c.dom.Document,java.lang.String)">
          -<h3>createXMLFile</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLDocument()">
          -<h3>createXMLDocument</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></span>&nbsp;<span class="element-name">createXMLDocument</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="parseXMLFile(java.lang.String)">
          -<h3>parseXMLFile</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></span>&nbsp;<span class="element-name">parseXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          deleted file mode 100644
          index 8c6ad08..0000000
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.util, class: XMLHandler">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../XMLHandler.html" title="class in musichub.util">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.util.XMLHandler" class="title">Uses of Class<br>musichub.util.XMLHandler</h1>
          -</div>
          -No usage of musichub.util.XMLHandler</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          deleted file mode 100644
          index 24257be..0000000
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ /dev/null
          @@ -1,88 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.util (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.util</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.util</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          -<div class="col-last even-row-color">
          -<div class="block">Class offering a log writing method.</div>
          -</div>
          -<div class="col-first odd-row-color"><a href="PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          deleted file mode 100644
          index ace19b6..0000000
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ /dev/null
          @@ -1,81 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.util</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          -<li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          -<li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          deleted file mode 100644
          index 02a3fc7..0000000
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.util" class="title">Uses of Package<br>musichub.util</h1>
          -</div>
          -No usage of musichub.util</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          deleted file mode 100644
          index 370d2cb..0000000
          --- a/target/site/apidocs/overview-summary.html
          +++ /dev/null
          @@ -1,27 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>spoteezer 0.1.0 API</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="index redirect">
          -<meta name="generator" content="javadoc/IndexRedirectWriter">
          -<link rel="canonical" href="index.html">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<script type="text/javascript">window.location.replace('index.html')</script>
          -<noscript>
          -<meta http-equiv="Refresh" content="0;index.html">
          -</noscript>
          -</head>
          -<body class="index-redirect-page">
          -<main role="main">
          -<noscript>
          -<p>JavaScript is disabled on your browser.</p>
          -</noscript>
          -<p><a href="index.html">index.html</a></p>
          -</main>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          deleted file mode 100644
          index 943af3e..0000000
          --- a/target/site/apidocs/overview-tree.html
          +++ /dev/null
          @@ -1,120 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="class tree">
          -<meta name="generator" content="javadoc/TreeWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="tree-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For All Packages</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="musichub/business/package-tree.html">musichub.business</a>, </li>
          -<li><a href="musichub/main/package-tree.html">musichub.main</a>, </li>
          -<li><a href="musichub/util/package-tree.html">musichub.util</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          -</ul>
          -</li>
          -<li class="circle">musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          -<li class="circle">musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -<li class="circle">musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -<section class="hierarchy">
          -<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/package-search-index.js b/target/site/apidocs/package-search-index.js
          deleted file mode 100644
          index 3098d0e..0000000
          --- a/target/site/apidocs/package-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"musichub.business"},{"l":"musichub.main"},{"l":"musichub.util"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/resources/glass.png b/target/site/apidocs/resources/glass.png
          deleted file mode 100644
          index a7f591f..0000000
          Binary files a/target/site/apidocs/resources/glass.png and /dev/null differ
          diff --git a/target/site/apidocs/resources/x.png b/target/site/apidocs/resources/x.png
          deleted file mode 100644
          index 30548a7..0000000
          Binary files a/target/site/apidocs/resources/x.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
          deleted file mode 100644
          index 34abd18..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
          deleted file mode 100644
          index f058a93..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
          deleted file mode 100644
          index 2ce04c1..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
          deleted file mode 100644
          index a90afb8..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
          deleted file mode 100644
          index dbe091f..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
          deleted file mode 100644
          index 5dc3593..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
          deleted file mode 100644
          index e723e17..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
          deleted file mode 100644
          index 1f5f497..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
          deleted file mode 100644
          index 618f5b0..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
          deleted file mode 100644
          index ee5e33f..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
          deleted file mode 100644
          index 7e8ebc1..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/jquery-3.5.1.min.js b/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          deleted file mode 100644
          index b061403..0000000
          --- a/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          +++ /dev/null
          @@ -1,2 +0,0 @@
          -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
          -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.css b/target/site/apidocs/script-dir/jquery-ui.min.css
          deleted file mode 100644
          index 6be72f5..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.min.css
          +++ /dev/null
          @@ -1,7 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Includes: core.css, autocomplete.css, menu.css, theme.css
          -* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.js b/target/site/apidocs/script-dir/jquery-ui.min.js
          deleted file mode 100644
          index 54d4beb..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.min.js
          +++ /dev/null
          @@ -1,6 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):l.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=l.test(i[1])?i[1]:"center",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=h+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());"right"===n.my[0]?D.left-=h:"center"===n.my[0]&&(D.left-=h/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete});
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.structure.min.css b/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          deleted file mode 100644
          index e880892..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          +++ /dev/null
          @@ -1,5 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script.js b/target/site/apidocs/script.js
          deleted file mode 100644
          index 864989c..0000000
          --- a/target/site/apidocs/script.js
          +++ /dev/null
          @@ -1,132 +0,0 @@
          -/*
          - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -var moduleSearchIndex;
          -var packageSearchIndex;
          -var typeSearchIndex;
          -var memberSearchIndex;
          -var tagSearchIndex;
          -function loadScripts(doc, tag) {
          -    createElem(doc, tag, 'search.js');
          -
          -    createElem(doc, tag, 'module-search-index.js');
          -    createElem(doc, tag, 'package-search-index.js');
          -    createElem(doc, tag, 'type-search-index.js');
          -    createElem(doc, tag, 'member-search-index.js');
          -    createElem(doc, tag, 'tag-search-index.js');
          -}
          -
          -function createElem(doc, tag, path) {
          -    var script = doc.createElement(tag);
          -    var scriptElement = doc.getElementsByTagName(tag)[0];
          -    script.src = pathtoroot + path;
          -    scriptElement.parentNode.insertBefore(script, scriptElement);
          -}
          -
          -function show(tableId, selected, columns) {
          -    if (tableId !== selected) {
          -        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
          -            .forEach(function(elem) {
          -                elem.style.display = 'none';
          -            });
          -    }
          -    document.querySelectorAll('div.' + selected)
          -        .forEach(function(elem, index) {
          -            elem.style.display = '';
          -            var isEvenRow = index % (columns * 2) < columns;
          -            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
          -            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
          -        });
          -    updateTabs(tableId, selected);
          -}
          -
          -function updateTabs(tableId, selected) {
          -    document.querySelector('div#' + tableId +' .summary-table')
          -        .setAttribute('aria-labelledby', selected);
          -    document.querySelectorAll('button[id^="' + tableId + '"]')
          -        .forEach(function(tab, index) {
          -            if (selected === tab.id || (tableId === selected && index === 0)) {
          -                tab.className = activeTableTab;
          -                tab.setAttribute('aria-selected', true);
          -                tab.setAttribute('tabindex',0);
          -            } else {
          -                tab.className = tableTab;
          -                tab.setAttribute('aria-selected', false);
          -                tab.setAttribute('tabindex',-1);
          -            }
          -        });
          -}
          -
          -function switchTab(e) {
          -    var selected = document.querySelector('[aria-selected=true]');
          -    if (selected) {
          -        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
          -            // left or up arrow key pressed: move focus to previous tab
          -            selected.previousSibling.click();
          -            selected.previousSibling.focus();
          -            e.preventDefault();
          -        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
          -            // right or down arrow key pressed: move focus to next tab
          -            selected.nextSibling.click();
          -            selected.nextSibling.focus();
          -            e.preventDefault();
          -        }
          -    }
          -}
          -
          -var updateSearchResults = function() {};
          -
          -function indexFilesLoaded() {
          -    return moduleSearchIndex
          -        && packageSearchIndex
          -        && typeSearchIndex
          -        && memberSearchIndex
          -        && tagSearchIndex;
          -}
          -
          -// Workaround for scroll position not being included in browser history (8249133)
          -document.addEventListener("DOMContentLoaded", function(e) {
          -    var contentDiv = document.querySelector("div.flex-content");
          -    window.addEventListener("popstate", function(e) {
          -        if (e.state !== null) {
          -            contentDiv.scrollTop = e.state;
          -        }
          -    });
          -    window.addEventListener("hashchange", function(e) {
          -        history.replaceState(contentDiv.scrollTop, document.title);
          -    });
          -    contentDiv.addEventListener("scroll", function(e) {
          -        var timeoutID;
          -        if (!timeoutID) {
          -            timeoutID = setTimeout(function() {
          -                history.replaceState(contentDiv.scrollTop, document.title);
          -                timeoutID = null;
          -            }, 100);
          -        }
          -    });
          -    if (!location.hash) {
          -        history.replaceState(contentDiv.scrollTop, document.title);
          -    }
          -});
          diff --git a/target/site/apidocs/search.js b/target/site/apidocs/search.js
          deleted file mode 100644
          index 2c2ced0..0000000
          --- a/target/site/apidocs/search.js
          +++ /dev/null
          @@ -1,354 +0,0 @@
          -/*
          - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -var noResult = {l: "No results found"};
          -var loading = {l: "Loading search index..."};
          -var catModules = "Modules";
          -var catPackages = "Packages";
          -var catTypes = "Classes and Interfaces";
          -var catMembers = "Members";
          -var catSearchTags = "Search Tags";
          -var highlight = "<span class=\"result-highlight\">$&</span>";
          -var searchPattern = "";
          -var fallbackPattern = "";
          -var RANKING_THRESHOLD = 2;
          -var NO_MATCH = 0xffff;
          -var MIN_RESULTS = 3;
          -var MAX_RESULTS = 500;
          -var UNNAMED = "<Unnamed>";
          -function escapeHtml(str) {
          -    return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
          -}
          -function getHighlightedText(item, matcher, fallbackMatcher) {
          -    var escapedItem = escapeHtml(item);
          -    var highlighted = escapedItem.replace(matcher, highlight);
          -    if (highlighted === escapedItem) {
          -        highlighted = escapedItem.replace(fallbackMatcher, highlight)
          -    }
          -    return highlighted;
          -}
          -function getURLPrefix(ui) {
          -    var urlPrefix="";
          -    var slash = "/";
          -    if (ui.item.category === catModules) {
          -        return ui.item.l + slash;
          -    } else if (ui.item.category === catPackages && ui.item.m) {
          -        return ui.item.m + slash;
          -    } else if (ui.item.category === catTypes || ui.item.category === catMembers) {
          -        if (ui.item.m) {
          -            urlPrefix = ui.item.m + slash;
          -        } else {
          -            $.each(packageSearchIndex, function(index, item) {
          -                if (item.m && ui.item.p === item.l) {
          -                    urlPrefix = item.m + slash;
          -                }
          -            });
          -        }
          -    }
          -    return urlPrefix;
          -}
          -function createSearchPattern(term) {
          -    var pattern = "";
          -    var isWordToken = false;
          -    term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) {
          -        if (index > 0) {
          -            // whitespace between identifiers is significant
          -            pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*";
          -        }
          -        var tokens = w.split(/(?=[A-Z,.()<>[\/])/);
          -        for (var i = 0; i < tokens.length; i++) {
          -            var s = tokens[i];
          -            if (s === "") {
          -                continue;
          -            }
          -            pattern += $.ui.autocomplete.escapeRegex(s);
          -            isWordToken =  /\w$/.test(s);
          -            if (isWordToken) {
          -                pattern += "([a-z0-9_$<>\\[\\]]*?)";
          -            }
          -        }
          -    });
          -    return pattern;
          -}
          -function createMatcher(pattern, flags) {
          -    var isCamelCase = /[A-Z]/.test(pattern);
          -    return new RegExp(pattern, flags + (isCamelCase ? "" : "i"));
          -}
          -var watermark = 'Search';
          -$(function() {
          -    var search = $("#search");
          -    var reset = $("#reset");
          -    search.val('');
          -    search.prop("disabled", false);
          -    reset.prop("disabled", false);
          -    search.val(watermark).addClass('watermark');
          -    search.blur(function() {
          -        if ($(this).val().length === 0) {
          -            $(this).val(watermark).addClass('watermark');
          -        }
          -    });
          -    search.on('click keydown paste', function() {
          -        if ($(this).val() === watermark) {
          -            $(this).val('').removeClass('watermark');
          -        }
          -    });
          -    reset.click(function() {
          -        search.val('').focus();
          -    });
          -    search.focus()[0].setSelectionRange(0, 0);
          -});
          -$.widget("custom.catcomplete", $.ui.autocomplete, {
          -    _create: function() {
          -        this._super();
          -        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
          -    },
          -    _renderMenu: function(ul, items) {
          -        var rMenu = this;
          -        var currentCategory = "";
          -        rMenu.menu.bindings = $();
          -        $.each(items, function(index, item) {
          -            var li;
          -            if (item.category && item.category !== currentCategory) {
          -                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
          -                currentCategory = item.category;
          -            }
          -            li = rMenu._renderItemData(ul, item);
          -            if (item.category) {
          -                li.attr("aria-label", item.category + " : " + item.l);
          -                li.attr("class", "result-item");
          -            } else {
          -                li.attr("aria-label", item.l);
          -                li.attr("class", "result-item");
          -            }
          -        });
          -    },
          -    _renderItem: function(ul, item) {
          -        var label = "";
          -        var matcher = createMatcher(escapeHtml(searchPattern), "g");
          -        var fallbackMatcher = new RegExp(fallbackPattern, "gi")
          -        if (item.category === catModules) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catPackages) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catTypes) {
          -            label = (item.p && item.p !== UNNAMED)
          -                    ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher)
          -                    : getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catMembers) {
          -            label = (item.p && item.p !== UNNAMED)
          -                    ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher)
          -                    : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catSearchTags) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else {
          -            label = item.l;
          -        }
          -        var li = $("<li/>").appendTo(ul);
          -        var div = $("<div/>").appendTo(li);
          -        if (item.category === catSearchTags && item.h) {
          -            if (item.d) {
          -                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span><br><span class=\"search-tag-desc-result\">"
          -                                + item.d + "</span><br>");
          -            } else {
          -                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span>");
          -            }
          -        } else {
          -            if (item.m) {
          -                div.html(item.m + "/" + label);
          -            } else {
          -                div.html(label);
          -            }
          -        }
          -        return li;
          -    }
          -});
          -function rankMatch(match, category) {
          -    if (!match) {
          -        return NO_MATCH;
          -    }
          -    var index = match.index;
          -    var input = match.input;
          -    var leftBoundaryMatch = 2;
          -    var periferalMatch = 0;
          -    // make sure match is anchored on a left word boundary
          -    if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) {
          -        leftBoundaryMatch = 0;
          -    } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) {
          -        leftBoundaryMatch = 1;
          -    }
          -    var matchEnd = index + match[0].length;
          -    var leftParen = input.indexOf("(");
          -    var endOfName = leftParen > -1 ? leftParen : input.length;
          -    // exclude peripheral matches
          -    if (category !== catModules && category !== catSearchTags) {
          -        var delim = category === catPackages ? "/" : ".";
          -        if (leftParen > -1 && leftParen < index) {
          -            periferalMatch += 2;
          -        } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) {
          -            periferalMatch += 2;
          -        }
          -    }
          -    var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match
          -    for (var i = 1; i < match.length; i++) {
          -        // lower ranking if parts of the name are missing
          -        if (match[i])
          -            delta += match[i].length;
          -    }
          -    if (category === catTypes) {
          -        // lower ranking if a type name contains unmatched camel-case parts
          -        if (/[A-Z]/.test(input.substring(matchEnd)))
          -            delta += 5;
          -        if (/[A-Z]/.test(input.substring(0, index)))
          -            delta += 5;
          -    }
          -    return leftBoundaryMatch + periferalMatch + (delta / 200);
          -
          -}
          -function doSearch(request, response) {
          -    var result = [];
          -    searchPattern = createSearchPattern(request.term);
          -    fallbackPattern = createSearchPattern(request.term.toLowerCase());
          -    if (searchPattern === "") {
          -        return this.close();
          -    }
          -    var camelCaseMatcher = createMatcher(searchPattern, "");
          -    var fallbackMatcher = new RegExp(fallbackPattern, "i");
          -
          -    function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) {
          -        if (indexArray) {
          -            var newResults = [];
          -            $.each(indexArray, function (i, item) {
          -                item.category = category;
          -                var ranking = rankMatch(matcher.exec(nameFunc(item)), category);
          -                if (ranking < RANKING_THRESHOLD) {
          -                    newResults.push({ranking: ranking, item: item});
          -                }
          -                return newResults.length <= MAX_RESULTS;
          -            });
          -            return newResults.sort(function(e1, e2) {
          -                return e1.ranking - e2.ranking;
          -            }).map(function(e) {
          -                return e.item;
          -            });
          -        }
          -        return [];
          -    }
          -    function searchIndex(indexArray, category, nameFunc) {
          -        var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc);
          -        result = result.concat(primaryResults);
          -        if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) {
          -            var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc);
          -            result = result.concat(secondaryResults.filter(function (item) {
          -                return primaryResults.indexOf(item) === -1;
          -            }));
          -        }
          -    }
          -
          -    searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; });
          -    searchIndex(packageSearchIndex, catPackages, function(item) {
          -        return (item.m && request.term.indexOf("/") > -1)
          -            ? (item.m + "/" + item.l) : item.l;
          -    });
          -    searchIndex(typeSearchIndex, catTypes, function(item) {
          -        return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l;
          -    });
          -    searchIndex(memberSearchIndex, catMembers, function(item) {
          -        return request.term.indexOf(".") > -1
          -            ? item.p + "." + item.c + "." + item.l : item.l;
          -    });
          -    searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; });
          -
          -    if (!indexFilesLoaded()) {
          -        updateSearchResults = function() {
          -            doSearch(request, response);
          -        }
          -        result.unshift(loading);
          -    } else {
          -        updateSearchResults = function() {};
          -    }
          -    response(result);
          -}
          -$(function() {
          -    $("#search").catcomplete({
          -        minLength: 1,
          -        delay: 300,
          -        source: doSearch,
          -        response: function(event, ui) {
          -            if (!ui.content.length) {
          -                ui.content.push(noResult);
          -            } else {
          -                $("#search").empty();
          -            }
          -        },
          -        autoFocus: true,
          -        focus: function(event, ui) {
          -            return false;
          -        },
          -        position: {
          -            collision: "flip"
          -        },
          -        select: function(event, ui) {
          -            if (ui.item.category) {
          -                var url = getURLPrefix(ui);
          -                if (ui.item.category === catModules) {
          -                    url += "module-summary.html";
          -                } else if (ui.item.category === catPackages) {
          -                    if (ui.item.u) {
          -                        url = ui.item.u;
          -                    } else {
          -                        url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
          -                    }
          -                } else if (ui.item.category === catTypes) {
          -                    if (ui.item.u) {
          -                        url = ui.item.u;
          -                    } else if (ui.item.p === UNNAMED) {
          -                        url += ui.item.l + ".html";
          -                    } else {
          -                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
          -                    }
          -                } else if (ui.item.category === catMembers) {
          -                    if (ui.item.p === UNNAMED) {
          -                        url += ui.item.c + ".html" + "#";
          -                    } else {
          -                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
          -                    }
          -                    if (ui.item.u) {
          -                        url += ui.item.u;
          -                    } else {
          -                        url += ui.item.l;
          -                    }
          -                } else if (ui.item.category === catSearchTags) {
          -                    url += ui.item.u;
          -                }
          -                if (top !== window) {
          -                    parent.classFrame.location = pathtoroot + url;
          -                } else {
          -                    window.location.href = pathtoroot + url;
          -                }
          -                $("#search").focus();
          -            }
          -        }
          -    });
          -});
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          deleted file mode 100644
          index 781fdeb..0000000
          --- a/target/site/apidocs/serialized-form.html
          +++ /dev/null
          @@ -1,89 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Serialized Form (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="serialized forms">
          -<meta name="generator" content="javadoc/SerializedFormWriterImpl">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="serialized-form-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Serialized Form" class="title">Serialized Form</h1>
          -</div>
          -<ul class="block-list">
          -<li>
          -<section class="serialized-package-container">
          -<h2 title="Package">Package&nbsp;musichub.business</h2>
          -<ul class="block-list">
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoAlbumFoundException">
          -<h3>Class <a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">musichub.business.NoAlbumFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoElementFoundException">
          -<h3>Class <a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">musichub.business.NoElementFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoPlayListFoundException">
          -<h3>Class <a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">musichub.business.NoPlayListFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/stylesheet.css b/target/site/apidocs/stylesheet.css
          deleted file mode 100644
          index 932e56c..0000000
          --- a/target/site/apidocs/stylesheet.css
          +++ /dev/null
          @@ -1,827 +0,0 @@
          -/*
          - * Javadoc style sheet
          - */
          -
          -@import url('resources/fonts/dejavu.css');
          -
          -/*
          - * Styles for individual HTML elements.
          - *
          - * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
          - * HTML element throughout the page.
          - */
          -
          -body {
          -    background-color:#ffffff;
          -    color:#353833;
          -    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size:14px;
          -    margin:0;
          -    padding:0;
          -    height:100%;
          -    width:100%;
          -}
          -iframe {
          -    margin:0;
          -    padding:0;
          -    height:100%;
          -    width:100%;
          -    overflow-y:scroll;
          -    border:none;
          -}
          -a:link, a:visited {
          -    text-decoration:none;
          -    color:#4A6782;
          -}
          -a[href]:hover, a[href]:focus {
          -    text-decoration:none;
          -    color:#bb7a2a;
          -}
          -a[name] {
          -    color:#353833;
          -}
          -pre {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -}
          -h1 {
          -    font-size:20px;
          -}
          -h2 {
          -    font-size:18px;
          -}
          -h3 {
          -    font-size:16px;
          -}
          -h4 {
          -    font-size:13px;
          -}
          -h5 {
          -    font-size:12px;
          -}
          -h6 {
          -    font-size:11px;
          -}
          -ul {
          -    list-style-type:disc;
          -}
          -code, tt {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    padding-top:4px;
          -    margin-top:8px;
          -    line-height:1.4em;
          -}
          -dt code {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    padding-top:4px;
          -}
          -.summary-table dt code {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    vertical-align:top;
          -    padding-top:4px;
          -}
          -sup {
          -    font-size:8px;
          -}
          -button {
          -    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size: 14px;
          -}
          -/*
          - * Styles for HTML generated by javadoc.
          - *
          - * These are style classes that are used by the standard doclet to generate HTML documentation.
          - */
          -
          -/*
          - * Styles for document title and copyright.
          - */
          -.clear {
          -    clear:both;
          -    height:0;
          -    overflow:hidden;
          -}
          -.about-language {
          -    float:right;
          -    padding:0 21px 8px 8px;
          -    font-size:11px;
          -    margin-top:-9px;
          -    height:2.9em;
          -}
          -.legal-copy {
          -    margin-left:.5em;
          -}
          -.tab {
          -    background-color:#0066FF;
          -    color:#ffffff;
          -    padding:8px;
          -    width:5em;
          -    font-weight:bold;
          -}
          -/*
          - * Styles for navigation bar.
          - */
          -@media screen {
          -    .flex-box {
          -        position:fixed;
          -        display:flex;
          -        flex-direction:column;
          -        height: 100%;
          -        width: 100%;
          -    }
          -    .flex-header {
          -        flex: 0 0 auto;
          -    }
          -    .flex-content {
          -        flex: 1 1 auto;
          -        overflow-y: auto;
          -    }
          -}
          -.top-nav {
          -    background-color:#4D7A97;
          -    color:#FFFFFF;
          -    float:left;
          -    padding:0;
          -    width:100%;
          -    clear:right;
          -    min-height:2.8em;
          -    padding-top:10px;
          -    overflow:hidden;
          -    font-size:12px;
          -}
          -.sub-nav {
          -    background-color:#dee3e9;
          -    float:left;
          -    width:100%;
          -    overflow:hidden;
          -    font-size:12px;
          -}
          -.sub-nav div {
          -    clear:left;
          -    float:left;
          -    padding:0 0 5px 6px;
          -    text-transform:uppercase;
          -}
          -.sub-nav .nav-list {
          -    padding-top:5px;
          -}
          -ul.nav-list {
          -    display:block;
          -    margin:0 25px 0 0;
          -    padding:0;
          -}
          -ul.sub-nav-list {
          -    float:left;
          -    margin:0 25px 0 0;
          -    padding:0;
          -}
          -ul.nav-list li {
          -    list-style:none;
          -    float:left;
          -    padding: 5px 6px;
          -    text-transform:uppercase;
          -}
          -.sub-nav .nav-list-search {
          -    float:right;
          -    margin:0 0 0 0;
          -    padding:5px 6px;
          -    clear:none;
          -}
          -.nav-list-search label {
          -    position:relative;
          -    right:-16px;
          -}
          -ul.sub-nav-list li {
          -    list-style:none;
          -    float:left;
          -    padding-top:10px;
          -}
          -.top-nav a:link, .top-nav a:active, .top-nav a:visited {
          -    color:#FFFFFF;
          -    text-decoration:none;
          -    text-transform:uppercase;
          -}
          -.top-nav a:hover {
          -    text-decoration:none;
          -    color:#bb7a2a;
          -    text-transform:uppercase;
          -}
          -.nav-bar-cell1-rev {
          -    background-color:#F8981D;
          -    color:#253441;
          -    margin: auto 5px;
          -}
          -.skip-nav {
          -    position:absolute;
          -    top:auto;
          -    left:-9999px;
          -    overflow:hidden;
          -}
          -/*
          - * Hide navigation links and search box in print layout
          - */
          -@media print {
          -    ul.nav-list, div.sub-nav  {
          -        display:none;
          -    }
          -}
          -/*
          - * Styles for page header and footer.
          - */
          -.title {
          -    color:#2c4557;
          -    margin:10px 0;
          -}
          -.sub-title {
          -    margin:5px 0 0 0;
          -}
          -.header ul {
          -    margin:0 0 15px 0;
          -    padding:0;
          -}
          -.header ul li, .footer ul li {
          -    list-style:none;
          -    font-size:13px;
          -}
          -/*
          - * Styles for headings.
          - */
          -body.class-declaration-page .summary h2,
          -body.class-declaration-page .details h2,
          -body.class-use-page  h2,
          -body.module-declaration-page  .block-list h2 {
          -    font-style: italic;
          -    padding:0;
          -    margin:15px 0;
          -}
          -body.class-declaration-page .summary h3,
          -body.class-declaration-page .details h3,
          -body.class-declaration-page .summary .inherited-list h2 {
          -    background-color:#dee3e9;
          -    border:1px solid #d0d9e0;
          -    margin:0 0 6px -8px;
          -    padding:7px 5px;
          -}
          -/*
          - * Styles for page layout containers.
          - */
          -main {
          -    clear:both;
          -    padding:10px 20px;
          -    position:relative;
          -}
          -dl.notes > dt {
          -    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size:12px;
          -    font-weight:bold;
          -    margin:10px 0 0 0;
          -    color:#4E4E4E;
          -}
          -dl.notes > dd {
          -    margin:5px 0 10px 0;
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -}
          -dl.name-value > dt {
          -    margin-left:1px;
          -    font-size:1.1em;
          -    display:inline;
          -    font-weight:bold;
          -}
          -dl.name-value > dd {
          -    margin:0 0 0 1px;
          -    font-size:1.1em;
          -    display:inline;
          -}
          -/*
          - * Styles for lists.
          - */
          -li.circle {
          -    list-style:circle;
          -}
          -ul.horizontal li {
          -    display:inline;
          -    font-size:0.9em;
          -}
          -div.inheritance {
          -    margin:0;
          -    padding:0;
          -}
          -div.inheritance div.inheritance {
          -    margin-left:2em;
          -}
          -ul.block-list,
          -ul.details-list,
          -ul.member-list,
          -ul.summary-list {
          -    margin:10px 0 10px 0;
          -    padding:0;
          -}
          -ul.block-list > li,
          -ul.details-list > li,
          -ul.member-list > li,
          -ul.summary-list > li {
          -    list-style:none;
          -    margin-bottom:15px;
          -    line-height:1.4;
          -}
          -.summary-table dl, .summary-table dl dt, .summary-table dl dd {
          -    margin-top:0;
          -    margin-bottom:1px;
          -}
          -/*
          - * Styles for tables.
          - */
          -.summary-table {
          -    width:100%;
          -    border-spacing:0;
          -    border-left:1px solid #EEE;
          -    border-right:1px solid #EEE;
          -    border-bottom:1px solid #EEE;
          -}
          -.summary-table {
          -    padding:0;
          -}
          -.caption {
          -    position:relative;
          -    text-align:left;
          -    background-repeat:no-repeat;
          -    color:#253441;
          -    font-weight:bold;
          -    clear:none;
          -    overflow:hidden;
          -    padding:0px;
          -    padding-top:10px;
          -    padding-left:1px;
          -    margin:0px;
          -    white-space:pre;
          -}
          -.caption a:link, .caption a:visited {
          -    color:#1f389c;
          -}
          -.caption a:hover,
          -.caption a:active {
          -    color:#FFFFFF;
          -}
          -.caption span {
          -    white-space:nowrap;
          -    padding-top:5px;
          -    padding-left:12px;
          -    padding-right:12px;
          -    padding-bottom:7px;
          -    display:inline-block;
          -    float:left;
          -    background-color:#F8981D;
          -    border: none;
          -    height:16px;
          -}
          -
          -div.table-tabs > button {
          -   border: none;
          -   cursor: pointer;
          -   padding: 5px 12px 7px 12px;
          -   font-weight: bold;
          -   margin-right: 3px;
          -}
          -div.table-tabs > button.active-table-tab {
          -   background: #F8981D;
          -   color: #253441;
          -}
          -div.table-tabs > button.table-tab {
          -   background: #4D7A97;
          -   color: #FFFFFF;
          -}
          -.two-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          -}
          -.three-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
          -}
          -.four-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
          -}
          -@media screen and (max-width: 600px) {
          -    .two-column-summary {
          -        display: grid;
          -        grid-template-columns: 1fr;
          -    }
          -}
          -@media screen and (max-width: 800px) {
          -    .three-column-summary {
          -        display: grid;
          -        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
          -    }
          -    .three-column-summary .col-last {
          -        grid-column-end: span 2;
          -    }
          -}
          -@media screen and (max-width: 1000px) {
          -    .four-column-summary {
          -        display: grid;
          -        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          -    }
          -}
          -.summary-table > div {
          -    text-align:left;
          -    padding: 8px 3px 3px 7px;
          -}
          -.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name {
          -    vertical-align:top;
          -    padding-right:0;
          -    padding-top:8px;
          -    padding-bottom:3px;
          -}
          -.table-header {
          -    background:#dee3e9;
          -    font-weight: bold;
          -}
          -.col-first, .col-first {
          -    font-size:13px;
          -}
          -.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last {
          -    font-size:13px;
          -}
          -.col-first, .col-second, .col-constructor-name {
          -    vertical-align:top;
          -    overflow: auto;
          -}
          -.col-last {
          -    white-space:normal;
          -}
          -.col-first a:link, .col-first a:visited,
          -.col-second a:link, .col-second a:visited,
          -.col-first a:link, .col-first a:visited,
          -.col-second a:link, .col-second a:visited,
          -.col-constructor-name a:link, .col-constructor-name a:visited,
          -.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited,
          -.constant-values-container a:link, .constant-values-container a:visited,
          -.all-classes-container a:link, .all-classes-container a:visited,
          -.all-packages-container a:link, .all-packages-container a:visited {
          -    font-weight:bold;
          -}
          -.table-sub-heading-color {
          -    background-color:#EEEEFF;
          -}
          -.even-row-color, .even-row-color .table-header {
          -    background-color:#FFFFFF;
          -}
          -.odd-row-color, .odd-row-color .table-header {
          -    background-color:#EEEEEF;
          -}
          -/*
          - * Styles for contents.
          - */
          -.deprecated-content {
          -    margin:0;
          -    padding:10px 0;
          -}
          -div.block {
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -}
          -.col-last div {
          -    padding-top:0;
          -}
          -.col-last a {
          -    padding-bottom:3px;
          -}
          -.module-signature,
          -.package-signature,
          -.type-signature,
          -.member-signature {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    margin:14px 0;
          -    white-space: pre-wrap;
          -}
          -.module-signature,
          -.package-signature,
          -.type-signature {
          -    margin-top: 0;
          -}
          -.member-signature .type-parameters-long,
          -.member-signature .parameters,
          -.member-signature .exceptions {
          -    display: inline-block;
          -    vertical-align: top;
          -    white-space: pre;
          -}
          -.member-signature .type-parameters {
          -    white-space: normal;
          -}
          -/*
          - * Styles for formatting effect.
          - */
          -.source-line-no {
          -    color:green;
          -    padding:0 30px 0 0;
          -}
          -h1.hidden {
          -    visibility:hidden;
          -    overflow:hidden;
          -    font-size:10px;
          -}
          -.block {
          -    display:block;
          -    margin:0 10px 5px 0;
          -    color:#474747;
          -}
          -.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
          -.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
          -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link {
          -    font-weight:bold;
          -}
          -.deprecation-comment, .help-footnote, .interface-name {
          -    font-style:italic;
          -}
          -.deprecation-block {
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -    border-style:solid;
          -    border-width:thin;
          -    border-radius:10px;
          -    padding:10px;
          -    margin-bottom:10px;
          -    margin-right:10px;
          -    display:inline-block;
          -}
          -div.block div.deprecation-comment, div.block div.block span.emphasized-phrase,
          -div.block div.block span.interface-name {
          -    font-style:normal;
          -}
          -/*
          - * Styles specific to HTML5 elements.
          - */
          -main, nav, header, footer, section {
          -    display:block;
          -}
          -/*
          - * Styles for javadoc search.
          - */
          -.ui-autocomplete-category {
          -    font-weight:bold;
          -    font-size:15px;
          -    padding:7px 0 7px 3px;
          -    background-color:#4D7A97;
          -    color:#FFFFFF;
          -}
          -.result-item {
          -    font-size:13px;
          -}
          -.ui-autocomplete {
          -    max-height:85%;
          -    max-width:65%;
          -    overflow-y:scroll;
          -    overflow-x:scroll;
          -    white-space:nowrap;
          -    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
          -}
          -ul.ui-autocomplete {
          -    position:fixed;
          -    z-index:999999;
          -}
          -ul.ui-autocomplete  li {
          -    float:left;
          -    clear:both;
          -    width:100%;
          -}
          -.result-highlight {
          -    font-weight:bold;
          -}
          -#search {
          -    background-image:url('resources/glass.png');
          -    background-size:13px;
          -    background-repeat:no-repeat;
          -    background-position:2px 3px;
          -    padding-left:20px;
          -    position:relative;
          -    right:-18px;
          -    width:400px;
          -}
          -#reset {
          -    background-color: rgb(255,255,255);
          -    background-image:url('resources/x.png');
          -    background-position:center;
          -    background-repeat:no-repeat;
          -    background-size:12px;
          -    border:0 none;
          -    width:16px;
          -    height:16px;
          -    position:relative;
          -    left:-4px;
          -    top:-4px;
          -    font-size:0px;
          -}
          -.watermark {
          -    color:#545454;
          -}
          -.search-tag-desc-result {
          -    font-style:italic;
          -    font-size:11px;
          -}
          -.search-tag-holder-result {
          -    font-style:italic;
          -    font-size:12px;
          -}
          -.search-tag-result:target {
          -    background-color:yellow;
          -}
          -.module-graph span {
          -    display:none;
          -    position:absolute;
          -}
          -.module-graph:hover span {
          -    display:block;
          -    margin: -100px 0 0 100px;
          -    z-index: 1;
          -}
          -.inherited-list {
          -    margin: 10px 0 10px 0;
          -}
          -section.description {
          -    line-height: 1.4;
          -}
          -.summary section[class$="-summary"], .details section[class$="-details"],
          -.class-uses .detail, .serialized-class-details {
          -    padding: 0px 20px 5px 10px;
          -    border: 1px solid #ededed;
          -    background-color: #f8f8f8;
          -}
          -.inherited-list, section[class$="-details"] .detail {
          -    padding:0 0 5px 8px;
          -    background-color:#ffffff;
          -    border:none;
          -}
          -.vertical-separator {
          -    padding: 0 5px;
          -}
          -ul.help-section-list {
          -    margin: 0;
          -}
          -/*
          - * Indicator icon for external links.
          - */
          -main a[href*="://"]::after {
          -    content:"";
          -    display:inline-block;
          -    background-image:url('data:image/svg+xml; utf8, \
          -      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          -        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          -        132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\
          -      </svg>');
          -    background-size:100% 100%;
          -    width:7px;
          -    height:7px;
          -    margin-left:2px;
          -    margin-bottom:4px;
          -}
          -main a[href*="://"]:hover::after,
          -main a[href*="://"]:focus::after {
          -    background-image:url('data:image/svg+xml; utf8, \
          -      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          -        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          -        132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\
          -      </svg>');
          -}
          -
          -/*
          - * Styles for user-provided tables.
          - *
          - * borderless:
          - *      No borders, vertical margins, styled caption.
          - *      This style is provided for use with existing doc comments.
          - *      In general, borderless tables should not be used for layout purposes.
          - *
          - * plain:
          - *      Plain borders around table and cells, vertical margins, styled caption.
          - *      Best for small tables or for complex tables for tables with cells that span
          - *      rows and columns, when the "striped" style does not work well.
          - *
          - * striped:
          - *      Borders around the table and vertical borders between cells, striped rows,
          - *      vertical margins, styled caption.
          - *      Best for tables that have a header row, and a body containing a series of simple rows.
          - */
          -
          -table.borderless,
          -table.plain,
          -table.striped {
          -    margin-top: 10px;
          -    margin-bottom: 10px;
          -}
          -table.borderless > caption,
          -table.plain > caption,
          -table.striped > caption {
          -    font-weight: bold;
          -    font-size: smaller;
          -}
          -table.borderless th, table.borderless td,
          -table.plain th, table.plain td,
          -table.striped th, table.striped td {
          -    padding: 2px 5px;
          -}
          -table.borderless,
          -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
          -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
          -    border: none;
          -}
          -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
          -    background-color: transparent;
          -}
          -table.plain {
          -    border-collapse: collapse;
          -    border: 1px solid black;
          -}
          -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
          -    background-color: transparent;
          -}
          -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
          -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
          -    border: 1px solid black;
          -}
          -table.striped {
          -    border-collapse: collapse;
          -    border: 1px solid black;
          -}
          -table.striped > thead {
          -    background-color: #E3E3E3;
          -}
          -table.striped > thead > tr > th, table.striped > thead > tr > td {
          -    border: 1px solid black;
          -}
          -table.striped > tbody > tr:nth-child(even) {
          -    background-color: #EEE
          -}
          -table.striped > tbody > tr:nth-child(odd) {
          -    background-color: #FFF
          -}
          -table.striped > tbody > tr > th, table.striped > tbody > tr > td {
          -    border-left: 1px solid black;
          -    border-right: 1px solid black;
          -}
          -table.striped > tbody > tr > th {
          -    font-weight: normal;
          -}
          -/**
          - * Tweak font sizes and paddings for small screens.
          - */
          -@media screen and (max-width: 1050px) {
          -    #search {
          -        width: 300px;
          -    }
          -}
          -@media screen and (max-width: 800px) {
          -    #search {
          -        width: 200px;
          -    }
          -    .top-nav,
          -    .bottom-nav {
          -        font-size: 11px;
          -        padding-top: 6px;
          -    }
          -    .sub-nav {
          -        font-size: 11px;
          -    }
          -    .about-language {
          -        padding-right: 16px;
          -    }
          -    ul.nav-list li,
          -    .sub-nav .nav-list-search {
          -        padding: 6px;
          -    }
          -    ul.sub-nav-list li {
          -        padding-top: 5px;
          -    }
          -    main {
          -        padding: 10px;
          -    }
          -    .summary section[class$="-summary"], .details section[class$="-details"],
          -    .class-uses .detail, .serialized-class-details {
          -        padding: 0 8px 5px 8px;
          -    }
          -    body {
          -        -webkit-text-size-adjust: none;
          -    }
          -}
          -@media screen and (max-width: 500px) {
          -    #search {
          -        width: 150px;
          -    }
          -    .top-nav,
          -    .bottom-nav {
          -        font-size: 10px;
          -    }
          -    .sub-nav {
          -        font-size: 10px;
          -    }
          -    .about-language {
          -        font-size: 10px;
          -        padding-right: 12px;
          -    }
          -}
          diff --git a/target/site/apidocs/tag-search-index.js b/target/site/apidocs/tag-search-index.js
          deleted file mode 100644
          index f38b3cb..0000000
          --- a/target/site/apidocs/tag-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          deleted file mode 100644
          index 26dac6f..0000000
          --- a/target/site/apidocs/type-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index b800f3f..d0737be 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 740 of 2 803</td><td class="ctr2">2 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">206</td><td class="ctr2">211</td><td class="ctr1">730</td><td class="ctr2">745</td><td class="ctr1">88</td><td class="ctr2">93</td><td class="ctr1">17</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/><img src="jacoco-resources/greenbar.gif" width="3" height="10" title="63" alt="63"/></td><td class="ctr2" id="c0">46 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 674 of 2 803</td><td class="ctr2">4 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">202</td><td class="ctr2">211</td><td class="ctr1">709</td><td class="ctr2">745</td><td class="ctr1">84</td><td class="ctr2">93</td><td class="ctr1">16</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 4058e1f..a018689 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-be4b9e12</span></td><td>26 juin 2021, 22:06:25</td><td>26 juin 2021, 22:06:26</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-4db7b834</span></td><td>26 juin 2021, 22:06:38</td><td>26 juin 2021, 22:06:38</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>727806a24a38b49a</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>d7b83ca1e47cacd7</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>b026f96f38b030a9</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-b17df68a</span></td><td>27 juin 2021, 11:15:44</td><td>27 juin 2021, 11:15:45</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>6f7f85e323011650</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 6466855..f93071b 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -1,7 +1,7 @@
           GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
           spoteezer,musichub.util,PathValidation,0,17,0,0,0,4,0,2,0,2
           spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
          -spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
          +spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 2e46b55..9188cdf 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-be4b9e12" start="1624737985817" dump="1624737986228"/><sessioninfo id="DESKTOP-M4INQND-4db7b834" start="1624737998088" dump="1624737998495"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="37"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="56"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="37" mi="0" ci="5" mb="0" cb="0"/><line nr="40" mi="0" ci="5" mb="0" cb="0"/><line nr="43" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="10" mb="0" cb="0"/><line nr="49" mi="0" ci="1" mb="0" cb="0"/><line nr="56" mi="0" ci="5" mb="0" cb="0"/><line nr="59" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="63"/><counter type="LINE" missed="25" covered="15"/><counter type="COMPLEXITY" missed="4" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="1" covered="2"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2740" covered="63"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="730" covered="15"/><counter type="COMPLEXITY" missed="206" covered="5"/><counter type="METHOD" missed="88" covered="5"/><counter type="CLASS" missed="17" covered="2"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-b17df68a" start="1624785344991" dump="1624785345580"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2674" covered="129"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="709" covered="36"/><counter type="COMPLEXITY" missed="202" covered="9"/><counter type="METHOD" missed="84" covered="9"/><counter type="CLASS" missed="16" covered="3"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.html b/target/site/jacoco/musichub.util/XMLHandler.html
          index 7aff8c8..a99c1d8 100644
          --- a/target/site/jacoco/musichub.util/XMLHandler.html
          +++ b/target/site/jacoco/musichub.util/XMLHandler.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 72</td><td class="ctr2">91 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">4</td><td class="ctr2">25</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="104" height="10" title="20" alt="20"/></td><td class="ctr2" id="c2">86 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="104" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">86 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.java.html b/target/site/jacoco/musichub.util/XMLHandler.java.html
          index b8ee27a..7d6e751 100644
          --- a/target/site/jacoco/musichub.util/XMLHandler.java.html
          +++ b/target/site/jacoco/musichub.util/XMLHandler.java.html
          @@ -23,51 +23,51 @@ public class XMLHandler {
               DocumentBuilderFactory documentFactory;
               DocumentBuilder documentBuilder;
           
          -<span class="nc" id="L26">    public XMLHandler() {</span>
          +<span class="fc" id="L26">    public XMLHandler() {</span>
                   try {
          -<span class="nc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          -<span class="nc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          -<span class="nc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          -<span class="nc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
          +<span class="fc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          +<span class="fc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          +<span class="fc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          +<span class="fc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
           <span class="nc" id="L32">        } catch (TransformerException | ParserConfigurationException tfe) {</span>
           <span class="nc" id="L33">            tfe.printStackTrace();</span>
          -<span class="nc" id="L34">        }</span>
          -<span class="nc" id="L35">    }</span>
          +<span class="fc" id="L34">        }</span>
          +<span class="fc" id="L35">    }</span>
           
               public void createXMLFile(Document document, String filePath) {
                   try {
                       // create the xml file
                       //transform the DOM Object to an XML File
          -<span class="nc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          -<span class="nc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
          +<span class="fc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          +<span class="fc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
           
                       // If you use
                       // StreamResult result = new StreamResult(System.out);
                       // the output will be pushed to the standard output ...
                       // You can use that for debugging
           
          -<span class="nc" id="L49">            transformer.transform(domSource, streamResult);</span>
          +<span class="fc" id="L49">            transformer.transform(domSource, streamResult);</span>
           
           <span class="nc" id="L51">        } catch (TransformerException tfe) {</span>
           <span class="nc" id="L52">            tfe.printStackTrace();</span>
          -<span class="nc" id="L53">        }</span>
          -<span class="nc" id="L54">    }</span>
          +<span class="fc" id="L53">        }</span>
          +<span class="fc" id="L54">    }</span>
           
               public Document createXMLDocument() {
          -<span class="nc" id="L57">        return documentBuilder.newDocument();</span>
          +<span class="fc" id="L57">        return documentBuilder.newDocument();</span>
               }
           
               public NodeList parseXMLFile(String filePath) {
          -<span class="nc" id="L61">        NodeList elementNodes = null;</span>
          +<span class="fc" id="L61">        NodeList elementNodes = null;</span>
                   try {
          -<span class="nc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          -<span class="nc" id="L64">            Element root = document.getDocumentElement();</span>
          +<span class="fc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          +<span class="fc" id="L64">            Element root = document.getDocumentElement();</span>
           
          -<span class="nc" id="L66">            elementNodes = root.getChildNodes();</span>
          -<span class="nc" id="L67">        } catch (SAXException | IOException e) {</span>
          -<span class="nc" id="L68">            e.printStackTrace();</span>
          -<span class="nc" id="L69">        }</span>
          -<span class="nc" id="L70">        return elementNodes;</span>
          +<span class="fc" id="L66">            elementNodes = root.getChildNodes();</span>
          +<span class="fc" id="L67">        } catch (SAXException | IOException e) {</span>
          +<span class="fc" id="L68">            e.printStackTrace();</span>
          +<span class="fc" id="L69">        }</span>
          +<span class="fc" id="L70">        return elementNodes;</span>
               }
           
           
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 20f0d2b..8091491 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index f8bbd4e..ce29c52 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          deleted file mode 100644
          index ea96baa..0000000
          Binary files a/target/spoteezer-0.1.0.jar and /dev/null differ
          -- 
          cgit v1.2.3
          
          
          From 2969d3ea0553e5a1eed8db274bb89e94a082b1c1 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 11:18:22 +0200
          Subject: Changed the log type for the JUnit test of LogHandler
          
          ---
           log/spoteezer.log                               |  24 +-----------------------
           src/test/java/musichub/util/LogHandlerTest.java |   2 +-
           target/jacoco.exec                              | Bin 14814 -> 14814 bytes
           target/site/jacoco/jacoco-sessions.html         |   2 +-
           target/site/jacoco/jacoco.xml                   |   2 +-
           5 files changed, 4 insertions(+), 26 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 910a4f2..e18095f 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,26 +1,4 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
           [2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          -[2021-06-26 22:05:28.614] INFO: JUnit test
          -[2021-06-26 22:06:26.191] INFO: JUnit test
          -[2021-06-26 22:06:38.453] INFO: JUnit test
          -[2021-06-27 10:23:31.646] INFO: JUnit test
          -[2021-06-27 10:31:25.514] INFO: JUnit test
          -[2021-06-27 10:38:07.141] INFO: JUnit test
          -[2021-06-27 10:42:26.41] INFO: JUnit test
          -[2021-06-27 10:44:04.343] INFO: JUnit test
          -[2021-06-27 10:44:22.383] INFO: JUnit test
          -[2021-06-27 10:50:24.719] INFO: JUnit test
          -[2021-06-27 10:52:37.112] INFO: JUnit test
          -[2021-06-27 10:52:59.042] INFO: JUnit test
          -[2021-06-27 10:57:26.087] INFO: JUnit test
          -[2021-06-27 10:58:04.601] INFO: JUnit test
          -[2021-06-27 11:03:08.428] INFO: JUnit test
          -[2021-06-27 11:05:43.601] INFO: JUnit test
          -[2021-06-27 11:06:15.442] INFO: JUnit test
          -[2021-06-27 11:06:35.753] INFO: JUnit test
          -[2021-06-27 11:08:19.669] INFO: JUnit test
          -[2021-06-27 11:09:37.095] INFO: JUnit test
          -[2021-06-27 11:09:46.982] INFO: JUnit test
          -[2021-06-27 11:13:46.639] INFO: JUnit test
          -[2021-06-27 11:15:45.379] INFO: JUnit test
          \ No newline at end of file
          +[2021-06-27 11:17:47.927] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
          index 3965520..ab8e160 100644
          --- a/src/test/java/musichub/util/LogHandlerTest.java
          +++ b/src/test/java/musichub/util/LogHandlerTest.java
          @@ -24,7 +24,7 @@ public class LogHandlerTest {
               @Test
               void testWrite() {
                   try {
          -            write("JUnit test", "INFO");
          +            write("JUnit test", "TEST");
                   } catch (IOException e) {
                       e.printStackTrace();
                   }
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 51b090d..994c699 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index a018689..f1c42c1 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-b17df68a</span></td><td>27 juin 2021, 11:15:44</td><td>27 juin 2021, 11:15:45</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>6f7f85e323011650</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-636bf655</span></td><td>27 juin 2021, 11:17:47</td><td>27 juin 2021, 11:17:48</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 9188cdf..5ce5b9f 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-b17df68a" start="1624785344991" dump="1624785345580"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2674" covered="129"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="709" covered="36"/><counter type="COMPLEXITY" missed="202" covered="9"/><counter type="METHOD" missed="84" covered="9"/><counter type="CLASS" missed="16" covered="3"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-636bf655" start="1624785467554" dump="1624785468101"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2674" covered="129"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="709" covered="36"/><counter type="COMPLEXITY" missed="202" covered="9"/><counter type="METHOD" missed="84" covered="9"/><counter type="CLASS" missed="16" covered="3"/></report>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From a9f46e2164f0d9ce416f34ebcb68d532de98cdb2 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 11:55:45 +0200
          Subject: Starting Song tests
          
          ---
           log/spoteezer.log                                  |  14 +++++-
           src/test/java/musichub/business/SongTest.java      |  46 ++++++++++++++++++
           target/jacoco.exec                                 | Bin 14814 -> 15029 bytes
           .../default-testCompile/createdFiles.lst           |   1 +
           .../testCompile/default-testCompile/inputFiles.lst |   1 +
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   6 +--
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/AudioElement.html     |   2 +-
           .../musichub.business/AudioElement.java.html       |  54 ++++++++++-----------
           target/site/jacoco/musichub.business/Genre.html    |   2 +-
           .../site/jacoco/musichub.business/Genre.java.html  |  12 ++---
           target/site/jacoco/musichub.business/Song.html     |   2 +-
           .../site/jacoco/musichub.business/Song.java.html   |  28 +++++------
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           17 files changed, 119 insertions(+), 59 deletions(-)
           create mode 100644 src/test/java/musichub/business/SongTest.java
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index e18095f..3819cab 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,4 +1,16 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
           [2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          -[2021-06-27 11:17:47.927] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 11:17:47.927] TEST: JUnit test
          +[2021-06-27 11:23:12.311] TEST: JUnit test
          +[2021-06-27 11:28:46.126] TEST: JUnit test
          +[2021-06-27 11:35:19.141] TEST: JUnit test
          +[2021-06-27 11:42:00.359] TEST: JUnit test
          +[2021-06-27 11:43:59.111] TEST: JUnit test
          +[2021-06-27 11:44:55.871] TEST: JUnit test
          +[2021-06-27 11:49:06.256] TEST: JUnit test
          +[2021-06-27 11:49:28.005] TEST: JUnit test
          +[2021-06-27 11:50:01.657] TEST: JUnit test
          +[2021-06-27 11:50:09.721] TEST: JUnit test
          +[2021-06-27 11:53:44.338] TEST: JUnit test
          +[2021-06-27 11:53:54.691] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/business/SongTest.java b/src/test/java/musichub/business/SongTest.java
          new file mode 100644
          index 0000000..b25b6d2
          --- /dev/null
          +++ b/src/test/java/musichub/business/SongTest.java
          @@ -0,0 +1,46 @@
          +package musichub.business;
          +
          +import musichub.util.XMLHandler;
          +import org.junit.jupiter.api.Test;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.NodeList;
          +
          +import static org.junit.jupiter.api.Assertions.assertEquals;
          +import static org.junit.jupiter.api.Assertions.assertNotEquals;
          +
          +public class SongTest {
          +    String title = "Side To Side";
          +    String artist = "Ariana Grande";
          +    int length = 186;
          +    String uid = "66d277ca-cbc4-471c-a07e-082363375bcc";
          +    String content = "Song/Side_To_Side.wav";
          +    String genre = "rock";
          +
          +    @Test
          +    void testSongClasses() {
          +        Song song_uuid = new Song(title, artist, length, uid, content, genre);
          +        Song song = new Song(title, artist, length, content, genre);
          +
          +    }
          +
          +    @Test
          +    void testSongXml() {
          +        final String DIR = System.getProperty("user.dir");
          +        final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml";
          +        final XMLHandler xmlHandler = new XMLHandler();
          +        NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);
          +        Element audioElement = (Element) audioelementsNodes.item(1);
          +        Song song_xml = new Song(audioElement);
          +    }
          +
          +    @Test
          +    void testGetGenre() {
          +        assertEquals(new Song(title, artist, length, content, genre).getGenre(), "rock");
          +        assertNotEquals(new Song(title, artist, length, content, genre).getGenre(), "pop");
          +    }
          +
          +    @Test
          +    void testSetGenre() {
          +        // Not Implemented Yet
          +    }
          +}
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 994c699..a4fab83 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 5941d84..cf268f6 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,3 +1,4 @@
           musichub\util\XMLHandlerTest.class
           musichub\util\PathValidationTest.class
          +musichub\business\SongTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 8cbb196..0b9852b 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1,3 +1,4 @@
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\XMLHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\SongTest.java
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index d0737be..5c3dabe 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 674 of 2 803</td><td class="ctr2">4 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">202</td><td class="ctr2">211</td><td class="ctr1">709</td><td class="ctr2">745</td><td class="ctr1">84</td><td class="ctr2">93</td><td class="ctr1">16</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 471 of 2 803</td><td class="ctr2">11 %</td><td class="bar">206 of 210</td><td class="ctr2">1 %</td><td class="ctr1">190</td><td class="ctr2">211</td><td class="ctr1">664</td><td class="ctr2">745</td><td class="ctr1">73</td><td class="ctr2">93</td><td class="ctr1">13</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="108" height="10" title="1 860" alt="1 860"/><img src="jacoco-resources/greenbar.gif" width="11" height="10" title="203" alt="203"/></td><td class="ctr2" id="c1">9 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="117" height="10" title="165" alt="165"/><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">2 %</td><td class="ctr1" id="f0">160</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">454</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">70</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">12</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index f1c42c1..cd7b35e 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-636bf655</span></td><td>27 juin 2021, 11:17:47</td><td>27 juin 2021, 11:17:48</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-99125603</span></td><td>27 juin 2021, 11:53:54</td><td>27 juin 2021, 11:53:54</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>c0afccba36ce0d13</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index f93071b..ffeb027 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -9,12 +9,12 @@ spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
           spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          -spoteezer,musichub.business,Song,105,0,6,0,26,0,12,0,7,0
          +spoteezer,musichub.business,Song,50,55,4,2,12,14,6,6,2,5
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,PlayList,202,0,14,0,53,0,14,0,7,0
           spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
          -spoteezer,musichub.business,Genre,56,0,0,0,6,0,3,0,3,0
          -spoteezer,musichub.business,AudioElement,266,0,11,0,72,0,16,0,9,0
          +spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
          +spoteezer,musichub.business,AudioElement,174,92,9,2,47,25,13,3,6,3
           spoteezer,musichub.main,Main,605,0,41,0,206,0,30,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 5ce5b9f..4532c47 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-636bf655" start="1624785467554" dump="1624785468101"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2674" covered="129"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="709" covered="36"/><counter type="COMPLEXITY" missed="202" covered="9"/><counter type="METHOD" missed="84" covered="9"/><counter type="CLASS" missed="16" covered="3"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-99125603" start="1624787634243" dump="1624787634851"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="15" covered="18"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="4" covered="4"/><counter type="COMPLEXITY" missed="4" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="50" covered="55"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="12" covered="14"/><counter type="COMPLEXITY" missed="6" covered="6"/><counter type="METHOD" missed="2" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="174" covered="92"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="47" covered="25"/><counter type="COMPLEXITY" missed="13" covered="3"/><counter type="METHOD" missed="6" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="174" covered="92"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="47" covered="25"/><counter type="COMPLEXITY" missed="13" covered="3"/><counter type="METHOD" missed="6" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="4" cb="2"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="50" covered="55"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="12" covered="14"/><counter type="COMPLEXITY" missed="6" covered="6"/><counter type="METHOD" missed="2" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1860" covered="203"/><counter type="BRANCH" missed="165" covered="4"/><counter type="LINE" missed="454" covered="45"/><counter type="COMPLEXITY" missed="160" covered="12"/><counter type="METHOD" missed="70" covered="11"/><counter type="CLASS" missed="12" covered="3"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2471" covered="332"/><counter type="BRANCH" missed="206" covered="4"/><counter type="LINE" missed="664" covered="81"/><counter type="COMPLEXITY" missed="190" covered="21"/><counter type="METHOD" missed="73" covered="20"/><counter type="CLASS" missed="13" covered="6"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.html b/target/site/jacoco/musichub.business/AudioElement.html
          index 7a6e499..084f53f 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">266 of 266</td><td class="ctr2">0 %</td><td class="bar">11 of 11</td><td class="ctr2">0 %</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">72</td><td class="ctr2">72</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="63" alt="63"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">14</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">7</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">174 of 266</td><td class="ctr2">34 %</td><td class="bar">9 of 11</td><td class="ctr2">18 %</td><td class="ctr1">13</td><td class="ctr2">16</td><td class="ctr1">47</td><td class="ctr2">72</td><td class="ctr1">6</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="83" height="10" title="55" alt="55"/></td><td class="ctr2" id="c2">87 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.java.html b/target/site/jacoco/musichub.business/AudioElement.java.html
          index 4401836..28d9e57 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.java.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.java.html
          @@ -21,39 +21,39 @@ public abstract class AudioElement {
               protected UUID uuid;
               protected String content;
           
          -<span class="nc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          -<span class="nc" id="L25">        this.title = title;</span>
          -<span class="nc" id="L26">        this.artist = artist;</span>
          -<span class="nc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
          -<span class="nc" id="L28">        this.uuid = UUID.fromString(id);</span>
          -<span class="nc" id="L29">        this.content = content;</span>
          -<span class="nc" id="L30">    }</span>
          -
          -<span class="nc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          -<span class="nc" id="L33">        this.title = title;</span>
          -<span class="nc" id="L34">        this.artist = artist;</span>
          -<span class="nc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
          -<span class="nc" id="L36">        this.content = content;</span>
          -<span class="nc" id="L37">        this.uuid = UUID.randomUUID();</span>
          -<span class="nc" id="L38">    }</span>
          -
          -<span class="nc" id="L40">    public AudioElement(Element xmlElement) {</span>
          +<span class="fc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          +<span class="fc" id="L25">        this.title = title;</span>
          +<span class="fc" id="L26">        this.artist = artist;</span>
          +<span class="fc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="fc" id="L28">        this.uuid = UUID.fromString(id);</span>
          +<span class="fc" id="L29">        this.content = content;</span>
          +<span class="fc" id="L30">    }</span>
          +
          +<span class="fc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          +<span class="fc" id="L33">        this.title = title;</span>
          +<span class="fc" id="L34">        this.artist = artist;</span>
          +<span class="fc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="fc" id="L36">        this.content = content;</span>
          +<span class="fc" id="L37">        this.uuid = UUID.randomUUID();</span>
          +<span class="fc" id="L38">    }</span>
          +
          +<span class="fc" id="L40">    public AudioElement(Element xmlElement) {</span>
                   {
          -<span class="nc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          -<span class="nc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          -<span class="nc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          -<span class="nc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          -<span class="nc" id="L46">            String uuid = null;</span>
          +<span class="fc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          +<span class="fc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L46">            String uuid = null;</span>
                       try {
          -<span class="nc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
           <span class="nc" id="L49">            } catch (Exception ex) {</span>
           <span class="nc" id="L50">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
          -<span class="nc" id="L51">            }</span>
          -<span class="nc bnc" id="L52" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="fc" id="L51">            }</span>
          +<span class="pc bpc" id="L52" title="2 of 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
           <span class="nc" id="L53">                this.uuid = UUID.randomUUID();</span>
          -<span class="nc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
          +<span class="fc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
                   }
          -<span class="nc" id="L56">    }</span>
          +<span class="fc" id="L56">    }</span>
           
               public UUID getUUID() {
           <span class="nc" id="L59">        return this.uuid;</span>
          diff --git a/target/site/jacoco/musichub.business/Genre.html b/target/site/jacoco/musichub.business/Genre.html
          index 88e0ecd..c7442d4 100644
          --- a/target/site/jacoco/musichub.business/Genre.html
          +++ b/target/site/jacoco/musichub.business/Genre.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Genre</span></div><h1>Genre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">56 of 56</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Genre.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Genre.java.html#L7" class="el_method">Genre(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Genre.java.html#L12" class="el_method">getGenre()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Genre</span></div><h1>Genre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 56</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">6</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Genre.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Genre.java.html#L7" class="el_method">Genre(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Genre.java.html#L12" class="el_method">getGenre()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Genre.java.html b/target/site/jacoco/musichub.business/Genre.java.html
          index 021bb4b..e7196f9 100644
          --- a/target/site/jacoco/musichub.business/Genre.java.html
          +++ b/target/site/jacoco/musichub.business/Genre.java.html
          @@ -1,15 +1,15 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Genre.java</span></div><h1>Genre.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          -<span class="nc" id="L3">public enum Genre {</span>
          -<span class="nc" id="L4">    JAZZ(&quot;jazz&quot;), CLASSIC(&quot;classic&quot;), HIPHOP(&quot;hiphop&quot;), ROCK(&quot;rock&quot;), POP(&quot;pop&quot;), RAP(&quot;rap&quot;);</span>
          +<span class="fc" id="L3">public enum Genre {</span>
          +<span class="fc" id="L4">    JAZZ(&quot;jazz&quot;), CLASSIC(&quot;classic&quot;), HIPHOP(&quot;hiphop&quot;), ROCK(&quot;rock&quot;), POP(&quot;pop&quot;), RAP(&quot;rap&quot;);</span>
               private final String genre;
           
          -<span class="nc" id="L7">    Genre(String genre) {</span>
          -<span class="nc" id="L8">        this.genre = genre;</span>
          -<span class="nc" id="L9">    }</span>
          +<span class="fc" id="L7">    Genre(String genre) {</span>
          +<span class="fc" id="L8">        this.genre = genre;</span>
          +<span class="fc" id="L9">    }</span>
           
               public String getGenre() {
          -<span class="nc" id="L12">        return genre;</span>
          +<span class="fc" id="L12">        return genre;</span>
               }
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.html b/target/site/jacoco/musichub.business/Song.html
          index 4af18c3..6231425 100644
          --- a/target/site/jacoco/musichub.business/Song.html
          +++ b/target/site/jacoco/musichub.business/Song.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">105 of 105</td><td class="ctr2">0 %</td><td class="bar">6 of 6</td><td class="ctr2">0 %</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="33" alt="33"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">50 of 105</td><td class="ctr2">52 %</td><td class="bar">4 of 6</td><td class="ctr2">33 %</td><td class="ctr1">6</td><td class="ctr2">12</td><td class="ctr1">12</td><td class="ctr2">26</td><td class="ctr1">2</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">54 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.java.html b/target/site/jacoco/musichub.business/Song.java.html
          index 4f7f01d..86ea1bf 100644
          --- a/target/site/jacoco/musichub.business/Song.java.html
          +++ b/target/site/jacoco/musichub.business/Song.java.html
          @@ -8,34 +8,34 @@ public class Song extends AudioElement {
               private Genre genre;
           
               public Song(String title, String artist, int length, String uid, String content, String genre) {
          -<span class="nc" id="L11">        super(title, artist, length, uid, content);</span>
          -<span class="nc" id="L12">        this.setGenre(genre);</span>
          -<span class="nc" id="L13">    }</span>
          +<span class="fc" id="L11">        super(title, artist, length, uid, content);</span>
          +<span class="fc" id="L12">        this.setGenre(genre);</span>
          +<span class="fc" id="L13">    }</span>
           
               public Song(String title, String artist, int length, String content, String genre) {
          -<span class="nc" id="L16">        super(title, artist, length, content);</span>
          -<span class="nc" id="L17">        this.setGenre(genre);</span>
          -<span class="nc" id="L18">    }</span>
          +<span class="fc" id="L16">        super(title, artist, length, content);</span>
          +<span class="fc" id="L17">        this.setGenre(genre);</span>
          +<span class="fc" id="L18">    }</span>
           
               public Song(Element xmlElement) {
          -<span class="nc" id="L21">        super(xmlElement);</span>
          -<span class="nc" id="L22">        this.setGenre(xmlElement.getElementsByTagName(&quot;genre&quot;).item(0).getTextContent());</span>
          -<span class="nc" id="L23">    }</span>
          +<span class="fc" id="L21">        super(xmlElement);</span>
          +<span class="fc" id="L22">        this.setGenre(xmlElement.getElementsByTagName(&quot;genre&quot;).item(0).getTextContent());</span>
          +<span class="fc" id="L23">    }</span>
           
               public String getGenre() {
          -<span class="nc" id="L26">        return genre.getGenre();</span>
          +<span class="fc" id="L26">        return genre.getGenre();</span>
               }
           
               public void setGenre(String genre) {
          -<span class="nc bnc" id="L30" title="All 6 branches missed.">        switch (genre.toLowerCase()) {</span>
          +<span class="pc bpc" id="L30" title="4 of 6 branches missed.">        switch (genre.toLowerCase()) {</span>
           <span class="nc" id="L31">            default -&gt; this.genre = Genre.JAZZ;</span>
           <span class="nc" id="L32">            case &quot;classic&quot; -&gt; this.genre = Genre.CLASSIC;</span>
           <span class="nc" id="L33">            case &quot;hiphop&quot; -&gt; this.genre = Genre.HIPHOP;</span>
          -<span class="nc" id="L34">            case &quot;rock&quot; -&gt; this.genre = Genre.ROCK;</span>
          -<span class="nc" id="L35">            case &quot;pop&quot; -&gt; this.genre = Genre.POP;</span>
          +<span class="fc" id="L34">            case &quot;rock&quot; -&gt; this.genre = Genre.ROCK;</span>
          +<span class="fc" id="L35">            case &quot;pop&quot; -&gt; this.genre = Genre.POP;</span>
           <span class="nc" id="L36">            case &quot;rap&quot; -&gt; this.genre = Genre.RAP;</span>
                   }
          -<span class="nc" id="L38">    }</span>
          +<span class="fc" id="L38">    }</span>
           
               public String toString() {
           <span class="nc" id="L41">        return super.toString() + &quot;, Genre = &quot; + getGenre() + &quot;\n&quot;;</span>
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 421752c..9e86b79 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 860 of 2 063</td><td class="ctr2">9 %</td><td class="bar">165 of 169</td><td class="ctr2">2 %</td><td class="ctr1">160</td><td class="ctr2">172</td><td class="ctr1">454</td><td class="ctr2">499</td><td class="ctr1">70</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="174" alt="174"/><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="92" alt="92"/></td><td class="ctr2" id="c2">34 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">13</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">47</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">6</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="50" alt="50"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="55" alt="55"/></td><td class="ctr2" id="c1">52 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 13ddd53..7ceb0fd 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 860 of 2 063</td><td class="ctr2">9 %</td><td class="bar">165 of 169</td><td class="ctr2">2 %</td><td class="ctr1">160</td><td class="ctr2">172</td><td class="ctr1">454</td><td class="ctr2">499</td><td class="ctr1">70</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="174" alt="174"/><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="92" alt="92"/></td><td class="ctr2" id="c2">34 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">13</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">47</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">6</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="50" alt="50"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="55" alt="55"/></td><td class="ctr2" id="c1">52 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From f9de1516a05f91e5632500a3b0a898938d6c795e Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 12:12:56 +0200
          Subject: Song class fully covered.
          
          ---
           log/spoteezer.log                                  |  12 ++++-
           src/test/java/musichub/business/SongTest.java      |  55 +++++++++++++++++----
           target/jacoco.exec                                 | Bin 15029 -> 15031 bytes
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   4 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/AudioElement.html     |   2 +-
           .../musichub.business/AudioElement.java.html       |  34 ++++++-------
           target/site/jacoco/musichub.business/Song.html     |   2 +-
           .../site/jacoco/musichub.business/Song.java.html   |  26 +++++-----
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           13 files changed, 96 insertions(+), 49 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 3819cab..eab869b 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -13,4 +13,14 @@
           [2021-06-27 11:50:01.657] TEST: JUnit test
           [2021-06-27 11:50:09.721] TEST: JUnit test
           [2021-06-27 11:53:44.338] TEST: JUnit test
          -[2021-06-27 11:53:54.691] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 11:53:54.691] TEST: JUnit test
          +[2021-06-27 11:58:07.341] TEST: JUnit test
          +[2021-06-27 11:59:35.781] TEST: JUnit test
          +[2021-06-27 12:00:11.993] TEST: JUnit test
          +[2021-06-27 12:01:47.636] TEST: JUnit test
          +[2021-06-27 12:02:01.477] TEST: JUnit test
          +[2021-06-27 12:02:13.155] TEST: JUnit test
          +[2021-06-27 12:06:45.369] TEST: JUnit test
          +[2021-06-27 12:06:54.864] TEST: JUnit test
          +[2021-06-27 12:11:44.868] TEST: JUnit test
          +[2021-06-27 12:12:27.077] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/business/SongTest.java b/src/test/java/musichub/business/SongTest.java
          index b25b6d2..7022786 100644
          --- a/src/test/java/musichub/business/SongTest.java
          +++ b/src/test/java/musichub/business/SongTest.java
          @@ -2,6 +2,7 @@ package musichub.business;
           
           import musichub.util.XMLHandler;
           import org.junit.jupiter.api.Test;
          +import org.w3c.dom.Document;
           import org.w3c.dom.Element;
           import org.w3c.dom.NodeList;
           
          @@ -16,31 +17,67 @@ public class SongTest {
               String content = "Song/Side_To_Side.wav";
               String genre = "rock";
           
          +    final String DIR = System.getProperty("user.dir");
          +    final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml";
          +    final XMLHandler xmlHandler = new XMLHandler();
          +
          +
               @Test
               void testSongClasses() {
          -        Song song_uuid = new Song(title, artist, length, uid, content, genre);
          -        Song song = new Song(title, artist, length, content, genre);
          +        new Song(title, artist, length, uid, content, genre);
          +        new Song(title, artist, length, content, genre);
           
               }
           
               @Test
               void testSongXml() {
          -        final String DIR = System.getProperty("user.dir");
          -        final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml";
          -        final XMLHandler xmlHandler = new XMLHandler();
                   NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);
                   Element audioElement = (Element) audioelementsNodes.item(1);
          -        Song song_xml = new Song(audioElement);
          +        new Song(audioElement);
               }
           
               @Test
               void testGetGenre() {
          -        assertEquals(new Song(title, artist, length, content, genre).getGenre(), "rock");
          -        assertNotEquals(new Song(title, artist, length, content, genre).getGenre(), "pop");
          +        assertEquals(new Song(title, artist, length, content, genre)
          +                        .getGenre(),
          +                "rock");
          +        assertNotEquals(new Song(title, artist, length, content, genre)
          +                        .getGenre(),
          +                "pop");
               }
           
               @Test
               void testSetGenre() {
          -        // Not Implemented Yet
          +        new Song(title, artist, length, content, "classic");
          +        new Song(title, artist, length, content, "hiphop");
          +        new Song(title, artist, length, content, "rock");
          +        new Song(title, artist, length, content, "pop");
          +        new Song(title, artist, length, content, "rap");
          +
          +        Song s = new Song(title, artist, length, content, "cgfdhdfhj");
          +        assertEquals(s.getGenre(), "jazz");
          +    }
          +
          +    @Test
          +    void testToString() {
          +        assertEquals(
          +                new Song(title, artist, length, content, genre)
          +                        .toString(),
          +                "Title = Side To Side, Artist = Ariana Grande, Length = 186, Content = Song/Side_To_Side.wav, Genre = rock\n"
          +        );
          +        assertNotEquals(
          +                new Song(title, artist, length, content, genre)
          +                        .toString(),
          +                "Title = God is a woman, Artist = Ariana Grande, Length = 186, Content = Song/Side_To_Side.wav, Genre = rock\n"
          +        );
          +    }
          +
          +    @Test
          +    void testCreateXMLElement() {
          +        Song s = new Song(title, artist, length, content, genre);
          +        Document document = xmlHandler.createXMLDocument();
          +        Element root = document.createElement("elements");
          +        s.createXMLElement(document, root);
          +
               }
           }
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index a4fab83..cb85729 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index 5c3dabe..330c1da 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 471 of 2 803</td><td class="ctr2">11 %</td><td class="bar">206 of 210</td><td class="ctr2">1 %</td><td class="ctr1">190</td><td class="ctr2">211</td><td class="ctr1">664</td><td class="ctr2">745</td><td class="ctr1">73</td><td class="ctr2">93</td><td class="ctr1">13</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="108" height="10" title="1 860" alt="1 860"/><img src="jacoco-resources/greenbar.gif" width="11" height="10" title="203" alt="203"/></td><td class="ctr2" id="c1">9 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="117" height="10" title="165" alt="165"/><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">2 %</td><td class="ctr1" id="f0">160</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">454</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">70</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">12</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 332 of 2 803</td><td class="ctr2">16 %</td><td class="bar">202 of 210</td><td class="ctr2">3 %</td><td class="ctr1">182</td><td class="ctr2">211</td><td class="ctr1">635</td><td class="ctr2">745</td><td class="ctr1">69</td><td class="ctr2">93</td><td class="ctr1">13</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="100" height="10" title="1 721" alt="1 721"/><img src="jacoco-resources/greenbar.gif" width="19" height="10" title="342" alt="342"/></td><td class="ctr2" id="c1">16 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="114" height="10" title="161" alt="161"/><img src="jacoco-resources/greenbar.gif" width="5" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">4 %</td><td class="ctr1" id="f0">152</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">425</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">66</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">12</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index cd7b35e..b3dd1b5 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-99125603</span></td><td>27 juin 2021, 11:53:54</td><td>27 juin 2021, 11:53:54</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>c0afccba36ce0d13</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-847a8027</span></td><td>27 juin 2021, 12:12:26</td><td>27 juin 2021, 12:12:27</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>18d0cf3c4b10a1ce</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index ffeb027..f56f062 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -9,12 +9,12 @@ spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
           spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          -spoteezer,musichub.business,Song,50,55,4,2,12,14,6,6,2,5
          +spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,PlayList,202,0,14,0,53,0,14,0,7,0
           spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
          -spoteezer,musichub.business,AudioElement,174,92,9,2,47,25,13,3,6,3
          +spoteezer,musichub.business,AudioElement,85,181,9,2,30,42,11,5,4,5
           spoteezer,musichub.main,Main,605,0,41,0,206,0,30,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 4532c47..4c65599 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-99125603" start="1624787634243" dump="1624787634851"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="15" covered="18"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="4" covered="4"/><counter type="COMPLEXITY" missed="4" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="50" covered="55"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="12" covered="14"/><counter type="COMPLEXITY" missed="6" covered="6"/><counter type="METHOD" missed="2" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="174" covered="92"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="47" covered="25"/><counter type="COMPLEXITY" missed="13" covered="3"/><counter type="METHOD" missed="6" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="174" covered="92"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="47" covered="25"/><counter type="COMPLEXITY" missed="13" covered="3"/><counter type="METHOD" missed="6" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="4" cb="2"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="50" covered="55"/><counter type="BRANCH" missed="4" covered="2"/><counter type="LINE" missed="12" covered="14"/><counter type="COMPLEXITY" missed="6" covered="6"/><counter type="METHOD" missed="2" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1860" covered="203"/><counter type="BRANCH" missed="165" covered="4"/><counter type="LINE" missed="454" covered="45"/><counter type="COMPLEXITY" missed="160" covered="12"/><counter type="METHOD" missed="70" covered="11"/><counter type="CLASS" missed="12" covered="3"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2471" covered="332"/><counter type="BRANCH" missed="206" covered="4"/><counter type="LINE" missed="664" covered="81"/><counter type="COMPLEXITY" missed="190" covered="21"/><counter type="METHOD" missed="73" covered="20"/><counter type="CLASS" missed="13" covered="6"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-847a8027" start="1624788746586" dump="1624788747242"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1721" covered="342"/><counter type="BRANCH" missed="161" covered="8"/><counter type="LINE" missed="425" covered="74"/><counter type="COMPLEXITY" missed="152" covered="20"/><counter type="METHOD" missed="66" covered="15"/><counter type="CLASS" missed="12" covered="3"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2332" covered="471"/><counter type="BRANCH" missed="202" covered="8"/><counter type="LINE" missed="635" covered="110"/><counter type="COMPLEXITY" missed="182" covered="29"/><counter type="METHOD" missed="69" covered="24"/><counter type="CLASS" missed="13" covered="6"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.html b/target/site/jacoco/musichub.business/AudioElement.html
          index 084f53f..18f7368 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">174 of 266</td><td class="ctr2">34 %</td><td class="bar">9 of 11</td><td class="ctr2">18 %</td><td class="ctr1">13</td><td class="ctr2">16</td><td class="ctr1">47</td><td class="ctr2">72</td><td class="ctr1">6</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="83" height="10" title="55" alt="55"/></td><td class="ctr2" id="c2">87 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">85 of 266</td><td class="ctr2">68 %</td><td class="bar">9 of 11</td><td class="ctr2">18 %</td><td class="ctr1">11</td><td class="ctr2">16</td><td class="ctr1">30</td><td class="ctr2">72</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="83" height="10" title="55" alt="55"/></td><td class="ctr2" id="c4">87 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.java.html b/target/site/jacoco/musichub.business/AudioElement.java.html
          index 28d9e57..7863e1a 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.java.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.java.html
          @@ -68,31 +68,31 @@ public abstract class AudioElement {
               }
           
               public String toString() {
          -<span class="nc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
          +<span class="fc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
               }
           
               public void createXMLElement(Document document, Element parentElement) {
          -<span class="nc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          -<span class="nc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
          -<span class="nc" id="L77">        parentElement.appendChild(nameElement);</span>
          +<span class="fc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="fc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="fc" id="L77">        parentElement.appendChild(nameElement);</span>
           
          -<span class="nc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          -<span class="nc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
          -<span class="nc" id="L81">        parentElement.appendChild(artistElement);</span>
          +<span class="fc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="fc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="fc" id="L81">        parentElement.appendChild(artistElement);</span>
           
          -<span class="nc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          -<span class="nc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          -<span class="nc" id="L85">        parentElement.appendChild(lengthElement);</span>
          +<span class="fc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          +<span class="fc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="fc" id="L85">        parentElement.appendChild(lengthElement);</span>
           
          -<span class="nc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          -<span class="nc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          -<span class="nc" id="L89">        parentElement.appendChild(UUIDElement);</span>
          +<span class="fc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="fc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="fc" id="L89">        parentElement.appendChild(UUIDElement);</span>
           
          -<span class="nc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          -<span class="nc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
          -<span class="nc" id="L93">        parentElement.appendChild(contentElement);</span>
          +<span class="fc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          +<span class="fc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
          +<span class="fc" id="L93">        parentElement.appendChild(contentElement);</span>
           
          -<span class="nc" id="L95">    }</span>
          +<span class="fc" id="L95">    }</span>
               
               public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
               	
          diff --git a/target/site/jacoco/musichub.business/Song.html b/target/site/jacoco/musichub.business/Song.html
          index 6231425..4e3aa10 100644
          --- a/target/site/jacoco/musichub.business/Song.html
          +++ b/target/site/jacoco/musichub.business/Song.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">50 of 105</td><td class="ctr2">52 %</td><td class="bar">4 of 6</td><td class="ctr2">33 %</td><td class="ctr1">6</td><td class="ctr2">12</td><td class="ctr1">12</td><td class="ctr2">26</td><td class="ctr1">2</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">54 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 105</td><td class="ctr2">100 %</td><td class="bar">0 of 6</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">12</td><td class="ctr1">0</td><td class="ctr2">26</td><td class="ctr1">0</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="33" alt="33"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c4">100 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.java.html b/target/site/jacoco/musichub.business/Song.java.html
          index 86ea1bf..f78cf39 100644
          --- a/target/site/jacoco/musichub.business/Song.java.html
          +++ b/target/site/jacoco/musichub.business/Song.java.html
          @@ -27,32 +27,32 @@ public class Song extends AudioElement {
               }
           
               public void setGenre(String genre) {
          -<span class="pc bpc" id="L30" title="4 of 6 branches missed.">        switch (genre.toLowerCase()) {</span>
          -<span class="nc" id="L31">            default -&gt; this.genre = Genre.JAZZ;</span>
          -<span class="nc" id="L32">            case &quot;classic&quot; -&gt; this.genre = Genre.CLASSIC;</span>
          -<span class="nc" id="L33">            case &quot;hiphop&quot; -&gt; this.genre = Genre.HIPHOP;</span>
          +<span class="fc bfc" id="L30" title="All 6 branches covered.">        switch (genre.toLowerCase()) {</span>
          +<span class="fc" id="L31">            default -&gt; this.genre = Genre.JAZZ;</span>
          +<span class="fc" id="L32">            case &quot;classic&quot; -&gt; this.genre = Genre.CLASSIC;</span>
          +<span class="fc" id="L33">            case &quot;hiphop&quot; -&gt; this.genre = Genre.HIPHOP;</span>
           <span class="fc" id="L34">            case &quot;rock&quot; -&gt; this.genre = Genre.ROCK;</span>
           <span class="fc" id="L35">            case &quot;pop&quot; -&gt; this.genre = Genre.POP;</span>
          -<span class="nc" id="L36">            case &quot;rap&quot; -&gt; this.genre = Genre.RAP;</span>
          +<span class="fc" id="L36">            case &quot;rap&quot; -&gt; this.genre = Genre.RAP;</span>
                   }
           <span class="fc" id="L38">    }</span>
           
               public String toString() {
          -<span class="nc" id="L41">        return super.toString() + &quot;, Genre = &quot; + getGenre() + &quot;\n&quot;;</span>
          +<span class="fc" id="L41">        return super.toString() + &quot;, Genre = &quot; + getGenre() + &quot;\n&quot;;</span>
               }
           
               public void createXMLElement(Document document, Element parentElement) {
                   // song element
          -<span class="nc" id="L46">        Element song = document.createElement(&quot;song&quot;);</span>
          +<span class="fc" id="L46">        Element song = document.createElement(&quot;song&quot;);</span>
           
          -<span class="nc" id="L48">        super.createXMLElement(document, song);</span>
          +<span class="fc" id="L48">        super.createXMLElement(document, song);</span>
           
          -<span class="nc" id="L50">        Element genreElement = document.createElement(&quot;genre&quot;);</span>
          -<span class="nc" id="L51">        genreElement.appendChild(document.createTextNode(genre.getGenre()));</span>
          -<span class="nc" id="L52">        song.appendChild(genreElement);</span>
          +<span class="fc" id="L50">        Element genreElement = document.createElement(&quot;genre&quot;);</span>
          +<span class="fc" id="L51">        genreElement.appendChild(document.createTextNode(genre.getGenre()));</span>
          +<span class="fc" id="L52">        song.appendChild(genreElement);</span>
           
          -<span class="nc" id="L54">        parentElement.appendChild(song);</span>
          -<span class="nc" id="L55">    }</span>
          +<span class="fc" id="L54">        parentElement.appendChild(song);</span>
          +<span class="fc" id="L55">    }</span>
               
           
           }
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 9e86b79..58b15a0 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 860 of 2 063</td><td class="ctr2">9 %</td><td class="bar">165 of 169</td><td class="ctr2">2 %</td><td class="ctr1">160</td><td class="ctr2">172</td><td class="ctr1">454</td><td class="ctr2">499</td><td class="ctr1">70</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="174" alt="174"/><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="92" alt="92"/></td><td class="ctr2" id="c2">34 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">13</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">47</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">6</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="50" alt="50"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="55" alt="55"/></td><td class="ctr2" id="c1">52 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 721 of 2 063</td><td class="ctr2">16 %</td><td class="bar">161 of 169</td><td class="ctr2">4 %</td><td class="ctr1">152</td><td class="ctr2">172</td><td class="ctr1">425</td><td class="ctr2">499</td><td class="ctr1">66</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c2">68 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h4">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 7ceb0fd..5de5f23 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 860 of 2 063</td><td class="ctr2">9 %</td><td class="bar">165 of 169</td><td class="ctr2">2 %</td><td class="ctr1">160</td><td class="ctr2">172</td><td class="ctr1">454</td><td class="ctr2">499</td><td class="ctr1">70</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="174" alt="174"/><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="92" alt="92"/></td><td class="ctr2" id="c2">34 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">13</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">47</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">6</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="50" alt="50"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="55" alt="55"/></td><td class="ctr2" id="c1">52 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">33 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 721 of 2 063</td><td class="ctr2">16 %</td><td class="bar">161 of 169</td><td class="ctr2">4 %</td><td class="ctr1">152</td><td class="ctr2">172</td><td class="ctr1">425</td><td class="ctr2">499</td><td class="ctr1">66</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c2">68 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h4">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From fa8c6e14b3f87407ea5805e35697acc4d93a8007 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 12:43:28 +0200
          Subject: PlayList class covered at 84%.
          
          ---
           log/spoteezer.log                                  |  29 ++-----
           src/test/java/musichub/business/PlayListTest.java  |  54 ++++++++++++
           src/test/java/musichub/business/SongTest.java      |   4 +-
           target/jacoco.exec                                 | Bin 15031 -> 15165 bytes
           .../default-testCompile/createdFiles.lst           |   1 +
           .../testCompile/default-testCompile/inputFiles.lst |   1 +
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   2 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           target/site/jacoco/musichub.business/PlayList.html |   2 +-
           .../jacoco/musichub.business/PlayList.java.html    |  92 ++++++++++-----------
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           14 files changed, 117 insertions(+), 78 deletions(-)
           create mode 100644 src/test/java/musichub/business/PlayListTest.java
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index eab869b..b1ecf97 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,26 +1,9 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
           [2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          -[2021-06-27 11:17:47.927] TEST: JUnit test
          -[2021-06-27 11:23:12.311] TEST: JUnit test
          -[2021-06-27 11:28:46.126] TEST: JUnit test
          -[2021-06-27 11:35:19.141] TEST: JUnit test
          -[2021-06-27 11:42:00.359] TEST: JUnit test
          -[2021-06-27 11:43:59.111] TEST: JUnit test
          -[2021-06-27 11:44:55.871] TEST: JUnit test
          -[2021-06-27 11:49:06.256] TEST: JUnit test
          -[2021-06-27 11:49:28.005] TEST: JUnit test
          -[2021-06-27 11:50:01.657] TEST: JUnit test
          -[2021-06-27 11:50:09.721] TEST: JUnit test
          -[2021-06-27 11:53:44.338] TEST: JUnit test
          -[2021-06-27 11:53:54.691] TEST: JUnit test
          -[2021-06-27 11:58:07.341] TEST: JUnit test
          -[2021-06-27 11:59:35.781] TEST: JUnit test
          -[2021-06-27 12:00:11.993] TEST: JUnit test
          -[2021-06-27 12:01:47.636] TEST: JUnit test
          -[2021-06-27 12:02:01.477] TEST: JUnit test
          -[2021-06-27 12:02:13.155] TEST: JUnit test
          -[2021-06-27 12:06:45.369] TEST: JUnit test
          -[2021-06-27 12:06:54.864] TEST: JUnit test
          -[2021-06-27 12:11:44.868] TEST: JUnit test
          -[2021-06-27 12:12:27.077] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 12:21:37.507] TEST: JUnit test
          +[2021-06-27 12:26:02.741] TEST: JUnit test
          +[2021-06-27 12:28:05.542] TEST: JUnit test
          +[2021-06-27 12:28:41.186] TEST: JUnit test
          +[2021-06-27 12:31:42.777] TEST: JUnit test
          +[2021-06-27 12:40:20.609] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/business/PlayListTest.java b/src/test/java/musichub/business/PlayListTest.java
          new file mode 100644
          index 0000000..9fe63cf
          --- /dev/null
          +++ b/src/test/java/musichub/business/PlayListTest.java
          @@ -0,0 +1,54 @@
          +package musichub.business;
          +
          +import musichub.util.XMLHandler;
          +import org.junit.jupiter.api.Test;
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.NodeList;
          +
          +import java.util.ArrayList;
          +import java.util.UUID;
          +
          +import static org.junit.jupiter.api.Assertions.*;
          +
          +public class PlayListTest {
          +    final String DIR = System.getProperty("user.dir");
          +    final String PLAYLISTS_FILE_PATH = DIR + "/files/playlists.xml";
          +    final XMLHandler xmlHandler = new XMLHandler();
          +    String title = "Side To Side";
          +    String id = "66d277ca-cbc4-471c-a07e-082363375bcc";
          +    ArrayList<UUID> elementUUIDs = null;
          +
          +    @Test
          +    void testPlaylistClass() {
          +        new PlayList(title, id, elementUUIDs);
          +        new PlayList(title);
          +
          +    }
          +
          +    @Test
          +    void testPlaylistClassXML() {
          +        NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH);
          +        Element playlistElement = (Element) playlistNodes.item(1);
          +        new PlayList(playlistElement);
          +    }
          +
          +    @Test
          +    void testGetElements() {
          +        assertNull(new PlayList(title, id, elementUUIDs).getElements());
          +    }
          +
          +    @Test
          +    void testGetTitle() {
          +        assertEquals(new PlayList(title).getTitle(), "Side To Side");
          +        assertNotEquals(new PlayList(title).getTitle(), "God Is A Woman");
          +    }
          +
          +    @Test
          +    void testCreateXMLElement() {
          +        PlayList p = new PlayList(title);
          +        Document document = xmlHandler.createXMLDocument();
          +        Element root = document.createElement("playlists");
          +        p.createXMLElement(document, root);
          +    }
          +}
          diff --git a/src/test/java/musichub/business/SongTest.java b/src/test/java/musichub/business/SongTest.java
          index 7022786..14f9af1 100644
          --- a/src/test/java/musichub/business/SongTest.java
          +++ b/src/test/java/musichub/business/SongTest.java
          @@ -23,14 +23,14 @@ public class SongTest {
           
           
               @Test
          -    void testSongClasses() {
          +    void testSongClass() {
                   new Song(title, artist, length, uid, content, genre);
                   new Song(title, artist, length, content, genre);
           
               }
           
               @Test
          -    void testSongXml() {
          +    void testSongClassXML() {
                   NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);
                   Element audioElement = (Element) audioelementsNodes.item(1);
                   new Song(audioElement);
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index cb85729..bc2bc8f 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index cf268f6..7726a1c 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,4 +1,5 @@
           musichub\util\XMLHandlerTest.class
          +musichub\business\PlayListTest.class
           musichub\util\PathValidationTest.class
           musichub\business\SongTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 0b9852b..0b05cf3 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1,3 +1,4 @@
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PlayListTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\XMLHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index 330c1da..c69b3a6 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 332 of 2 803</td><td class="ctr2">16 %</td><td class="bar">202 of 210</td><td class="ctr2">3 %</td><td class="ctr1">182</td><td class="ctr2">211</td><td class="ctr1">635</td><td class="ctr2">745</td><td class="ctr1">69</td><td class="ctr2">93</td><td class="ctr1">13</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="100" height="10" title="1 721" alt="1 721"/><img src="jacoco-resources/greenbar.gif" width="19" height="10" title="342" alt="342"/></td><td class="ctr2" id="c1">16 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="114" height="10" title="161" alt="161"/><img src="jacoco-resources/greenbar.gif" width="5" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">4 %</td><td class="ctr1" id="f0">152</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">425</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">66</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">12</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 162 of 2 803</td><td class="ctr2">22 %</td><td class="bar">193 of 210</td><td class="ctr2">8 %</td><td class="ctr1">173</td><td class="ctr2">211</td><td class="ctr1">591</td><td class="ctr2">745</td><td class="ctr1">62</td><td class="ctr2">93</td><td class="ctr1">12</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="90" height="10" title="1 551" alt="1 551"/><img src="jacoco-resources/greenbar.gif" width="29" height="10" title="512" alt="512"/></td><td class="ctr2" id="c1">24 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="152" alt="152"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="17" alt="17"/></td><td class="ctr2" id="e0">10 %</td><td class="ctr1" id="f0">143</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">381</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">59</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index b3dd1b5..07ff00a 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-847a8027</span></td><td>27 juin 2021, 12:12:26</td><td>27 juin 2021, 12:12:27</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>18d0cf3c4b10a1ce</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-39b23d38</span></td><td>27 juin 2021, 12:40:20</td><td>27 juin 2021, 12:40:20</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>70c3a2a856fcdb5e</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index f56f062..74dcec9 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -11,7 +11,7 @@ spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
           spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
           spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
          -spoteezer,musichub.business,PlayList,202,0,14,0,53,0,14,0,7,0
          +spoteezer,musichub.business,PlayList,32,170,5,9,9,44,5,9,0,7
           spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 4c65599..e842251 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-847a8027" start="1624788746586" dump="1624788747242"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1721" covered="342"/><counter type="BRANCH" missed="161" covered="8"/><counter type="LINE" missed="425" covered="74"/><counter type="COMPLEXITY" missed="152" covered="20"/><counter type="METHOD" missed="66" covered="15"/><counter type="CLASS" missed="12" covered="3"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2332" covered="471"/><counter type="BRANCH" missed="202" covered="8"/><counter type="LINE" missed="635" covered="110"/><counter type="COMPLEXITY" missed="182" covered="29"/><counter type="METHOD" missed="69" covered="24"/><counter type="CLASS" missed="13" covered="6"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-39b23d38" start="1624790420131" dump="1624790420751"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1551" covered="512"/><counter type="BRANCH" missed="152" covered="17"/><counter type="LINE" missed="381" covered="118"/><counter type="COMPLEXITY" missed="143" covered="29"/><counter type="METHOD" missed="59" covered="22"/><counter type="CLASS" missed="11" covered="4"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2162" covered="641"/><counter type="BRANCH" missed="193" covered="17"/><counter type="LINE" missed="591" covered="154"/><counter type="COMPLEXITY" missed="173" covered="38"/><counter type="METHOD" missed="62" covered="31"/><counter type="CLASS" missed="12" covered="7"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.html b/target/site/jacoco/musichub.business/PlayList.html
          index ae17a14..74681b8 100644
          --- a/target/site/jacoco/musichub.business/PlayList.html
          +++ b/target/site/jacoco/musichub.business/PlayList.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PlayList</span></div><h1>PlayList</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">202 of 202</td><td class="ctr2">0 %</td><td class="bar">14 of 14</td><td class="ctr2">0 %</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">53</td><td class="ctr2">53</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a4"><a href="PlayList.java.html#L28" class="el_method">PlayList(Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="88" alt="88"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PlayList.java.html#L78" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="75" alt="75"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="PlayList.java.html#L22" class="el_method">PlayList(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="14" alt="14"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="PlayList.java.html#L16" class="el_method">PlayList(String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">5</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="PlayList.java.html#L66" class="el_method">addElement(UUID)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="PlayList.java.html#L70" class="el_method">getElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="PlayList.java.html#L74" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PlayList</span></div><h1>PlayList</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">32 of 202</td><td class="ctr2">84 %</td><td class="bar">5 of 14</td><td class="ctr2">64 %</td><td class="ctr1">5</td><td class="ctr2">14</td><td class="ctr1">9</td><td class="ctr2">53</td><td class="ctr1">0</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a1"><a href="PlayList.java.html#L78" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="20" alt="20"/><img src="../jacoco-resources/greenbar.gif" width="75" height="10" title="55" alt="55"/></td><td class="ctr2" id="c6">73 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="10" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">50 %</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="PlayList.java.html#L28" class="el_method">PlayList(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="12" alt="12"/><img src="../jacoco-resources/greenbar.gif" width="103" height="10" title="76" alt="76"/></td><td class="ctr2" id="c5">86 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">66 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="PlayList.java.html#L22" class="el_method">PlayList(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="19" height="10" title="14" alt="14"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="PlayList.java.html#L16" class="el_method">PlayList(String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="PlayList.java.html#L66" class="el_method">addElement(UUID)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="PlayList.java.html#L70" class="el_method">getElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="PlayList.java.html#L74" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.java.html b/target/site/jacoco/musichub.business/PlayList.java.html
          index 6a45004..3c1eb72 100644
          --- a/target/site/jacoco/musichub.business/PlayList.java.html
          +++ b/target/site/jacoco/musichub.business/PlayList.java.html
          @@ -13,89 +13,89 @@ public class PlayList {
               private final UUID uuid;
               private ArrayList&lt;UUID&gt; elementUUIDs;
           
          -<span class="nc" id="L16">    public PlayList(String title, String id, ArrayList&lt;UUID&gt; elementUUIDs) {</span>
          -<span class="nc" id="L17">        this.title = title;</span>
          -<span class="nc" id="L18">        this.uuid = UUID.fromString(id);</span>
          -<span class="nc" id="L19">        this.elementUUIDs = elementUUIDs;</span>
          -<span class="nc" id="L20">    }</span>
          -
          -<span class="nc" id="L22">    public PlayList(String title) {</span>
          -<span class="nc" id="L23">        this.title = title;</span>
          -<span class="nc" id="L24">        this.uuid = UUID.randomUUID();</span>
          -<span class="nc" id="L25">        this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          -<span class="nc" id="L26">    }</span>
          -
          -<span class="nc" id="L28">    public PlayList(Element xmlElement) {</span>
          +<span class="fc" id="L16">    public PlayList(String title, String id, ArrayList&lt;UUID&gt; elementUUIDs) {</span>
          +<span class="fc" id="L17">        this.title = title;</span>
          +<span class="fc" id="L18">        this.uuid = UUID.fromString(id);</span>
          +<span class="fc" id="L19">        this.elementUUIDs = elementUUIDs;</span>
          +<span class="fc" id="L20">    }</span>
          +
          +<span class="fc" id="L22">    public PlayList(String title) {</span>
          +<span class="fc" id="L23">        this.title = title;</span>
          +<span class="fc" id="L24">        this.uuid = UUID.randomUUID();</span>
          +<span class="fc" id="L25">        this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="fc" id="L26">    }</span>
          +
          +<span class="fc" id="L28">    public PlayList(Element xmlElement) {</span>
                   {
          -<span class="nc" id="L30">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L30">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
           
          -<span class="nc" id="L32">            String uuid = null;</span>
          +<span class="fc" id="L32">            String uuid = null;</span>
                       try {
          -<span class="nc" id="L34">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L34">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
           <span class="nc" id="L35">            } catch (Exception ex) {</span>
           <span class="nc" id="L36">                System.out.println(&quot;Empty playlist UUID, will create a new one&quot;);</span>
          -<span class="nc" id="L37">            }</span>
          -<span class="nc bnc" id="L38" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="fc" id="L37">            }</span>
          +<span class="pc bpc" id="L38" title="2 of 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
           <span class="nc" id="L39">                this.uuid = UUID.randomUUID();</span>
          -<span class="nc" id="L40">            else this.uuid = UUID.fromString(uuid);</span>
          +<span class="fc" id="L40">            else this.uuid = UUID.fromString(uuid);</span>
           
                       //parse list of elements:
          -<span class="nc" id="L43">            Node elementsElement = xmlElement.getElementsByTagName(&quot;elements&quot;).item(0);</span>
          -<span class="nc" id="L44">            NodeList elementUUIDNodes = elementsElement.getChildNodes();</span>
          -<span class="nc bnc" id="L45" title="All 2 branches missed.">            if (elementUUIDNodes == null) return;</span>
          +<span class="fc" id="L43">            Node elementsElement = xmlElement.getElementsByTagName(&quot;elements&quot;).item(0);</span>
          +<span class="fc" id="L44">            NodeList elementUUIDNodes = elementsElement.getChildNodes();</span>
          +<span class="pc bpc" id="L45" title="1 of 2 branches missed.">            if (elementUUIDNodes == null) return;</span>
           
          -<span class="nc" id="L47">            this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="fc" id="L47">            this.elementUUIDs = new ArrayList&lt;&gt;();</span>
           
           
          -<span class="nc bnc" id="L50" title="All 2 branches missed.">            for (int i = 0; i &lt; elementUUIDNodes.getLength(); i++) {</span>
          -<span class="nc bnc" id="L51" title="All 2 branches missed.">                if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          -<span class="nc" id="L52">                    Element elementElement = (Element) elementUUIDNodes.item(i);</span>
          -<span class="nc bnc" id="L53" title="All 2 branches missed.">                    if (elementElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
          +<span class="fc bfc" id="L50" title="All 2 branches covered.">            for (int i = 0; i &lt; elementUUIDNodes.getLength(); i++) {</span>
          +<span class="fc bfc" id="L51" title="All 2 branches covered.">                if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="fc" id="L52">                    Element elementElement = (Element) elementUUIDNodes.item(i);</span>
          +<span class="pc bpc" id="L53" title="1 of 2 branches missed.">                    if (elementElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
                                   try {
          -<span class="nc" id="L55">                            this.addElement(UUID.fromString(elementElement.getTextContent()));</span>
          +<span class="fc" id="L55">                            this.addElement(UUID.fromString(elementElement.getTextContent()));</span>
           <span class="nc" id="L56">                        } catch (Exception ex) {</span>
           <span class="nc" id="L57">                            ex.printStackTrace();</span>
          -<span class="nc" id="L58">                        }</span>
          +<span class="fc" id="L58">                        }</span>
                               }
                           }
                       }
                   }
          -<span class="nc" id="L63">    }</span>
          +<span class="fc" id="L63">    }</span>
           
               public void addElement(UUID element) {
          -<span class="nc" id="L66">        elementUUIDs.add(element);</span>
          -<span class="nc" id="L67">    }</span>
          +<span class="fc" id="L66">        elementUUIDs.add(element);</span>
          +<span class="fc" id="L67">    }</span>
           
               public ArrayList&lt;UUID&gt; getElements() {
          -<span class="nc" id="L70">        return elementUUIDs;</span>
          +<span class="fc" id="L70">        return elementUUIDs;</span>
               }
           
               public String getTitle() {
          -<span class="nc" id="L74">        return title;</span>
          +<span class="fc" id="L74">        return title;</span>
               }
           
               public void createXMLElement(Document document, Element parentElement) {
          -<span class="nc" id="L78">        Element playlistElement = document.createElement(&quot;playlist&quot;);</span>
          -<span class="nc" id="L79">        parentElement.appendChild(playlistElement);</span>
          +<span class="fc" id="L78">        Element playlistElement = document.createElement(&quot;playlist&quot;);</span>
          +<span class="fc" id="L79">        parentElement.appendChild(playlistElement);</span>
           
          -<span class="nc" id="L81">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          -<span class="nc" id="L82">        nameElement.appendChild(document.createTextNode(title));</span>
          -<span class="nc" id="L83">        playlistElement.appendChild(nameElement);</span>
          +<span class="fc" id="L81">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="fc" id="L82">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="fc" id="L83">        playlistElement.appendChild(nameElement);</span>
           
          -<span class="nc" id="L85">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          -<span class="nc" id="L86">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          -<span class="nc" id="L87">        playlistElement.appendChild(UUIDElement);</span>
          +<span class="fc" id="L85">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="fc" id="L86">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="fc" id="L87">        playlistElement.appendChild(UUIDElement);</span>
           
           
          -<span class="nc" id="L90">        Element elementsElement = document.createElement(&quot;elements&quot;);</span>
          -<span class="nc bnc" id="L91" title="All 2 branches missed.">        for (UUID currentUUID : this.elementUUIDs) {</span>
          +<span class="fc" id="L90">        Element elementsElement = document.createElement(&quot;elements&quot;);</span>
          +<span class="pc bpc" id="L91" title="1 of 2 branches missed.">        for (UUID currentUUID : this.elementUUIDs) {</span>
           
           <span class="nc" id="L93">            Element elementUUIDElement = document.createElement(&quot;UUID&quot;);</span>
           <span class="nc" id="L94">            elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString()));</span>
           <span class="nc" id="L95">            elementsElement.appendChild(elementUUIDElement);</span>
           <span class="nc" id="L96">        }</span>
          -<span class="nc" id="L97">        playlistElement.appendChild(elementsElement);</span>
          -<span class="nc" id="L98">    }</span>
          +<span class="fc" id="L97">        playlistElement.appendChild(elementsElement);</span>
          +<span class="fc" id="L98">    }</span>
           
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 58b15a0..3178b04 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 721 of 2 063</td><td class="ctr2">16 %</td><td class="bar">161 of 169</td><td class="ctr2">4 %</td><td class="ctr1">152</td><td class="ctr2">172</td><td class="ctr1">425</td><td class="ctr2">499</td><td class="ctr1">66</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c2">68 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h4">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 5de5f23..967ff25 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 721 of 2 063</td><td class="ctr2">16 %</td><td class="bar">161 of 169</td><td class="ctr2">4 %</td><td class="ctr1">152</td><td class="ctr2">172</td><td class="ctr1">425</td><td class="ctr2">499</td><td class="ctr1">66</td><td class="ctr2">81</td><td class="ctr1">12</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f3">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h2">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j3">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c2">68 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">18 %</td><td class="ctr1" id="f4">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h4">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j4">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 9a234079437a1532072ed5f0bce0203922719b0f Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 12:54:48 +0200
          Subject: Fix : Javadoc missing
          
          ---
           target/site/apidocs/allclasses-index.html          | 114 +++
           target/site/apidocs/allpackages-index.html         |  76 ++
           target/site/apidocs/element-list                   |   3 +
           target/site/apidocs/help-doc.html                  | 162 ++++
           target/site/apidocs/index-all.html                 | 410 ++++++++++
           target/site/apidocs/index.html                     |  78 ++
           target/site/apidocs/jquery-ui.overrides.css        |  34 +
           target/site/apidocs/member-search-index.js         |   1 +
           target/site/apidocs/module-search-index.js         |   1 +
           target/site/apidocs/musichub/business/Album.html   | 250 +++++++
           .../site/apidocs/musichub/business/AudioBook.html  | 273 +++++++
           .../apidocs/musichub/business/AudioElement.html    | 325 ++++++++
           .../site/apidocs/musichub/business/Category.html   | 258 +++++++
           target/site/apidocs/musichub/business/Genre.html   | 266 +++++++
           .../site/apidocs/musichub/business/Language.html   | 258 +++++++
           .../site/apidocs/musichub/business/MusicHub.html   | 412 ++++++++++
           .../musichub/business/NoAlbumFoundException.html   | 150 ++++
           .../musichub/business/NoElementFoundException.html | 150 ++++
           .../business/NoPlayListFoundException.html         | 150 ++++
           .../site/apidocs/musichub/business/PlayList.html   | 215 ++++++
           target/site/apidocs/musichub/business/Song.html    | 251 +++++++
           .../apidocs/musichub/business/class-use/Album.html |  99 +++
           .../musichub/business/class-use/AudioBook.html     |  65 ++
           .../musichub/business/class-use/AudioElement.html  | 124 +++
           .../musichub/business/class-use/Category.html      | 101 +++
           .../apidocs/musichub/business/class-use/Genre.html |  98 +++
           .../musichub/business/class-use/Language.html      | 101 +++
           .../musichub/business/class-use/MusicHub.html      |  65 ++
           .../business/class-use/NoAlbumFoundException.html  | 101 +++
           .../class-use/NoElementFoundException.html         |  95 +++
           .../class-use/NoPlayListFoundException.html        |  94 +++
           .../musichub/business/class-use/PlayList.html      |  99 +++
           .../apidocs/musichub/business/class-use/Song.html  |  90 +++
           .../apidocs/musichub/business/package-summary.html | 116 +++
           .../apidocs/musichub/business/package-tree.html    | 114 +++
           .../apidocs/musichub/business/package-use.html     | 105 +++
           target/site/apidocs/musichub/main/Main.html        | 175 +++++
           .../site/apidocs/musichub/main/class-use/Main.html |  65 ++
           .../apidocs/musichub/main/package-summary.html     |  80 ++
           .../site/apidocs/musichub/main/package-tree.html   |  79 ++
           target/site/apidocs/musichub/main/package-use.html |  65 ++
           target/site/apidocs/musichub/util/LogHandler.html  | 210 ++++++
           .../site/apidocs/musichub/util/PathValidation.html | 189 +++++
           target/site/apidocs/musichub/util/XMLHandler.html  | 186 +++++
           .../musichub/util/class-use/LogHandler.html        |  65 ++
           .../musichub/util/class-use/PathValidation.html    |  65 ++
           .../musichub/util/class-use/XMLHandler.html        |  65 ++
           .../apidocs/musichub/util/package-summary.html     |  88 +++
           .../site/apidocs/musichub/util/package-tree.html   |  81 ++
           target/site/apidocs/musichub/util/package-use.html |  65 ++
           target/site/apidocs/overview-summary.html          |  27 +
           target/site/apidocs/overview-tree.html             | 120 +++
           target/site/apidocs/package-search-index.js        |   1 +
           target/site/apidocs/resources/glass.png            | Bin 0 -> 499 bytes
           target/site/apidocs/resources/x.png                | Bin 0 -> 394 bytes
           .../images/ui-bg_glass_55_fbf9ee_1x400.png         | Bin 0 -> 335 bytes
           .../images/ui-bg_glass_65_dadada_1x400.png         | Bin 0 -> 262 bytes
           .../images/ui-bg_glass_75_dadada_1x400.png         | Bin 0 -> 262 bytes
           .../images/ui-bg_glass_75_e6e6e6_1x400.png         | Bin 0 -> 262 bytes
           .../images/ui-bg_glass_95_fef1ec_1x400.png         | Bin 0 -> 332 bytes
           .../ui-bg_highlight-soft_75_cccccc_1x100.png       | Bin 0 -> 280 bytes
           .../script-dir/images/ui-icons_222222_256x240.png  | Bin 0 -> 6922 bytes
           .../script-dir/images/ui-icons_2e83ff_256x240.png  | Bin 0 -> 4549 bytes
           .../script-dir/images/ui-icons_454545_256x240.png  | Bin 0 -> 6992 bytes
           .../script-dir/images/ui-icons_888888_256x240.png  | Bin 0 -> 6999 bytes
           .../script-dir/images/ui-icons_cd0a0a_256x240.png  | Bin 0 -> 4549 bytes
           target/site/apidocs/script-dir/jquery-3.5.1.min.js |   2 +
           target/site/apidocs/script-dir/jquery-ui.min.css   |   7 +
           target/site/apidocs/script-dir/jquery-ui.min.js    |   6 +
           .../apidocs/script-dir/jquery-ui.structure.min.css |   5 +
           target/site/apidocs/script.js                      | 132 ++++
           target/site/apidocs/search.js                      | 354 +++++++++
           target/site/apidocs/serialized-form.html           |  89 +++
           target/site/apidocs/stylesheet.css                 | 827 +++++++++++++++++++++
           target/site/apidocs/tag-search-index.js            |   1 +
           target/site/apidocs/type-search-index.js           |   1 +
           target/site/jacoco/musichub.util/LogHandler.html   |   1 +
           .../site/jacoco/musichub.util/LogHandler.java.html |  69 ++
           .../site/jacoco/musichub.util/PathValidation.html  |   1 +
           .../jacoco/musichub.util/PathValidation.java.html  |  40 +
           80 files changed, 8465 insertions(+)
           create mode 100644 target/site/apidocs/allclasses-index.html
           create mode 100644 target/site/apidocs/allpackages-index.html
           create mode 100644 target/site/apidocs/element-list
           create mode 100644 target/site/apidocs/help-doc.html
           create mode 100644 target/site/apidocs/index-all.html
           create mode 100644 target/site/apidocs/index.html
           create mode 100644 target/site/apidocs/jquery-ui.overrides.css
           create mode 100644 target/site/apidocs/member-search-index.js
           create mode 100644 target/site/apidocs/module-search-index.js
           create mode 100644 target/site/apidocs/musichub/business/Album.html
           create mode 100644 target/site/apidocs/musichub/business/AudioBook.html
           create mode 100644 target/site/apidocs/musichub/business/AudioElement.html
           create mode 100644 target/site/apidocs/musichub/business/Category.html
           create mode 100644 target/site/apidocs/musichub/business/Genre.html
           create mode 100644 target/site/apidocs/musichub/business/Language.html
           create mode 100644 target/site/apidocs/musichub/business/MusicHub.html
           create mode 100644 target/site/apidocs/musichub/business/NoAlbumFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/NoElementFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/NoPlayListFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/PlayList.html
           create mode 100644 target/site/apidocs/musichub/business/Song.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/Album.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/AudioBook.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/AudioElement.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/Category.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/Genre.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/Language.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/MusicHub.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/PlayList.html
           create mode 100644 target/site/apidocs/musichub/business/class-use/Song.html
           create mode 100644 target/site/apidocs/musichub/business/package-summary.html
           create mode 100644 target/site/apidocs/musichub/business/package-tree.html
           create mode 100644 target/site/apidocs/musichub/business/package-use.html
           create mode 100644 target/site/apidocs/musichub/main/Main.html
           create mode 100644 target/site/apidocs/musichub/main/class-use/Main.html
           create mode 100644 target/site/apidocs/musichub/main/package-summary.html
           create mode 100644 target/site/apidocs/musichub/main/package-tree.html
           create mode 100644 target/site/apidocs/musichub/main/package-use.html
           create mode 100644 target/site/apidocs/musichub/util/LogHandler.html
           create mode 100644 target/site/apidocs/musichub/util/PathValidation.html
           create mode 100644 target/site/apidocs/musichub/util/XMLHandler.html
           create mode 100644 target/site/apidocs/musichub/util/class-use/LogHandler.html
           create mode 100644 target/site/apidocs/musichub/util/class-use/PathValidation.html
           create mode 100644 target/site/apidocs/musichub/util/class-use/XMLHandler.html
           create mode 100644 target/site/apidocs/musichub/util/package-summary.html
           create mode 100644 target/site/apidocs/musichub/util/package-tree.html
           create mode 100644 target/site/apidocs/musichub/util/package-use.html
           create mode 100644 target/site/apidocs/overview-summary.html
           create mode 100644 target/site/apidocs/overview-tree.html
           create mode 100644 target/site/apidocs/package-search-index.js
           create mode 100644 target/site/apidocs/resources/glass.png
           create mode 100644 target/site/apidocs/resources/x.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
           create mode 100644 target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
           create mode 100644 target/site/apidocs/script-dir/jquery-3.5.1.min.js
           create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.css
           create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.js
           create mode 100644 target/site/apidocs/script-dir/jquery-ui.structure.min.css
           create mode 100644 target/site/apidocs/script.js
           create mode 100644 target/site/apidocs/search.js
           create mode 100644 target/site/apidocs/serialized-form.html
           create mode 100644 target/site/apidocs/stylesheet.css
           create mode 100644 target/site/apidocs/tag-search-index.js
           create mode 100644 target/site/apidocs/type-search-index.js
           create mode 100644 target/site/jacoco/musichub.util/LogHandler.html
           create mode 100644 target/site/jacoco/musichub.util/LogHandler.java.html
           create mode 100644 target/site/jacoco/musichub.util/PathValidation.html
           create mode 100644 target/site/jacoco/musichub.util/PathValidation.java.html
          
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          new file mode 100644
          index 0000000..5373707
          --- /dev/null
          +++ b/target/site/apidocs/allclasses-index.html
          @@ -0,0 +1,114 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>All Classes (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="class index">
          +<meta name="generator" content="javadoc/AllClassesIndexWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="all-classes-index-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li><a href="index-all.html">Index</a></li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
          +</div>
          +<div id="all-classes-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Class Summary</button><button id="all-classes-table-tab3" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab3', 2)" class="table-tab">Enum Class Summary</button><button id="all-classes-table-tab4" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab4', 2)" class="table-tab">Exception Summary</button></div>
          +<div id="all-classes-table.tabpanel" role="tabpanel">
          +<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Album.html" title="class in musichub.business">Album</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></div>
          +<div class="col-last even-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          +<div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          +<div class="block">Class offering a path validation method.</div>
          +</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          new file mode 100644
          index 0000000..3c3f2bf
          --- /dev/null
          +++ b/target/site/apidocs/allpackages-index.html
          @@ -0,0 +1,76 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>All Packages (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="package index">
          +<meta name="generator" content="javadoc/AllPackagesIndexWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="all-packages-index-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li><a href="index-all.html">Index</a></li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
          +</div>
          +<div class="caption"><span>Package Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/element-list b/target/site/apidocs/element-list
          new file mode 100644
          index 0000000..87e8cdc
          --- /dev/null
          +++ b/target/site/apidocs/element-list
          @@ -0,0 +1,3 @@
          +musichub.business
          +musichub.main
          +musichub.util
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          new file mode 100644
          index 0000000..a862578
          --- /dev/null
          +++ b/target/site/apidocs/help-doc.html
          @@ -0,0 +1,162 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>API Help (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="help">
          +<meta name="generator" content="javadoc/HelpWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="help-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li><a href="index-all.html">Index</a></li>
          +<li class="nav-bar-cell1-rev">Help</li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">How This API Document Is Organized</h1>
          +<div class="sub-title">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
          +</div>
          +<section class="help-section">
          +<h2>Overview</h2>
          +<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
          +</section>
          +<section class="help-section">
          +<h2>Package</h2>
          +<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
          +<ul class="help-section-list">
          +<li>Interfaces</li>
          +<li>Classes</li>
          +<li>Enum Classes</li>
          +<li>Exceptions</li>
          +<li>Errors</li>
          +<li>Annotation Interfaces</li>
          +</ul>
          +</section>
          +<section class="help-section">
          +<h2>Class or Interface</h2>
          +<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
          +<ul class="help-section-list">
          +<li>Class Inheritance Diagram</li>
          +<li>Direct Subclasses</li>
          +<li>All Known Subinterfaces</li>
          +<li>All Known Implementing Classes</li>
          +<li>Class or Interface Declaration</li>
          +<li>Class or Interface Description</li>
          +</ul>
          +<br>
          +<ul class="help-section-list">
          +<li>Nested Class Summary</li>
          +<li>Field Summary</li>
          +<li>Property Summary</li>
          +<li>Constructor Summary</li>
          +<li>Method Summary</li>
          +</ul>
          +<br>
          +<ul class="help-section-list">
          +<li>Field Details</li>
          +<li>Property Details</li>
          +<li>Constructor Details</li>
          +<li>Method Details</li>
          +</ul>
          +<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
          +</section>
          +<section class="help-section">
          +<h2>Annotation Interface</h2>
          +<p>Each annotation interface has its own separate page with the following sections:</p>
          +<ul class="help-section-list">
          +<li>Annotation Interface Declaration</li>
          +<li>Annotation Interface Description</li>
          +<li>Required Element Summary</li>
          +<li>Optional Element Summary</li>
          +<li>Element Details</li>
          +</ul>
          +</section>
          +<section class="help-section">
          +<h2>Enum Class</h2>
          +<p>Each enum class has its own separate page with the following sections:</p>
          +<ul class="help-section-list">
          +<li>Enum Declaration</li>
          +<li>Enum Description</li>
          +<li>Enum Constant Summary</li>
          +<li>Enum Constant Details</li>
          +</ul>
          +</section>
          +<section class="help-section">
          +<h2>Use</h2>
          +<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
          +</section>
          +<section class="help-section">
          +<h2>Tree (Class Hierarchy)</h2>
          +<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
          +<ul class="help-section-list">
          +<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
          +<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
          +</ul>
          +</section>
          +<section class="help-section">
          +<h2>Index</h2>
          +<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
          +</section>
          +<section class="help-section">
          +<h2>Serialized Form</h2>
          +<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.</p>
          +</section>
          +<section class="help-section">
          +<h2>Search</h2>
          +<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:</p>
          +<ul class="help-section-list">
          +<li><code>j.l.obj</code> will match "java.lang.Object"</li>
          +<li><code>InpStr</code> will match "java.io.InputStream"</li>
          +<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li>
          +</ul>
          +<p>Refer to <a href="https://docs.oracle.com/en/java/javase/16/docs/specs/javadoc/javadoc-search-spec.html">the Javadoc Search Specification</a> for a full description of search features.</p>
          +</section>
          +<hr>
          +<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          new file mode 100644
          index 0000000..a35747c
          --- /dev/null
          +++ b/target/site/apidocs/index-all.html
          @@ -0,0 +1,410 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Index (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="index">
          +<meta name="generator" content="javadoc/IndexWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="index-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li class="nav-bar-cell1-rev">Index</li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1>Index</h1>
          +</div>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
          +<h2 class="title" id="I:A">A</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addAlbum(musichub.business.Album)">addAlbum(Album)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#addElement(java.util.UUID)">addElement(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElement(musichub.business.AudioElement)">addElement(AudioElement)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist(PlayList)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#addSong(java.util.UUID)">addSong(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album(String, String, int, String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(org.w3c.dom.Element)">Album(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#albums()">albums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#artist">artist</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(org.w3c.dom.Element)">AudioBook(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(org.w3c.dom.Element)">AudioElement(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:C">C</h2>
          +<dl class="index">
          +<dt><a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#CLASSIC">CLASSIC</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#content">content</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLDocument()">createXMLDocument()</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile(Document, String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:D">D</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#deletePlayList(java.lang.String)">deletePlayList(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#DIR">DIR</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#DOCUMENTARY">DOCUMENTARY</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:E">E</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#elements()">elements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#ENGLISH">ENGLISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:F">F</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#FRENCH">FRENCH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:G">G</h2>
          +<dl class="index">
          +<dt><a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#GERMAN">GERMAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getArtist()">getArtist()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement(List&lt;AudioElement&gt;, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getCategory()">getCategory()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#getCategory()">getCategory()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#getDate()">getDate()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getElements()">getElements()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#getGenre()">getGenre()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#getGenre()">getGenre()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getLanguage()">getLanguage()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#getLanguage()">getLanguage()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongs()">getSongs()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongsRandomly()">getSongsRandomly()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Album.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getUUID()">getUUID()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:H">H</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#HIPHOP">HIPHOP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:I">I</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          +<dd>
          +<div class="block">Method that checks the validity of a given path</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#ITALIAN">ITALIAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:J">J</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#JAZZ">JAZZ</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:L">L</h2>
          +<dl class="index">
          +<dt><a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#lengthInSeconds">lengthInSeconds</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>
          +<div class="block">Class offering a log writing method.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#%3Cinit%3E()">LogHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</dd>
          +</dl>
          +<h2 class="title" id="I:M">M</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/main/Main.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a> - Class in <a href="musichub/main/package-summary.html">musichub.main</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/main/Main.html#%3Cinit%3E()">Main()</a></span> - Constructor for class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#manageAudioElement()">manageAudioElement()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#%3Cinit%3E()">MusicHub()</a></span> - Constructor for class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/package-summary.html">musichub.business</a> - package musichub.business</dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/main/package-summary.html">musichub.main</a> - package musichub.main</dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/util/package-summary.html">musichub.util</a> - package musichub.util</dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:N">N</h2>
          +<dl class="index">
          +<dt><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/NoAlbumFoundException.html#%3Cinit%3E(java.lang.String)">NoAlbumFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/NoElementFoundException.html#%3Cinit%3E(java.lang.String)">NoElementFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/NoPlayListFoundException.html#%3Cinit%3E(java.lang.String)">NoPlayListFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#NOVEL">NOVEL</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:P">P</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#parseXMLFile(java.lang.String)">parseXMLFile(String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>
          +<div class="block">Class offering a path validation method.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          +<dd>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</dd>
          +<dt><a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String)">PlayList(String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList(String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(org.w3c.dom.Element)">PlayList(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#playlists()">playlists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#POP">POP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:R">R</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#RAP">RAP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#read()">read()</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that prints the content of spoteezer.log</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#ROCK">ROCK</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:S">S</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveAlbums()">saveAlbums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveElements()">saveElements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#savePlayLists()">savePlayLists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setCategory(java.lang.String)">setCategory(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#setGenre(java.lang.String)">setGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setLanguage(java.lang.String)">setLanguage(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(org.w3c.dom.Element)">Song(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#SPANISH">SPANISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#SPEECH">SPEECH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:T">T</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#THEATER">THEATER</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#title">title</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Song.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:U">U</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#uuid">uuid</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:V">V</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Genre.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          +<dd>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/Language.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          +<dd>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</dd>
          +</dl>
          +<h2 class="title" id="I:W">W</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#write(java.lang.String,java.lang.String)">write(String, String)</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that writes a log message to spoteezer.log</div>
          +</dd>
          +</dl>
          +<h2 class="title" id="I:X">X</h2>
          +<dl class="index">
          +<dt><a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#%3Cinit%3E()">XMLHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<h2 class="title" id="I:Y">Y</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/business/Category.html#YOUTH">YOUTH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          +<dd>&nbsp;</dd>
          +</dl>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          new file mode 100644
          index 0000000..2d288a6
          --- /dev/null
          +++ b/target/site/apidocs/index.html
          @@ -0,0 +1,78 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Overview (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="package index">
          +<meta name="generator" content="javadoc/PackageIndexWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-index-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li class="nav-bar-cell1-rev">Overview</li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li><a href="index-all.html">Index</a></li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">spoteezer 0.1.0 API</h1>
          +</div>
          +<div id="all-packages-table">
          +<div class="caption"><span>Packages</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          +<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          +<div class="col-last odd-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          +<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          +<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          +</div>
          +</div>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/jquery-ui.overrides.css b/target/site/apidocs/jquery-ui.overrides.css
          new file mode 100644
          index 0000000..f89acb6
          --- /dev/null
          +++ b/target/site/apidocs/jquery-ui.overrides.css
          @@ -0,0 +1,34 @@
          +/*
          + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
          + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          + *
          + * This code is free software; you can redistribute it and/or modify it
          + * under the terms of the GNU General Public License version 2 only, as
          + * published by the Free Software Foundation.  Oracle designates this
          + * particular file as subject to the "Classpath" exception as provided
          + * by Oracle in the LICENSE file that accompanied this code.
          + *
          + * This code is distributed in the hope that it will be useful, but WITHOUT
          + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          + * version 2 for more details (a copy is included in the LICENSE file that
          + * accompanied this code).
          + *
          + * You should have received a copy of the GNU General Public License version
          + * 2 along with this work; if not, write to the Free Software Foundation,
          + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          + *
          + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          + * or visit www.oracle.com if you need additional information or have any
          + * questions.
          + */
          +
          +.ui-state-active,
          +.ui-widget-content .ui-state-active,
          +.ui-widget-header .ui-state-active,
          +a.ui-button:active,
          +.ui-button:active,
          +.ui-button.ui-state-active:hover {
          +    /* Overrides the color of selection used in jQuery UI */
          +    background: #F8981D;
          +}
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          new file mode 100644
          index 0000000..f583be9
          --- /dev/null
          +++ b/target/site/apidocs/member-search-index.js
          @@ -0,0 +1 @@
          +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/module-search-index.js b/target/site/apidocs/module-search-index.js
          new file mode 100644
          index 0000000..0d59754
          --- /dev/null
          +++ b/target/site/apidocs/module-search-index.js
          @@ -0,0 +1 @@
          +moduleSearchIndex = [];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          new file mode 100644
          index 0000000..973b265
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/Album.html
          @@ -0,0 +1,250 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Album (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: Album">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Album.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class Album" class="title">Class Album</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.business.Album</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Album</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addSong(java.util.UUID)">addSong</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getDate()">getDate</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongs()">getSongs</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongsRandomly()">getSongsRandomly</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">
          +<h3>Album</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          +<h3>Album</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          +<h3>Album</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span>
          +      throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="addSong(java.util.UUID)">
          +<h3>addSong</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addSong</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getSongs()">
          +<h3>getSongs</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongs</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getSongsRandomly()">
          +<h3>getSongsRandomly</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongsRandomly</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getTitle()">
          +<h3>getTitle</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getDate()">
          +<h3>getDate</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></span>&nbsp;<span class="element-name">getDate</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          +<h3>createXMLElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          new file mode 100644
          index 0000000..f9f339c
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/AudioBook.html
          @@ -0,0 +1,273 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>AudioBook (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: AudioBook">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/AudioBook.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class AudioBook" class="title">Class AudioBook</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          +<div class="inheritance">musichub.business.AudioBook</div>
          +</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">AudioBook</span>
          +<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- =========== FIELD SUMMARY =========== -->
          +<li>
          +<section class="field-summary" id="field.summary">
          +<h2>Field Summary</h2>
          +<div class="inherited-list">
          +<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          +<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          +</section>
          +</li>
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setCategory(java.lang.String)">setCategory</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setLanguage(java.lang.String)">setLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          +<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
          +<h3>AudioBook</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          +<h3>AudioBook</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          +<h3>AudioBook</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="getLanguage()">
          +<h3>getLanguage</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="setLanguage(java.lang.String)">
          +<h3>setLanguage</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setLanguage</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getCategory()">
          +<h3>getCategory</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="setCategory(java.lang.String)">
          +<h3>setCategory</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setCategory</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="toString()">
          +<h3>toString</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          +<dl class="notes">
          +<dt>Overrides:</dt>
          +<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          +<h3>createXMLElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          +<dl class="notes">
          +<dt>Overrides:</dt>
          +<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          new file mode 100644
          index 0000000..0765c5e
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/AudioElement.html
          @@ -0,0 +1,325 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>AudioElement (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: AudioElement">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/AudioElement.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class AudioElement" class="title">Class AudioElement</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.business.AudioElement</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>Direct Known Subclasses:</dt>
          +<dd><code><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></code>, <code><a href="Song.html" title="class in musichub.business">Song</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AudioElement</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- =========== FIELD SUMMARY =========== -->
          +<li>
          +<section class="field-summary" id="field.summary">
          +<h2>Field Summary</h2>
          +<div class="caption"><span>Fields</span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Field</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#artist">artist</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#content">content</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code>protected int</code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#lengthInSeconds">lengthInSeconds</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#title">title</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#uuid">uuid</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getArtist()">getArtist</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getUUID()">getUUID</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#manageAudioElement()">manageAudioElement</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ============ FIELD DETAIL =========== -->
          +<li>
          +<section class="field-details" id="field.detail">
          +<h2>Field Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="title">
          +<h3>title</h3>
          +<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">title</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="artist">
          +<h3>artist</h3>
          +<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">artist</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="lengthInSeconds">
          +<h3>lengthInSeconds</h3>
          +<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">lengthInSeconds</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="uuid">
          +<h3>uuid</h3>
          +<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">uuid</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="content">
          +<h3>content</h3>
          +<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">content</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          +<h3>AudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          +<h3>AudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;lengthInSeconds,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          +<h3>AudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="getUUID()">
          +<h3>getUUID</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">getUUID</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getArtist()">
          +<h3>getArtist</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getArtist</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getTitle()">
          +<h3>getTitle</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="toString()">
          +<h3>toString</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          +<dl class="notes">
          +<dt>Overrides:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          +<h3>createXMLElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="manageAudioElement()">
          +<h3>manageAudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">manageAudioElement</span>()
          +                        throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          new file mode 100644
          index 0000000..78478cc
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/Category.html
          @@ -0,0 +1,258 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Category (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, enum: Category">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Category.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          +<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Enum Class Category" class="title">Enum Class Category</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;
          +<div class="inheritance">musichub.business.Category</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Category</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== NESTED CLASS SUMMARY ======== -->
          +<li>
          +<section class="nested-class-summary" id="nested.class.summary">
          +<h2>Nested Class Summary</h2>
          +<div class="inherited-list">
          +<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          +</section>
          +</li>
          +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          +<li>
          +<section class="constants-summary" id="enum.constant.summary">
          +<h2>Enum Constant Summary</h2>
          +<div class="caption"><span>Enum Constants</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Enum Constant</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#DOCUMENTARY">DOCUMENTARY</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#NOVEL">NOVEL</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPEECH">SPEECH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#THEATER">THEATER</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#YOUTH">YOUTH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ============ ENUM CONSTANT DETAIL =========== -->
          +<li>
          +<section class="constant-details" id="enum.constant.detail">
          +<h2>Enum Constant Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="YOUTH">
          +<h3>YOUTH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">YOUTH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="NOVEL">
          +<h3>NOVEL</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">NOVEL</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="THEATER">
          +<h3>THEATER</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">THEATER</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="DOCUMENTARY">
          +<h3>DOCUMENTARY</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">DOCUMENTARY</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="SPEECH">
          +<h3>SPEECH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">SPEECH</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="values()">
          +<h3>values</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +<dl class="notes">
          +<dt>Returns:</dt>
          +<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="valueOf(java.lang.String)">
          +<h3>valueOf</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          +<div class="block">Returns the enum constant of this class with the specified name.
          +The string must match <i>exactly</i> an identifier used to declare an
          +enum constant in this class.  (Extraneous whitespace characters are 
          +not permitted.)</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          +<dt>Returns:</dt>
          +<dd>the enum constant with the specified name</dd>
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getCategory()">
          +<h3>getCategory</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          new file mode 100644
          index 0000000..1e8368a
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/Genre.html
          @@ -0,0 +1,266 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Genre (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, enum: Genre">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Genre.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          +<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Enum Class Genre" class="title">Enum Class Genre</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;
          +<div class="inheritance">musichub.business.Genre</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Genre</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== NESTED CLASS SUMMARY ======== -->
          +<li>
          +<section class="nested-class-summary" id="nested.class.summary">
          +<h2>Nested Class Summary</h2>
          +<div class="inherited-list">
          +<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          +</section>
          +</li>
          +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          +<li>
          +<section class="constants-summary" id="enum.constant.summary">
          +<h2>Enum Constant Summary</h2>
          +<div class="caption"><span>Enum Constants</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Enum Constant</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#CLASSIC">CLASSIC</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#HIPHOP">HIPHOP</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#JAZZ">JAZZ</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#POP">POP</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#RAP">RAP</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ROCK">ROCK</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ============ ENUM CONSTANT DETAIL =========== -->
          +<li>
          +<section class="constant-details" id="enum.constant.detail">
          +<h2>Enum Constant Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="JAZZ">
          +<h3>JAZZ</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">JAZZ</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="CLASSIC">
          +<h3>CLASSIC</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">CLASSIC</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="HIPHOP">
          +<h3>HIPHOP</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">HIPHOP</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="ROCK">
          +<h3>ROCK</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">ROCK</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="POP">
          +<h3>POP</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">POP</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="RAP">
          +<h3>RAP</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">RAP</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="values()">
          +<h3>values</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +<dl class="notes">
          +<dt>Returns:</dt>
          +<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="valueOf(java.lang.String)">
          +<h3>valueOf</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          +<div class="block">Returns the enum constant of this class with the specified name.
          +The string must match <i>exactly</i> an identifier used to declare an
          +enum constant in this class.  (Extraneous whitespace characters are 
          +not permitted.)</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          +<dt>Returns:</dt>
          +<dd>the enum constant with the specified name</dd>
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getGenre()">
          +<h3>getGenre</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          new file mode 100644
          index 0000000..373acb6
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/Language.html
          @@ -0,0 +1,258 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Language (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, enum: Language">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Language.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          +<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Enum Class Language" class="title">Enum Class Language</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;
          +<div class="inheritance">musichub.business.Language</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Language</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== NESTED CLASS SUMMARY ======== -->
          +<li>
          +<section class="nested-class-summary" id="nested.class.summary">
          +<h2>Nested Class Summary</h2>
          +<div class="inherited-list">
          +<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          +</section>
          +</li>
          +<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          +<li>
          +<section class="constants-summary" id="enum.constant.summary">
          +<h2>Enum Constant Summary</h2>
          +<div class="caption"><span>Enum Constants</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Enum Constant</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#ENGLISH">ENGLISH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#FRENCH">FRENCH</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#GERMAN">GERMAN</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ITALIAN">ITALIAN</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPANISH">SPANISH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ============ ENUM CONSTANT DETAIL =========== -->
          +<li>
          +<section class="constant-details" id="enum.constant.detail">
          +<h2>Enum Constant Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="FRENCH">
          +<h3>FRENCH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">FRENCH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="ENGLISH">
          +<h3>ENGLISH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ENGLISH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="ITALIAN">
          +<h3>ITALIAN</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ITALIAN</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="SPANISH">
          +<h3>SPANISH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">SPANISH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="GERMAN">
          +<h3>GERMAN</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">GERMAN</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="values()">
          +<h3>values</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +<dl class="notes">
          +<dt>Returns:</dt>
          +<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="valueOf(java.lang.String)">
          +<h3>valueOf</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          +<div class="block">Returns the enum constant of this class with the specified name.
          +The string must match <i>exactly</i> an identifier used to declare an
          +enum constant in this class.  (Extraneous whitespace characters are 
          +not permitted.)</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          +<dt>Returns:</dt>
          +<dd>the enum constant with the specified name</dd>
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getLanguage()">
          +<h3>getLanguage</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          new file mode 100644
          index 0000000..796ef55
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/MusicHub.html
          @@ -0,0 +1,412 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>MusicHub (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: MusicHub">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/MusicHub.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class MusicHub" class="title">Class MusicHub</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.business.MusicHub</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">MusicHub</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- =========== FIELD SUMMARY =========== -->
          +<li>
          +<section class="field-summary" id="field.summary">
          +<h2>Field Summary</h2>
          +<div class="caption"><span>Fields</span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Field</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#DIR">DIR</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">MusicHub</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#albums()">albums</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#elements()">elements</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#playlists()">playlists</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveAlbums()">saveAlbums</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveElements()">saveElements</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#savePlayLists()">savePlayLists</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ============ FIELD DETAIL =========== -->
          +<li>
          +<section class="field-details" id="field.detail">
          +<h2>Field Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="DIR">
          +<h3>DIR</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">DIR</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="ALBUMS_FILE_PATH">
          +<h3>ALBUMS_FILE_PATH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ALBUMS_FILE_PATH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="PLAYLISTS_FILE_PATH">
          +<h3>PLAYLISTS_FILE_PATH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">PLAYLISTS_FILE_PATH</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="ELEMENTS_FILE_PATH">
          +<h3>ELEMENTS_FILE_PATH</h3>
          +<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ELEMENTS_FILE_PATH</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>MusicHub</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">MusicHub</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="addElement(musichub.business.AudioElement)">
          +<h3>addElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="addAlbum(musichub.business.Album)">
          +<h3>addAlbum</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAlbum</span>&#8203;<span class="parameters">(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="addPlaylist(musichub.business.PlayList)">
          +<h3>addPlaylist</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addPlaylist</span>&#8203;<span class="parameters">(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="deletePlayList(java.lang.String)">
          +<h3>deletePlayList</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">deletePlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          +                    throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="albums()">
          +<h3>albums</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</span>&nbsp;<span class="element-name">albums</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="playlists()">
          +<h3>playlists</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</span>&nbsp;<span class="element-name">playlists</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="elements()">
          +<h3>elements</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">elements</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getAlbumsTitlesSortedByDate()">
          +<h3>getAlbumsTitlesSortedByDate</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAlbumsTitlesSortedByDate</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getAudiobooksTitlesSortedByAuthor()">
          +<h3>getAudiobooksTitlesSortedByAuthor</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAudiobooksTitlesSortedByAuthor</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getAlbumSongs(java.lang.String)">
          +<h3>getAlbumSongs</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongs</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          +                                 throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getAlbumSongsSortedByGenre(java.lang.String)">
          +<h3>getAlbumSongsSortedByGenre</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongsSortedByGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          +                                      throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="addElementToAlbum(java.lang.String,java.lang.String)">
          +<h3>addElementToAlbum</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToAlbum</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          +                       throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          +<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          +<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="addElementToPlayList(java.lang.String,java.lang.String)">
          +<h3>addElementToPlayList</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToPlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          +                          throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a>,
          +<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          +<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="saveAlbums()">
          +<h3>saveAlbums</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveAlbums</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="savePlayLists()">
          +<h3>savePlayLists</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">savePlayLists</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="saveElements()">
          +<h3>saveElements</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveElements</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getAudioElement(java.util.List,java.lang.String)">
          +<h3>getAudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">getAudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</span>
          +                     throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          new file mode 100644
          index 0000000..b97e96b
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          @@ -0,0 +1,150 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: NoAlbumFoundException">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/NoAlbumFoundException.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li>Method</li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class NoAlbumFoundException" class="title">Class NoAlbumFoundException</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          +<div class="inheritance">musichub.business.NoAlbumFoundException</div>
          +</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoAlbumFoundException</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          +<dl class="notes">
          +<dt>See Also:</dt>
          +<dd><a href="../../serialized-form.html#musichub.business.NoAlbumFoundException">Serialized Form</a></dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoAlbumFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String)">
          +<h3>NoAlbumFoundException</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoAlbumFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          new file mode 100644
          index 0000000..02158e1
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html
          @@ -0,0 +1,150 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>NoElementFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: NoElementFoundException">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/NoElementFoundException.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li>Method</li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class NoElementFoundException" class="title">Class NoElementFoundException</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          +<div class="inheritance">musichub.business.NoElementFoundException</div>
          +</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoElementFoundException</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          +<dl class="notes">
          +<dt>See Also:</dt>
          +<dd><a href="../../serialized-form.html#musichub.business.NoElementFoundException">Serialized Form</a></dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoElementFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String)">
          +<h3>NoElementFoundException</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoElementFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          new file mode 100644
          index 0000000..cb1bead
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          @@ -0,0 +1,150 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: NoPlayListFoundException">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/NoPlayListFoundException.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li>Method</li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class NoPlayListFoundException" class="title">Class NoPlayListFoundException</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          +<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          +<div class="inheritance">musichub.business.NoPlayListFoundException</div>
          +</div>
          +</div>
          +</div>
          +<section class="description">
          +<dl class="notes">
          +<dt>All Implemented Interfaces:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          +</dl>
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoPlayListFoundException</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          +<dl class="notes">
          +<dt>See Also:</dt>
          +<dd><a href="../../serialized-form.html#musichub.business.NoPlayListFoundException">Serialized Form</a></dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoPlayListFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String)">
          +<h3>NoPlayListFoundException</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoPlayListFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          new file mode 100644
          index 0000000..d681f94
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/PlayList.html
          @@ -0,0 +1,215 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>PlayList (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: PlayList">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/PlayList.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class PlayList" class="title">Class PlayList</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.business.PlayList</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlayList</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(java.util.UUID)">addElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getElements()">getElements</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.ArrayList)">
          +<h3>PlayList</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String)">
          +<h3>PlayList</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          +<h3>PlayList</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="addElement(java.util.UUID)">
          +<h3>addElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getElements()">
          +<h3>getElements</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getElements</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getTitle()">
          +<h3>getTitle</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          +<h3>createXMLElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          new file mode 100644
          index 0000000..fb5a918
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/Song.html
          @@ -0,0 +1,251 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Song (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business, class: Song">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Song.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          +<h1 title="Class Song" class="title">Class Song</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          +<div class="inheritance">musichub.business.Song</div>
          +</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Song</span>
          +<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- =========== FIELD SUMMARY =========== -->
          +<li>
          +<section class="field-summary" id="field.summary">
          +<h2>Field Summary</h2>
          +<div class="inherited-list">
          +<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          +<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          +</section>
          +</li>
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;length,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;length,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setGenre(java.lang.String)">setGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          +<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          +<h3>Song</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;length,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          +<h3>Song</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          + int&nbsp;length,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          +<h3>Song</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="getGenre()">
          +<h3>getGenre</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="setGenre(java.lang.String)">
          +<h3>setGenre</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="toString()">
          +<h3>toString</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          +<dl class="notes">
          +<dt>Overrides:</dt>
          +<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          +<h3>createXMLElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          +<dl class="notes">
          +<dt>Overrides:</dt>
          +<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          new file mode 100644
          index 0000000..89a09b3
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/Album.html
          @@ -0,0 +1,99 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: Album">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Album.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.Album" class="title">Uses of Class<br>musichub.business.Album</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../Album.html" title="class in musichub.business">Album</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#albums()">albums</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="../Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          new file mode 100644
          index 0000000..e911a56
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: AudioBook">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../AudioBook.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.AudioBook" class="title">Uses of Class<br>musichub.business.AudioBook</h1>
          +</div>
          +No usage of musichub.business.AudioBook</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          new file mode 100644
          index 0000000..67ffde5
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          @@ -0,0 +1,124 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: AudioElement">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../AudioElement.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.AudioElement" class="title">Uses of Class<br>musichub.business.AudioElement</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Subclasses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>class&nbsp;</code></div>
          +<div class="col-second even-row-color"><code><span class="member-name-link"><a href="../AudioBook.html" title="class in musichub.business">AudioBook</a></span></code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
          +<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="../Song.html" title="class in musichub.business">Song</a></span></code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#elements()">elements</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<div class="caption"><span>Method parameters in <a href="../package-summary.html">musichub.business</a> with type arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          new file mode 100644
          index 0000000..3c43357
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/Category.html
          @@ -0,0 +1,101 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, enum: Category">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Category.html" title="enum class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Enum Class musichub.business.Category" class="title">Uses of Enum Class<br>musichub.business.Category</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../Category.html" title="enum class in musichub.business">Category</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getCategory()">getCategory</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first even-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#values()">values</a></span>()</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          new file mode 100644
          index 0000000..e07056b
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/Genre.html
          @@ -0,0 +1,98 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, enum: Genre">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Genre.html" title="enum class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Enum Class musichub.business.Genre" class="title">Uses of Enum Class<br>musichub.business.Genre</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../Genre.html" title="enum class in musichub.business">Genre</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first odd-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#values()">values</a></span>()</code></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          new file mode 100644
          index 0000000..446982a
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/Language.html
          @@ -0,0 +1,101 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, enum: Language">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Language.html" title="enum class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Enum Class musichub.business.Language" class="title">Uses of Enum Class<br>musichub.business.Language</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../Language.html" title="enum class in musichub.business">Language</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getLanguage()">getLanguage</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Returns the enum constant of this class with the specified name.</div>
          +</div>
          +<div class="col-first even-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#values()">values</a></span>()</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Returns an array containing the constants of this enum class, in
          +the order they are declared.</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          new file mode 100644
          index 0000000..284de20
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: MusicHub">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../MusicHub.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.MusicHub" class="title">Uses of Class<br>musichub.business.MusicHub</h1>
          +</div>
          +No usage of musichub.business.MusicHub</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          new file mode 100644
          index 0000000..4fe2d48
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          @@ -0,0 +1,101 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: NoAlbumFoundException">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../NoAlbumFoundException.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.NoAlbumFoundException" class="title">Uses of Class<br>musichub.business.NoAlbumFoundException</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>void</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          new file mode 100644
          index 0000000..18ab630
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          @@ -0,0 +1,95 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: NoElementFoundException">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../NoElementFoundException.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.NoElementFoundException" class="title">Uses of Class<br>musichub.business.NoElementFoundException</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>void</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          new file mode 100644
          index 0000000..a1bdfd9
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          @@ -0,0 +1,94 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: NoPlayListFoundException">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../NoPlayListFoundException.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.NoPlayListFoundException" class="title">Uses of Class<br>musichub.business.NoPlayListFoundException</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><code>void</code></div>
          +<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          new file mode 100644
          index 0000000..634e0d8
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html
          @@ -0,0 +1,99 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: PlayList">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../PlayList.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.PlayList" class="title">Uses of Class<br>musichub.business.PlayList</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../PlayList.html" title="class in musichub.business">PlayList</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#playlists()">playlists</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          new file mode 100644
          index 0000000..fb99612
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/class-use/Song.html
          @@ -0,0 +1,90 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business, class: Song">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Song.html" title="class in musichub.business">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.business.Song" class="title">Uses of Class<br>musichub.business.Song</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="class-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<h2>Uses of <a href="../Song.html" title="class in musichub.business">Song</a> in <a href="../package-summary.html">musichub.business</a></h2>
          +<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          new file mode 100644
          index 0000000..5c16eb0
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/package-summary.html
          @@ -0,0 +1,116 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.business (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.business">
          +<meta name="generator" content="javadoc/PackageWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li class="nav-bar-cell1-rev">Package</li>
          +<li>Class</li>
          +<li><a href="package-use.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Package" class="title">Package&nbsp;musichub.business</h1>
          +</div>
          +<hr>
          +<div class="package-signature">package <span class="element-name">musichub.business</span></div>
          +<section class="summary">
          +<ul class="summary-list">
          +<li>
          +<div class="caption"><span>Class Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="Album.html" title="class in musichub.business">Album</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</li>
          +<li>
          +<div class="caption"><span>Enum Class Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Enum Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="Category.html" title="enum class in musichub.business">Category</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="Genre.html" title="enum class in musichub.business">Genre</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="Language.html" title="enum class in musichub.business">Language</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</li>
          +<li>
          +<div class="caption"><span>Exception Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Exception</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          new file mode 100644
          index 0000000..fd8432b
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/package-tree.html
          @@ -0,0 +1,114 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="tree: package: musichub.business">
          +<meta name="generator" content="javadoc/PackageTreeWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-tree-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li>Use</li>
          +<li class="nav-bar-cell1-rev">Tree</li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">Hierarchy For Package musichub.business</h1>
          +<span class="package-hierarchy-label">Package Hierarchies:</span>
          +<ul class="horizontal">
          +<li><a href="../../overview-tree.html">All Packages</a></li>
          +</ul>
          +</div>
          +<section class="hierarchy">
          +<h2 title="Class Hierarchy">Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          +<li class="circle">musichub.business.<a href="AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          +<li class="circle">musichub.business.<a href="Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          +</ul>
          +</li>
          +<li class="circle">musichub.business.<a href="MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          +<li class="circle">musichub.business.<a href="PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          +<li class="circle">musichub.business.<a href="NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          +<li class="circle">musichub.business.<a href="NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +<section class="hierarchy">
          +<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          +<ul>
          +<li class="circle">musichub.business.<a href="Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          +<li class="circle">musichub.business.<a href="Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          +<li class="circle">musichub.business.<a href="Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          new file mode 100644
          index 0000000..f00b71c
          --- /dev/null
          +++ b/target/site/apidocs/musichub/business/package-use.html
          @@ -0,0 +1,105 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.business">
          +<meta name="generator" content="javadoc/PackageUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-use-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Package musichub.business" class="title">Uses of Package<br>musichub.business</h1>
          +</div>
          +<div class="caption"><span>Packages that use <a href="package-summary.html">musichub.business</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Package</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +<section class="package-uses">
          +<ul class="block-list">
          +<li>
          +<section class="detail" id="musichub.business">
          +<div class="caption"><span>Classes in <a href="package-summary.html">musichub.business</a> used by <a href="package-summary.html">musichub.business</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="class-use/Album.html#musichub.business">Album</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="class-use/AudioElement.html#musichub.business">AudioElement</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="class-use/Category.html#musichub.business">Category</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="class-use/Genre.html#musichub.business">Genre</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="class-use/Language.html#musichub.business">Language</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="class-use/NoAlbumFoundException.html#musichub.business">NoAlbumFoundException</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="class-use/NoElementFoundException.html#musichub.business">NoElementFoundException</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="class-use/NoPlayListFoundException.html#musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="class-use/PlayList.html#musichub.business">PlayList</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="class-use/Song.html#musichub.business">Song</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          new file mode 100644
          index 0000000..756debb
          --- /dev/null
          +++ b/target/site/apidocs/musichub/main/Main.html
          @@ -0,0 +1,175 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Main (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.main, class: Main">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Main.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.main</a></div>
          +<h1 title="Class Main" class="title">Class Main</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.main.Main</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Main</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">Main</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>Main</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Main</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="main(java.lang.String[])">
          +<h3>main</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">main</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</span>
          +                 throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          new file mode 100644
          index 0000000..ea3723f
          --- /dev/null
          +++ b/target/site/apidocs/musichub/main/class-use/Main.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.main, class: Main">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Main.html" title="class in musichub.main">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.main.Main" class="title">Uses of Class<br>musichub.main.Main</h1>
          +</div>
          +No usage of musichub.main.Main</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          new file mode 100644
          index 0000000..ca88160
          --- /dev/null
          +++ b/target/site/apidocs/musichub/main/package-summary.html
          @@ -0,0 +1,80 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.main (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.main">
          +<meta name="generator" content="javadoc/PackageWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li class="nav-bar-cell1-rev">Package</li>
          +<li>Class</li>
          +<li><a href="package-use.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Package" class="title">Package&nbsp;musichub.main</h1>
          +</div>
          +<hr>
          +<div class="package-signature">package <span class="element-name">musichub.main</span></div>
          +<section class="summary">
          +<ul class="summary-list">
          +<li>
          +<div class="caption"><span>Class Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="Main.html" title="class in musichub.main">Main</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          new file mode 100644
          index 0000000..b629a9f
          --- /dev/null
          +++ b/target/site/apidocs/musichub/main/package-tree.html
          @@ -0,0 +1,79 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="tree: package: musichub.main">
          +<meta name="generator" content="javadoc/PackageTreeWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-tree-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li>Use</li>
          +<li class="nav-bar-cell1-rev">Tree</li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">Hierarchy For Package musichub.main</h1>
          +<span class="package-hierarchy-label">Package Hierarchies:</span>
          +<ul class="horizontal">
          +<li><a href="../../overview-tree.html">All Packages</a></li>
          +</ul>
          +</div>
          +<section class="hierarchy">
          +<h2 title="Class Hierarchy">Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">musichub.main.<a href="Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          new file mode 100644
          index 0000000..d88fcc7
          --- /dev/null
          +++ b/target/site/apidocs/musichub/main/package-use.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.main">
          +<meta name="generator" content="javadoc/PackageUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-use-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Package musichub.main" class="title">Uses of Package<br>musichub.main</h1>
          +</div>
          +No usage of musichub.main</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/LogHandler.html b/target/site/apidocs/musichub/util/LogHandler.html
          new file mode 100644
          index 0000000..aab61a3
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/LogHandler.html
          @@ -0,0 +1,210 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>LogHandler (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.util, class: LogHandler">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/LogHandler.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          +<h1 title="Class LogHandler" class="title">Class LogHandler</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.util.LogHandler</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">LogHandler</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +<div class="block">Class offering a log writing method.</div>
          +<dl class="notes">
          +<dt>Version:</dt>
          +<dd>1.0</dd>
          +<dt>Author:</dt>
          +<dd>Aimeric ADJUTOR</dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">LogHandler</a></span>()</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#read()">read</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method that prints the content of spoteezer.log</div>
          +</div>
          +<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#write(java.lang.String,java.lang.String)">write</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method that writes a log message to spoteezer.log</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>LogHandler</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">LogHandler</span>()</div>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">AssertionError</a></code> - you can't instantiate this class</dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="write(java.lang.String,java.lang.String)">
          +<h3>write</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">write</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type)</span>
          +                  throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
          +<div class="block">Method that writes a log message to spoteezer.log</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>msg</code> - the message to write</dd>
          +<dd><code>type</code> - the type of log</dd>
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code> - if the file's not there</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="read()">
          +<h3>read</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">read</span>()
          +                 throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
          +<div class="block">Method that prints the content of spoteezer.log</div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code> - if the file's not there</dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/PathValidation.html b/target/site/apidocs/musichub/util/PathValidation.html
          new file mode 100644
          index 0000000..fd6d4b8
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/PathValidation.html
          @@ -0,0 +1,189 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>PathValidation (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.util, class: PathValidation">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/PathValidation.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          +<h1 title="Class PathValidation" class="title">Class PathValidation</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.util.PathValidation</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">PathValidation</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +<div class="block">Class offering a path validation method.</div>
          +<dl class="notes">
          +<dt>Version:</dt>
          +<dd>1.0</dd>
          +<dt>Author:</dt>
          +<dd>Aimeric ADJUTOR</dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">PathValidation</a></span>()</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#isPathValid(java.lang.String)">isPathValid</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method that checks the validity of a given path</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>PathValidation</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PathValidation</span>()</div>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">AssertionError</a></code> - you can't instantiate this class</dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="isPathValid(java.lang.String)">
          +<h3>isPathValid</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPathValid</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</span></div>
          +<div class="block">Method that checks the validity of a given path</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>inputPath</code> - the path given by the user</dd>
          +<dt>Returns:</dt>
          +<dd>a boolean</dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          new file mode 100644
          index 0000000..8957fcb
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/XMLHandler.html
          @@ -0,0 +1,186 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>XMLHandler (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.util, class: XMLHandler">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/XMLHandler.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          +<h1 title="Class XMLHandler" class="title">Class XMLHandler</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.util.XMLHandler</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">XMLHandler</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">XMLHandler</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLDocument()">createXMLDocument</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#parseXMLFile(java.lang.String)">parseXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>XMLHandler</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">XMLHandler</span>()</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="createXMLFile(org.w3c.dom.Document,java.lang.String)">
          +<h3>createXMLFile</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          + <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="createXMLDocument()">
          +<h3>createXMLDocument</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></span>&nbsp;<span class="element-name">createXMLDocument</span>()</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="parseXMLFile(java.lang.String)">
          +<h3>parseXMLFile</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></span>&nbsp;<span class="element-name">parseXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/LogHandler.html b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          new file mode 100644
          index 0000000..2d3ba9c
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.util.LogHandler (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.util, class: LogHandler">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../LogHandler.html" title="class in musichub.util">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.util.LogHandler" class="title">Uses of Class<br>musichub.util.LogHandler</h1>
          +</div>
          +No usage of musichub.util.LogHandler</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/PathValidation.html b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          new file mode 100644
          index 0000000..68d4275
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.util.PathValidation (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.util, class: PathValidation">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../PathValidation.html" title="class in musichub.util">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.util.PathValidation" class="title">Uses of Class<br>musichub.util.PathValidation</h1>
          +</div>
          +No usage of musichub.util.PathValidation</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          new file mode 100644
          index 0000000..1115b00
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.util, class: XMLHandler">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../XMLHandler.html" title="class in musichub.util">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.util.XMLHandler" class="title">Uses of Class<br>musichub.util.XMLHandler</h1>
          +</div>
          +No usage of musichub.util.XMLHandler</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          new file mode 100644
          index 0000000..f15c1e8
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/package-summary.html
          @@ -0,0 +1,88 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.util (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="declaration: package: musichub.util">
          +<meta name="generator" content="javadoc/PackageWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-declaration-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li class="nav-bar-cell1-rev">Package</li>
          +<li>Class</li>
          +<li><a href="package-use.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Package" class="title">Package&nbsp;musichub.util</h1>
          +</div>
          +<hr>
          +<div class="package-signature">package <span class="element-name">musichub.util</span></div>
          +<section class="summary">
          +<ul class="summary-list">
          +<li>
          +<div class="caption"><span>Class Summary</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color"><a href="PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Class offering a path validation method.</div>
          +</div>
          +<div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          new file mode 100644
          index 0000000..5e16d78
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/package-tree.html
          @@ -0,0 +1,81 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="tree: package: musichub.util">
          +<meta name="generator" content="javadoc/PackageTreeWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-tree-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li>Use</li>
          +<li class="nav-bar-cell1-rev">Tree</li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">Hierarchy For Package musichub.util</h1>
          +<span class="package-hierarchy-label">Package Hierarchies:</span>
          +<ul class="horizontal">
          +<li><a href="../../overview-tree.html">All Packages</a></li>
          +</ul>
          +</div>
          +<section class="hierarchy">
          +<h2 title="Class Hierarchy">Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          +<li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          +<li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          new file mode 100644
          index 0000000..9451dbe
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/package-use.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="use: package: musichub.util">
          +<meta name="generator" content="javadoc/PackageUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="package-use-page">
          +<script type="text/javascript">var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li>Class</li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Package musichub.util" class="title">Uses of Package<br>musichub.util</h1>
          +</div>
          +No usage of musichub.util</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          new file mode 100644
          index 0000000..3c19f26
          --- /dev/null
          +++ b/target/site/apidocs/overview-summary.html
          @@ -0,0 +1,27 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>spoteezer 0.1.0 API</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="index redirect">
          +<meta name="generator" content="javadoc/IndexRedirectWriter">
          +<link rel="canonical" href="index.html">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<script type="text/javascript">window.location.replace('index.html')</script>
          +<noscript>
          +<meta http-equiv="Refresh" content="0;index.html">
          +</noscript>
          +</head>
          +<body class="index-redirect-page">
          +<main role="main">
          +<noscript>
          +<p>JavaScript is disabled on your browser.</p>
          +</noscript>
          +<p><a href="index.html">index.html</a></p>
          +</main>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          new file mode 100644
          index 0000000..b80155e
          --- /dev/null
          +++ b/target/site/apidocs/overview-tree.html
          @@ -0,0 +1,120 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Class Hierarchy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="class tree">
          +<meta name="generator" content="javadoc/TreeWriter">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="tree-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li class="nav-bar-cell1-rev">Tree</li>
          +<li><a href="index-all.html">Index</a></li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 class="title">Hierarchy For All Packages</h1>
          +<span class="package-hierarchy-label">Package Hierarchies:</span>
          +<ul class="horizontal">
          +<li><a href="musichub/business/package-tree.html">musichub.business</a>, </li>
          +<li><a href="musichub/main/package-tree.html">musichub.main</a>, </li>
          +<li><a href="musichub/util/package-tree.html">musichub.util</a></li>
          +</ul>
          +</div>
          +<section class="hierarchy">
          +<h2 title="Class Hierarchy">Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          +</ul>
          +</li>
          +<li class="circle">musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          +<li class="circle">musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          +<li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          +<ul>
          +<li class="circle">musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</li>
          +<li class="circle">musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +<section class="hierarchy">
          +<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          +<ul>
          +<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          +<ul>
          +<li class="circle">musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          +<li class="circle">musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          +</ul>
          +</li>
          +</ul>
          +</li>
          +</ul>
          +</section>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/package-search-index.js b/target/site/apidocs/package-search-index.js
          new file mode 100644
          index 0000000..3098d0e
          --- /dev/null
          +++ b/target/site/apidocs/package-search-index.js
          @@ -0,0 +1 @@
          +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"musichub.business"},{"l":"musichub.main"},{"l":"musichub.util"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/resources/glass.png b/target/site/apidocs/resources/glass.png
          new file mode 100644
          index 0000000..a7f591f
          Binary files /dev/null and b/target/site/apidocs/resources/glass.png differ
          diff --git a/target/site/apidocs/resources/x.png b/target/site/apidocs/resources/x.png
          new file mode 100644
          index 0000000..30548a7
          Binary files /dev/null and b/target/site/apidocs/resources/x.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
          new file mode 100644
          index 0000000..34abd18
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
          new file mode 100644
          index 0000000..f058a93
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
          new file mode 100644
          index 0000000..2ce04c1
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
          new file mode 100644
          index 0000000..a90afb8
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
          new file mode 100644
          index 0000000..dbe091f
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
          new file mode 100644
          index 0000000..5dc3593
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
          new file mode 100644
          index 0000000..e723e17
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
          new file mode 100644
          index 0000000..1f5f497
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
          new file mode 100644
          index 0000000..618f5b0
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
          new file mode 100644
          index 0000000..ee5e33f
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
          new file mode 100644
          index 0000000..7e8ebc1
          Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png differ
          diff --git a/target/site/apidocs/script-dir/jquery-3.5.1.min.js b/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          new file mode 100644
          index 0000000..b061403
          --- /dev/null
          +++ b/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          @@ -0,0 +1,2 @@
          +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
          +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.css b/target/site/apidocs/script-dir/jquery-ui.min.css
          new file mode 100644
          index 0000000..6be72f5
          --- /dev/null
          +++ b/target/site/apidocs/script-dir/jquery-ui.min.css
          @@ -0,0 +1,7 @@
          +/*! jQuery UI - v1.12.1 - 2018-12-06
          +* http://jqueryui.com
          +* Includes: core.css, autocomplete.css, menu.css, theme.css
          +* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
          +* Copyright jQuery Foundation and other contributors; Licensed MIT */
          +
          +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.js b/target/site/apidocs/script-dir/jquery-ui.min.js
          new file mode 100644
          index 0000000..54d4beb
          --- /dev/null
          +++ b/target/site/apidocs/script-dir/jquery-ui.min.js
          @@ -0,0 +1,6 @@
          +/*! jQuery UI - v1.12.1 - 2018-12-06
          +* http://jqueryui.com
          +* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
          +* Copyright jQuery Foundation and other contributors; Licensed MIT */
          +
          +(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):l.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=l.test(i[1])?i[1]:"center",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=h+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());"right"===n.my[0]?D.left-=h:"center"===n.my[0]&&(D.left-=h/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete});
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.structure.min.css b/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          new file mode 100644
          index 0000000..e880892
          --- /dev/null
          +++ b/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          @@ -0,0 +1,5 @@
          +/*! jQuery UI - v1.12.1 - 2018-12-06
          +* http://jqueryui.com
          +* Copyright jQuery Foundation and other contributors; Licensed MIT */
          +
          +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script.js b/target/site/apidocs/script.js
          new file mode 100644
          index 0000000..864989c
          --- /dev/null
          +++ b/target/site/apidocs/script.js
          @@ -0,0 +1,132 @@
          +/*
          + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
          + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          + *
          + * This code is free software; you can redistribute it and/or modify it
          + * under the terms of the GNU General Public License version 2 only, as
          + * published by the Free Software Foundation.  Oracle designates this
          + * particular file as subject to the "Classpath" exception as provided
          + * by Oracle in the LICENSE file that accompanied this code.
          + *
          + * This code is distributed in the hope that it will be useful, but WITHOUT
          + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          + * version 2 for more details (a copy is included in the LICENSE file that
          + * accompanied this code).
          + *
          + * You should have received a copy of the GNU General Public License version
          + * 2 along with this work; if not, write to the Free Software Foundation,
          + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          + *
          + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          + * or visit www.oracle.com if you need additional information or have any
          + * questions.
          + */
          +
          +var moduleSearchIndex;
          +var packageSearchIndex;
          +var typeSearchIndex;
          +var memberSearchIndex;
          +var tagSearchIndex;
          +function loadScripts(doc, tag) {
          +    createElem(doc, tag, 'search.js');
          +
          +    createElem(doc, tag, 'module-search-index.js');
          +    createElem(doc, tag, 'package-search-index.js');
          +    createElem(doc, tag, 'type-search-index.js');
          +    createElem(doc, tag, 'member-search-index.js');
          +    createElem(doc, tag, 'tag-search-index.js');
          +}
          +
          +function createElem(doc, tag, path) {
          +    var script = doc.createElement(tag);
          +    var scriptElement = doc.getElementsByTagName(tag)[0];
          +    script.src = pathtoroot + path;
          +    scriptElement.parentNode.insertBefore(script, scriptElement);
          +}
          +
          +function show(tableId, selected, columns) {
          +    if (tableId !== selected) {
          +        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
          +            .forEach(function(elem) {
          +                elem.style.display = 'none';
          +            });
          +    }
          +    document.querySelectorAll('div.' + selected)
          +        .forEach(function(elem, index) {
          +            elem.style.display = '';
          +            var isEvenRow = index % (columns * 2) < columns;
          +            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
          +            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
          +        });
          +    updateTabs(tableId, selected);
          +}
          +
          +function updateTabs(tableId, selected) {
          +    document.querySelector('div#' + tableId +' .summary-table')
          +        .setAttribute('aria-labelledby', selected);
          +    document.querySelectorAll('button[id^="' + tableId + '"]')
          +        .forEach(function(tab, index) {
          +            if (selected === tab.id || (tableId === selected && index === 0)) {
          +                tab.className = activeTableTab;
          +                tab.setAttribute('aria-selected', true);
          +                tab.setAttribute('tabindex',0);
          +            } else {
          +                tab.className = tableTab;
          +                tab.setAttribute('aria-selected', false);
          +                tab.setAttribute('tabindex',-1);
          +            }
          +        });
          +}
          +
          +function switchTab(e) {
          +    var selected = document.querySelector('[aria-selected=true]');
          +    if (selected) {
          +        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
          +            // left or up arrow key pressed: move focus to previous tab
          +            selected.previousSibling.click();
          +            selected.previousSibling.focus();
          +            e.preventDefault();
          +        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
          +            // right or down arrow key pressed: move focus to next tab
          +            selected.nextSibling.click();
          +            selected.nextSibling.focus();
          +            e.preventDefault();
          +        }
          +    }
          +}
          +
          +var updateSearchResults = function() {};
          +
          +function indexFilesLoaded() {
          +    return moduleSearchIndex
          +        && packageSearchIndex
          +        && typeSearchIndex
          +        && memberSearchIndex
          +        && tagSearchIndex;
          +}
          +
          +// Workaround for scroll position not being included in browser history (8249133)
          +document.addEventListener("DOMContentLoaded", function(e) {
          +    var contentDiv = document.querySelector("div.flex-content");
          +    window.addEventListener("popstate", function(e) {
          +        if (e.state !== null) {
          +            contentDiv.scrollTop = e.state;
          +        }
          +    });
          +    window.addEventListener("hashchange", function(e) {
          +        history.replaceState(contentDiv.scrollTop, document.title);
          +    });
          +    contentDiv.addEventListener("scroll", function(e) {
          +        var timeoutID;
          +        if (!timeoutID) {
          +            timeoutID = setTimeout(function() {
          +                history.replaceState(contentDiv.scrollTop, document.title);
          +                timeoutID = null;
          +            }, 100);
          +        }
          +    });
          +    if (!location.hash) {
          +        history.replaceState(contentDiv.scrollTop, document.title);
          +    }
          +});
          diff --git a/target/site/apidocs/search.js b/target/site/apidocs/search.js
          new file mode 100644
          index 0000000..2c2ced0
          --- /dev/null
          +++ b/target/site/apidocs/search.js
          @@ -0,0 +1,354 @@
          +/*
          + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
          + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          + *
          + * This code is free software; you can redistribute it and/or modify it
          + * under the terms of the GNU General Public License version 2 only, as
          + * published by the Free Software Foundation.  Oracle designates this
          + * particular file as subject to the "Classpath" exception as provided
          + * by Oracle in the LICENSE file that accompanied this code.
          + *
          + * This code is distributed in the hope that it will be useful, but WITHOUT
          + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          + * version 2 for more details (a copy is included in the LICENSE file that
          + * accompanied this code).
          + *
          + * You should have received a copy of the GNU General Public License version
          + * 2 along with this work; if not, write to the Free Software Foundation,
          + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          + *
          + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          + * or visit www.oracle.com if you need additional information or have any
          + * questions.
          + */
          +
          +var noResult = {l: "No results found"};
          +var loading = {l: "Loading search index..."};
          +var catModules = "Modules";
          +var catPackages = "Packages";
          +var catTypes = "Classes and Interfaces";
          +var catMembers = "Members";
          +var catSearchTags = "Search Tags";
          +var highlight = "<span class=\"result-highlight\">$&</span>";
          +var searchPattern = "";
          +var fallbackPattern = "";
          +var RANKING_THRESHOLD = 2;
          +var NO_MATCH = 0xffff;
          +var MIN_RESULTS = 3;
          +var MAX_RESULTS = 500;
          +var UNNAMED = "<Unnamed>";
          +function escapeHtml(str) {
          +    return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
          +}
          +function getHighlightedText(item, matcher, fallbackMatcher) {
          +    var escapedItem = escapeHtml(item);
          +    var highlighted = escapedItem.replace(matcher, highlight);
          +    if (highlighted === escapedItem) {
          +        highlighted = escapedItem.replace(fallbackMatcher, highlight)
          +    }
          +    return highlighted;
          +}
          +function getURLPrefix(ui) {
          +    var urlPrefix="";
          +    var slash = "/";
          +    if (ui.item.category === catModules) {
          +        return ui.item.l + slash;
          +    } else if (ui.item.category === catPackages && ui.item.m) {
          +        return ui.item.m + slash;
          +    } else if (ui.item.category === catTypes || ui.item.category === catMembers) {
          +        if (ui.item.m) {
          +            urlPrefix = ui.item.m + slash;
          +        } else {
          +            $.each(packageSearchIndex, function(index, item) {
          +                if (item.m && ui.item.p === item.l) {
          +                    urlPrefix = item.m + slash;
          +                }
          +            });
          +        }
          +    }
          +    return urlPrefix;
          +}
          +function createSearchPattern(term) {
          +    var pattern = "";
          +    var isWordToken = false;
          +    term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) {
          +        if (index > 0) {
          +            // whitespace between identifiers is significant
          +            pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*";
          +        }
          +        var tokens = w.split(/(?=[A-Z,.()<>[\/])/);
          +        for (var i = 0; i < tokens.length; i++) {
          +            var s = tokens[i];
          +            if (s === "") {
          +                continue;
          +            }
          +            pattern += $.ui.autocomplete.escapeRegex(s);
          +            isWordToken =  /\w$/.test(s);
          +            if (isWordToken) {
          +                pattern += "([a-z0-9_$<>\\[\\]]*?)";
          +            }
          +        }
          +    });
          +    return pattern;
          +}
          +function createMatcher(pattern, flags) {
          +    var isCamelCase = /[A-Z]/.test(pattern);
          +    return new RegExp(pattern, flags + (isCamelCase ? "" : "i"));
          +}
          +var watermark = 'Search';
          +$(function() {
          +    var search = $("#search");
          +    var reset = $("#reset");
          +    search.val('');
          +    search.prop("disabled", false);
          +    reset.prop("disabled", false);
          +    search.val(watermark).addClass('watermark');
          +    search.blur(function() {
          +        if ($(this).val().length === 0) {
          +            $(this).val(watermark).addClass('watermark');
          +        }
          +    });
          +    search.on('click keydown paste', function() {
          +        if ($(this).val() === watermark) {
          +            $(this).val('').removeClass('watermark');
          +        }
          +    });
          +    reset.click(function() {
          +        search.val('').focus();
          +    });
          +    search.focus()[0].setSelectionRange(0, 0);
          +});
          +$.widget("custom.catcomplete", $.ui.autocomplete, {
          +    _create: function() {
          +        this._super();
          +        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
          +    },
          +    _renderMenu: function(ul, items) {
          +        var rMenu = this;
          +        var currentCategory = "";
          +        rMenu.menu.bindings = $();
          +        $.each(items, function(index, item) {
          +            var li;
          +            if (item.category && item.category !== currentCategory) {
          +                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
          +                currentCategory = item.category;
          +            }
          +            li = rMenu._renderItemData(ul, item);
          +            if (item.category) {
          +                li.attr("aria-label", item.category + " : " + item.l);
          +                li.attr("class", "result-item");
          +            } else {
          +                li.attr("aria-label", item.l);
          +                li.attr("class", "result-item");
          +            }
          +        });
          +    },
          +    _renderItem: function(ul, item) {
          +        var label = "";
          +        var matcher = createMatcher(escapeHtml(searchPattern), "g");
          +        var fallbackMatcher = new RegExp(fallbackPattern, "gi")
          +        if (item.category === catModules) {
          +            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          +        } else if (item.category === catPackages) {
          +            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          +        } else if (item.category === catTypes) {
          +            label = (item.p && item.p !== UNNAMED)
          +                    ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher)
          +                    : getHighlightedText(item.l, matcher, fallbackMatcher);
          +        } else if (item.category === catMembers) {
          +            label = (item.p && item.p !== UNNAMED)
          +                    ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher)
          +                    : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher);
          +        } else if (item.category === catSearchTags) {
          +            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          +        } else {
          +            label = item.l;
          +        }
          +        var li = $("<li/>").appendTo(ul);
          +        var div = $("<div/>").appendTo(li);
          +        if (item.category === catSearchTags && item.h) {
          +            if (item.d) {
          +                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span><br><span class=\"search-tag-desc-result\">"
          +                                + item.d + "</span><br>");
          +            } else {
          +                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span>");
          +            }
          +        } else {
          +            if (item.m) {
          +                div.html(item.m + "/" + label);
          +            } else {
          +                div.html(label);
          +            }
          +        }
          +        return li;
          +    }
          +});
          +function rankMatch(match, category) {
          +    if (!match) {
          +        return NO_MATCH;
          +    }
          +    var index = match.index;
          +    var input = match.input;
          +    var leftBoundaryMatch = 2;
          +    var periferalMatch = 0;
          +    // make sure match is anchored on a left word boundary
          +    if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) {
          +        leftBoundaryMatch = 0;
          +    } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) {
          +        leftBoundaryMatch = 1;
          +    }
          +    var matchEnd = index + match[0].length;
          +    var leftParen = input.indexOf("(");
          +    var endOfName = leftParen > -1 ? leftParen : input.length;
          +    // exclude peripheral matches
          +    if (category !== catModules && category !== catSearchTags) {
          +        var delim = category === catPackages ? "/" : ".";
          +        if (leftParen > -1 && leftParen < index) {
          +            periferalMatch += 2;
          +        } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) {
          +            periferalMatch += 2;
          +        }
          +    }
          +    var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match
          +    for (var i = 1; i < match.length; i++) {
          +        // lower ranking if parts of the name are missing
          +        if (match[i])
          +            delta += match[i].length;
          +    }
          +    if (category === catTypes) {
          +        // lower ranking if a type name contains unmatched camel-case parts
          +        if (/[A-Z]/.test(input.substring(matchEnd)))
          +            delta += 5;
          +        if (/[A-Z]/.test(input.substring(0, index)))
          +            delta += 5;
          +    }
          +    return leftBoundaryMatch + periferalMatch + (delta / 200);
          +
          +}
          +function doSearch(request, response) {
          +    var result = [];
          +    searchPattern = createSearchPattern(request.term);
          +    fallbackPattern = createSearchPattern(request.term.toLowerCase());
          +    if (searchPattern === "") {
          +        return this.close();
          +    }
          +    var camelCaseMatcher = createMatcher(searchPattern, "");
          +    var fallbackMatcher = new RegExp(fallbackPattern, "i");
          +
          +    function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) {
          +        if (indexArray) {
          +            var newResults = [];
          +            $.each(indexArray, function (i, item) {
          +                item.category = category;
          +                var ranking = rankMatch(matcher.exec(nameFunc(item)), category);
          +                if (ranking < RANKING_THRESHOLD) {
          +                    newResults.push({ranking: ranking, item: item});
          +                }
          +                return newResults.length <= MAX_RESULTS;
          +            });
          +            return newResults.sort(function(e1, e2) {
          +                return e1.ranking - e2.ranking;
          +            }).map(function(e) {
          +                return e.item;
          +            });
          +        }
          +        return [];
          +    }
          +    function searchIndex(indexArray, category, nameFunc) {
          +        var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc);
          +        result = result.concat(primaryResults);
          +        if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) {
          +            var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc);
          +            result = result.concat(secondaryResults.filter(function (item) {
          +                return primaryResults.indexOf(item) === -1;
          +            }));
          +        }
          +    }
          +
          +    searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; });
          +    searchIndex(packageSearchIndex, catPackages, function(item) {
          +        return (item.m && request.term.indexOf("/") > -1)
          +            ? (item.m + "/" + item.l) : item.l;
          +    });
          +    searchIndex(typeSearchIndex, catTypes, function(item) {
          +        return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l;
          +    });
          +    searchIndex(memberSearchIndex, catMembers, function(item) {
          +        return request.term.indexOf(".") > -1
          +            ? item.p + "." + item.c + "." + item.l : item.l;
          +    });
          +    searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; });
          +
          +    if (!indexFilesLoaded()) {
          +        updateSearchResults = function() {
          +            doSearch(request, response);
          +        }
          +        result.unshift(loading);
          +    } else {
          +        updateSearchResults = function() {};
          +    }
          +    response(result);
          +}
          +$(function() {
          +    $("#search").catcomplete({
          +        minLength: 1,
          +        delay: 300,
          +        source: doSearch,
          +        response: function(event, ui) {
          +            if (!ui.content.length) {
          +                ui.content.push(noResult);
          +            } else {
          +                $("#search").empty();
          +            }
          +        },
          +        autoFocus: true,
          +        focus: function(event, ui) {
          +            return false;
          +        },
          +        position: {
          +            collision: "flip"
          +        },
          +        select: function(event, ui) {
          +            if (ui.item.category) {
          +                var url = getURLPrefix(ui);
          +                if (ui.item.category === catModules) {
          +                    url += "module-summary.html";
          +                } else if (ui.item.category === catPackages) {
          +                    if (ui.item.u) {
          +                        url = ui.item.u;
          +                    } else {
          +                        url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
          +                    }
          +                } else if (ui.item.category === catTypes) {
          +                    if (ui.item.u) {
          +                        url = ui.item.u;
          +                    } else if (ui.item.p === UNNAMED) {
          +                        url += ui.item.l + ".html";
          +                    } else {
          +                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
          +                    }
          +                } else if (ui.item.category === catMembers) {
          +                    if (ui.item.p === UNNAMED) {
          +                        url += ui.item.c + ".html" + "#";
          +                    } else {
          +                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
          +                    }
          +                    if (ui.item.u) {
          +                        url += ui.item.u;
          +                    } else {
          +                        url += ui.item.l;
          +                    }
          +                } else if (ui.item.category === catSearchTags) {
          +                    url += ui.item.u;
          +                }
          +                if (top !== window) {
          +                    parent.classFrame.location = pathtoroot + url;
          +                } else {
          +                    window.location.href = pathtoroot + url;
          +                }
          +                $("#search").focus();
          +            }
          +        }
          +    });
          +});
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          new file mode 100644
          index 0000000..913a680
          --- /dev/null
          +++ b/target/site/apidocs/serialized-form.html
          @@ -0,0 +1,89 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<title>Serialized Form (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-27">
          +<meta name="description" content="serialized forms">
          +<meta name="generator" content="javadoc/SerializedFormWriterImpl">
          +<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="script.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="serialized-form-page">
          +<script type="text/javascript">var pathtoroot = "./";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="index.html">Overview</a></li>
          +<li>Package</li>
          +<li>Class</li>
          +<li>Use</li>
          +<li><a href="overview-tree.html">Tree</a></li>
          +<li><a href="index-all.html">Index</a></li>
          +<li><a href="help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Serialized Form" class="title">Serialized Form</h1>
          +</div>
          +<ul class="block-list">
          +<li>
          +<section class="serialized-package-container">
          +<h2 title="Package">Package&nbsp;musichub.business</h2>
          +<ul class="block-list">
          +<li>
          +<section class="serialized-class-details" id="musichub.business.NoAlbumFoundException">
          +<h3>Class <a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">musichub.business.NoAlbumFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          +</section>
          +</li>
          +<li>
          +<section class="serialized-class-details" id="musichub.business.NoElementFoundException">
          +<h3>Class <a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">musichub.business.NoElementFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          +</section>
          +</li>
          +<li>
          +<section class="serialized-class-details" id="musichub.business.NoPlayListFoundException">
          +<h3>Class <a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">musichub.business.NoPlayListFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/stylesheet.css b/target/site/apidocs/stylesheet.css
          new file mode 100644
          index 0000000..932e56c
          --- /dev/null
          +++ b/target/site/apidocs/stylesheet.css
          @@ -0,0 +1,827 @@
          +/*
          + * Javadoc style sheet
          + */
          +
          +@import url('resources/fonts/dejavu.css');
          +
          +/*
          + * Styles for individual HTML elements.
          + *
          + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
          + * HTML element throughout the page.
          + */
          +
          +body {
          +    background-color:#ffffff;
          +    color:#353833;
          +    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
          +    font-size:14px;
          +    margin:0;
          +    padding:0;
          +    height:100%;
          +    width:100%;
          +}
          +iframe {
          +    margin:0;
          +    padding:0;
          +    height:100%;
          +    width:100%;
          +    overflow-y:scroll;
          +    border:none;
          +}
          +a:link, a:visited {
          +    text-decoration:none;
          +    color:#4A6782;
          +}
          +a[href]:hover, a[href]:focus {
          +    text-decoration:none;
          +    color:#bb7a2a;
          +}
          +a[name] {
          +    color:#353833;
          +}
          +pre {
          +    font-family:'DejaVu Sans Mono', monospace;
          +    font-size:14px;
          +}
          +h1 {
          +    font-size:20px;
          +}
          +h2 {
          +    font-size:18px;
          +}
          +h3 {
          +    font-size:16px;
          +}
          +h4 {
          +    font-size:13px;
          +}
          +h5 {
          +    font-size:12px;
          +}
          +h6 {
          +    font-size:11px;
          +}
          +ul {
          +    list-style-type:disc;
          +}
          +code, tt {
          +    font-family:'DejaVu Sans Mono', monospace;
          +    font-size:14px;
          +    padding-top:4px;
          +    margin-top:8px;
          +    line-height:1.4em;
          +}
          +dt code {
          +    font-family:'DejaVu Sans Mono', monospace;
          +    font-size:14px;
          +    padding-top:4px;
          +}
          +.summary-table dt code {
          +    font-family:'DejaVu Sans Mono', monospace;
          +    font-size:14px;
          +    vertical-align:top;
          +    padding-top:4px;
          +}
          +sup {
          +    font-size:8px;
          +}
          +button {
          +    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          +    font-size: 14px;
          +}
          +/*
          + * Styles for HTML generated by javadoc.
          + *
          + * These are style classes that are used by the standard doclet to generate HTML documentation.
          + */
          +
          +/*
          + * Styles for document title and copyright.
          + */
          +.clear {
          +    clear:both;
          +    height:0;
          +    overflow:hidden;
          +}
          +.about-language {
          +    float:right;
          +    padding:0 21px 8px 8px;
          +    font-size:11px;
          +    margin-top:-9px;
          +    height:2.9em;
          +}
          +.legal-copy {
          +    margin-left:.5em;
          +}
          +.tab {
          +    background-color:#0066FF;
          +    color:#ffffff;
          +    padding:8px;
          +    width:5em;
          +    font-weight:bold;
          +}
          +/*
          + * Styles for navigation bar.
          + */
          +@media screen {
          +    .flex-box {
          +        position:fixed;
          +        display:flex;
          +        flex-direction:column;
          +        height: 100%;
          +        width: 100%;
          +    }
          +    .flex-header {
          +        flex: 0 0 auto;
          +    }
          +    .flex-content {
          +        flex: 1 1 auto;
          +        overflow-y: auto;
          +    }
          +}
          +.top-nav {
          +    background-color:#4D7A97;
          +    color:#FFFFFF;
          +    float:left;
          +    padding:0;
          +    width:100%;
          +    clear:right;
          +    min-height:2.8em;
          +    padding-top:10px;
          +    overflow:hidden;
          +    font-size:12px;
          +}
          +.sub-nav {
          +    background-color:#dee3e9;
          +    float:left;
          +    width:100%;
          +    overflow:hidden;
          +    font-size:12px;
          +}
          +.sub-nav div {
          +    clear:left;
          +    float:left;
          +    padding:0 0 5px 6px;
          +    text-transform:uppercase;
          +}
          +.sub-nav .nav-list {
          +    padding-top:5px;
          +}
          +ul.nav-list {
          +    display:block;
          +    margin:0 25px 0 0;
          +    padding:0;
          +}
          +ul.sub-nav-list {
          +    float:left;
          +    margin:0 25px 0 0;
          +    padding:0;
          +}
          +ul.nav-list li {
          +    list-style:none;
          +    float:left;
          +    padding: 5px 6px;
          +    text-transform:uppercase;
          +}
          +.sub-nav .nav-list-search {
          +    float:right;
          +    margin:0 0 0 0;
          +    padding:5px 6px;
          +    clear:none;
          +}
          +.nav-list-search label {
          +    position:relative;
          +    right:-16px;
          +}
          +ul.sub-nav-list li {
          +    list-style:none;
          +    float:left;
          +    padding-top:10px;
          +}
          +.top-nav a:link, .top-nav a:active, .top-nav a:visited {
          +    color:#FFFFFF;
          +    text-decoration:none;
          +    text-transform:uppercase;
          +}
          +.top-nav a:hover {
          +    text-decoration:none;
          +    color:#bb7a2a;
          +    text-transform:uppercase;
          +}
          +.nav-bar-cell1-rev {
          +    background-color:#F8981D;
          +    color:#253441;
          +    margin: auto 5px;
          +}
          +.skip-nav {
          +    position:absolute;
          +    top:auto;
          +    left:-9999px;
          +    overflow:hidden;
          +}
          +/*
          + * Hide navigation links and search box in print layout
          + */
          +@media print {
          +    ul.nav-list, div.sub-nav  {
          +        display:none;
          +    }
          +}
          +/*
          + * Styles for page header and footer.
          + */
          +.title {
          +    color:#2c4557;
          +    margin:10px 0;
          +}
          +.sub-title {
          +    margin:5px 0 0 0;
          +}
          +.header ul {
          +    margin:0 0 15px 0;
          +    padding:0;
          +}
          +.header ul li, .footer ul li {
          +    list-style:none;
          +    font-size:13px;
          +}
          +/*
          + * Styles for headings.
          + */
          +body.class-declaration-page .summary h2,
          +body.class-declaration-page .details h2,
          +body.class-use-page  h2,
          +body.module-declaration-page  .block-list h2 {
          +    font-style: italic;
          +    padding:0;
          +    margin:15px 0;
          +}
          +body.class-declaration-page .summary h3,
          +body.class-declaration-page .details h3,
          +body.class-declaration-page .summary .inherited-list h2 {
          +    background-color:#dee3e9;
          +    border:1px solid #d0d9e0;
          +    margin:0 0 6px -8px;
          +    padding:7px 5px;
          +}
          +/*
          + * Styles for page layout containers.
          + */
          +main {
          +    clear:both;
          +    padding:10px 20px;
          +    position:relative;
          +}
          +dl.notes > dt {
          +    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          +    font-size:12px;
          +    font-weight:bold;
          +    margin:10px 0 0 0;
          +    color:#4E4E4E;
          +}
          +dl.notes > dd {
          +    margin:5px 0 10px 0;
          +    font-size:14px;
          +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          +}
          +dl.name-value > dt {
          +    margin-left:1px;
          +    font-size:1.1em;
          +    display:inline;
          +    font-weight:bold;
          +}
          +dl.name-value > dd {
          +    margin:0 0 0 1px;
          +    font-size:1.1em;
          +    display:inline;
          +}
          +/*
          + * Styles for lists.
          + */
          +li.circle {
          +    list-style:circle;
          +}
          +ul.horizontal li {
          +    display:inline;
          +    font-size:0.9em;
          +}
          +div.inheritance {
          +    margin:0;
          +    padding:0;
          +}
          +div.inheritance div.inheritance {
          +    margin-left:2em;
          +}
          +ul.block-list,
          +ul.details-list,
          +ul.member-list,
          +ul.summary-list {
          +    margin:10px 0 10px 0;
          +    padding:0;
          +}
          +ul.block-list > li,
          +ul.details-list > li,
          +ul.member-list > li,
          +ul.summary-list > li {
          +    list-style:none;
          +    margin-bottom:15px;
          +    line-height:1.4;
          +}
          +.summary-table dl, .summary-table dl dt, .summary-table dl dd {
          +    margin-top:0;
          +    margin-bottom:1px;
          +}
          +/*
          + * Styles for tables.
          + */
          +.summary-table {
          +    width:100%;
          +    border-spacing:0;
          +    border-left:1px solid #EEE;
          +    border-right:1px solid #EEE;
          +    border-bottom:1px solid #EEE;
          +}
          +.summary-table {
          +    padding:0;
          +}
          +.caption {
          +    position:relative;
          +    text-align:left;
          +    background-repeat:no-repeat;
          +    color:#253441;
          +    font-weight:bold;
          +    clear:none;
          +    overflow:hidden;
          +    padding:0px;
          +    padding-top:10px;
          +    padding-left:1px;
          +    margin:0px;
          +    white-space:pre;
          +}
          +.caption a:link, .caption a:visited {
          +    color:#1f389c;
          +}
          +.caption a:hover,
          +.caption a:active {
          +    color:#FFFFFF;
          +}
          +.caption span {
          +    white-space:nowrap;
          +    padding-top:5px;
          +    padding-left:12px;
          +    padding-right:12px;
          +    padding-bottom:7px;
          +    display:inline-block;
          +    float:left;
          +    background-color:#F8981D;
          +    border: none;
          +    height:16px;
          +}
          +
          +div.table-tabs > button {
          +   border: none;
          +   cursor: pointer;
          +   padding: 5px 12px 7px 12px;
          +   font-weight: bold;
          +   margin-right: 3px;
          +}
          +div.table-tabs > button.active-table-tab {
          +   background: #F8981D;
          +   color: #253441;
          +}
          +div.table-tabs > button.table-tab {
          +   background: #4D7A97;
          +   color: #FFFFFF;
          +}
          +.two-column-summary {
          +    display: grid;
          +    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          +}
          +.three-column-summary {
          +    display: grid;
          +    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
          +}
          +.four-column-summary {
          +    display: grid;
          +    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
          +}
          +@media screen and (max-width: 600px) {
          +    .two-column-summary {
          +        display: grid;
          +        grid-template-columns: 1fr;
          +    }
          +}
          +@media screen and (max-width: 800px) {
          +    .three-column-summary {
          +        display: grid;
          +        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
          +    }
          +    .three-column-summary .col-last {
          +        grid-column-end: span 2;
          +    }
          +}
          +@media screen and (max-width: 1000px) {
          +    .four-column-summary {
          +        display: grid;
          +        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          +    }
          +}
          +.summary-table > div {
          +    text-align:left;
          +    padding: 8px 3px 3px 7px;
          +}
          +.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name {
          +    vertical-align:top;
          +    padding-right:0;
          +    padding-top:8px;
          +    padding-bottom:3px;
          +}
          +.table-header {
          +    background:#dee3e9;
          +    font-weight: bold;
          +}
          +.col-first, .col-first {
          +    font-size:13px;
          +}
          +.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last {
          +    font-size:13px;
          +}
          +.col-first, .col-second, .col-constructor-name {
          +    vertical-align:top;
          +    overflow: auto;
          +}
          +.col-last {
          +    white-space:normal;
          +}
          +.col-first a:link, .col-first a:visited,
          +.col-second a:link, .col-second a:visited,
          +.col-first a:link, .col-first a:visited,
          +.col-second a:link, .col-second a:visited,
          +.col-constructor-name a:link, .col-constructor-name a:visited,
          +.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited,
          +.constant-values-container a:link, .constant-values-container a:visited,
          +.all-classes-container a:link, .all-classes-container a:visited,
          +.all-packages-container a:link, .all-packages-container a:visited {
          +    font-weight:bold;
          +}
          +.table-sub-heading-color {
          +    background-color:#EEEEFF;
          +}
          +.even-row-color, .even-row-color .table-header {
          +    background-color:#FFFFFF;
          +}
          +.odd-row-color, .odd-row-color .table-header {
          +    background-color:#EEEEEF;
          +}
          +/*
          + * Styles for contents.
          + */
          +.deprecated-content {
          +    margin:0;
          +    padding:10px 0;
          +}
          +div.block {
          +    font-size:14px;
          +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          +}
          +.col-last div {
          +    padding-top:0;
          +}
          +.col-last a {
          +    padding-bottom:3px;
          +}
          +.module-signature,
          +.package-signature,
          +.type-signature,
          +.member-signature {
          +    font-family:'DejaVu Sans Mono', monospace;
          +    font-size:14px;
          +    margin:14px 0;
          +    white-space: pre-wrap;
          +}
          +.module-signature,
          +.package-signature,
          +.type-signature {
          +    margin-top: 0;
          +}
          +.member-signature .type-parameters-long,
          +.member-signature .parameters,
          +.member-signature .exceptions {
          +    display: inline-block;
          +    vertical-align: top;
          +    white-space: pre;
          +}
          +.member-signature .type-parameters {
          +    white-space: normal;
          +}
          +/*
          + * Styles for formatting effect.
          + */
          +.source-line-no {
          +    color:green;
          +    padding:0 30px 0 0;
          +}
          +h1.hidden {
          +    visibility:hidden;
          +    overflow:hidden;
          +    font-size:10px;
          +}
          +.block {
          +    display:block;
          +    margin:0 10px 5px 0;
          +    color:#474747;
          +}
          +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
          +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
          +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link {
          +    font-weight:bold;
          +}
          +.deprecation-comment, .help-footnote, .interface-name {
          +    font-style:italic;
          +}
          +.deprecation-block {
          +    font-size:14px;
          +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          +    border-style:solid;
          +    border-width:thin;
          +    border-radius:10px;
          +    padding:10px;
          +    margin-bottom:10px;
          +    margin-right:10px;
          +    display:inline-block;
          +}
          +div.block div.deprecation-comment, div.block div.block span.emphasized-phrase,
          +div.block div.block span.interface-name {
          +    font-style:normal;
          +}
          +/*
          + * Styles specific to HTML5 elements.
          + */
          +main, nav, header, footer, section {
          +    display:block;
          +}
          +/*
          + * Styles for javadoc search.
          + */
          +.ui-autocomplete-category {
          +    font-weight:bold;
          +    font-size:15px;
          +    padding:7px 0 7px 3px;
          +    background-color:#4D7A97;
          +    color:#FFFFFF;
          +}
          +.result-item {
          +    font-size:13px;
          +}
          +.ui-autocomplete {
          +    max-height:85%;
          +    max-width:65%;
          +    overflow-y:scroll;
          +    overflow-x:scroll;
          +    white-space:nowrap;
          +    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
          +}
          +ul.ui-autocomplete {
          +    position:fixed;
          +    z-index:999999;
          +}
          +ul.ui-autocomplete  li {
          +    float:left;
          +    clear:both;
          +    width:100%;
          +}
          +.result-highlight {
          +    font-weight:bold;
          +}
          +#search {
          +    background-image:url('resources/glass.png');
          +    background-size:13px;
          +    background-repeat:no-repeat;
          +    background-position:2px 3px;
          +    padding-left:20px;
          +    position:relative;
          +    right:-18px;
          +    width:400px;
          +}
          +#reset {
          +    background-color: rgb(255,255,255);
          +    background-image:url('resources/x.png');
          +    background-position:center;
          +    background-repeat:no-repeat;
          +    background-size:12px;
          +    border:0 none;
          +    width:16px;
          +    height:16px;
          +    position:relative;
          +    left:-4px;
          +    top:-4px;
          +    font-size:0px;
          +}
          +.watermark {
          +    color:#545454;
          +}
          +.search-tag-desc-result {
          +    font-style:italic;
          +    font-size:11px;
          +}
          +.search-tag-holder-result {
          +    font-style:italic;
          +    font-size:12px;
          +}
          +.search-tag-result:target {
          +    background-color:yellow;
          +}
          +.module-graph span {
          +    display:none;
          +    position:absolute;
          +}
          +.module-graph:hover span {
          +    display:block;
          +    margin: -100px 0 0 100px;
          +    z-index: 1;
          +}
          +.inherited-list {
          +    margin: 10px 0 10px 0;
          +}
          +section.description {
          +    line-height: 1.4;
          +}
          +.summary section[class$="-summary"], .details section[class$="-details"],
          +.class-uses .detail, .serialized-class-details {
          +    padding: 0px 20px 5px 10px;
          +    border: 1px solid #ededed;
          +    background-color: #f8f8f8;
          +}
          +.inherited-list, section[class$="-details"] .detail {
          +    padding:0 0 5px 8px;
          +    background-color:#ffffff;
          +    border:none;
          +}
          +.vertical-separator {
          +    padding: 0 5px;
          +}
          +ul.help-section-list {
          +    margin: 0;
          +}
          +/*
          + * Indicator icon for external links.
          + */
          +main a[href*="://"]::after {
          +    content:"";
          +    display:inline-block;
          +    background-image:url('data:image/svg+xml; utf8, \
          +      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          +        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          +        132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\
          +      </svg>');
          +    background-size:100% 100%;
          +    width:7px;
          +    height:7px;
          +    margin-left:2px;
          +    margin-bottom:4px;
          +}
          +main a[href*="://"]:hover::after,
          +main a[href*="://"]:focus::after {
          +    background-image:url('data:image/svg+xml; utf8, \
          +      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          +        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          +        132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\
          +      </svg>');
          +}
          +
          +/*
          + * Styles for user-provided tables.
          + *
          + * borderless:
          + *      No borders, vertical margins, styled caption.
          + *      This style is provided for use with existing doc comments.
          + *      In general, borderless tables should not be used for layout purposes.
          + *
          + * plain:
          + *      Plain borders around table and cells, vertical margins, styled caption.
          + *      Best for small tables or for complex tables for tables with cells that span
          + *      rows and columns, when the "striped" style does not work well.
          + *
          + * striped:
          + *      Borders around the table and vertical borders between cells, striped rows,
          + *      vertical margins, styled caption.
          + *      Best for tables that have a header row, and a body containing a series of simple rows.
          + */
          +
          +table.borderless,
          +table.plain,
          +table.striped {
          +    margin-top: 10px;
          +    margin-bottom: 10px;
          +}
          +table.borderless > caption,
          +table.plain > caption,
          +table.striped > caption {
          +    font-weight: bold;
          +    font-size: smaller;
          +}
          +table.borderless th, table.borderless td,
          +table.plain th, table.plain td,
          +table.striped th, table.striped td {
          +    padding: 2px 5px;
          +}
          +table.borderless,
          +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
          +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
          +    border: none;
          +}
          +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
          +    background-color: transparent;
          +}
          +table.plain {
          +    border-collapse: collapse;
          +    border: 1px solid black;
          +}
          +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
          +    background-color: transparent;
          +}
          +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
          +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
          +    border: 1px solid black;
          +}
          +table.striped {
          +    border-collapse: collapse;
          +    border: 1px solid black;
          +}
          +table.striped > thead {
          +    background-color: #E3E3E3;
          +}
          +table.striped > thead > tr > th, table.striped > thead > tr > td {
          +    border: 1px solid black;
          +}
          +table.striped > tbody > tr:nth-child(even) {
          +    background-color: #EEE
          +}
          +table.striped > tbody > tr:nth-child(odd) {
          +    background-color: #FFF
          +}
          +table.striped > tbody > tr > th, table.striped > tbody > tr > td {
          +    border-left: 1px solid black;
          +    border-right: 1px solid black;
          +}
          +table.striped > tbody > tr > th {
          +    font-weight: normal;
          +}
          +/**
          + * Tweak font sizes and paddings for small screens.
          + */
          +@media screen and (max-width: 1050px) {
          +    #search {
          +        width: 300px;
          +    }
          +}
          +@media screen and (max-width: 800px) {
          +    #search {
          +        width: 200px;
          +    }
          +    .top-nav,
          +    .bottom-nav {
          +        font-size: 11px;
          +        padding-top: 6px;
          +    }
          +    .sub-nav {
          +        font-size: 11px;
          +    }
          +    .about-language {
          +        padding-right: 16px;
          +    }
          +    ul.nav-list li,
          +    .sub-nav .nav-list-search {
          +        padding: 6px;
          +    }
          +    ul.sub-nav-list li {
          +        padding-top: 5px;
          +    }
          +    main {
          +        padding: 10px;
          +    }
          +    .summary section[class$="-summary"], .details section[class$="-details"],
          +    .class-uses .detail, .serialized-class-details {
          +        padding: 0 8px 5px 8px;
          +    }
          +    body {
          +        -webkit-text-size-adjust: none;
          +    }
          +}
          +@media screen and (max-width: 500px) {
          +    #search {
          +        width: 150px;
          +    }
          +    .top-nav,
          +    .bottom-nav {
          +        font-size: 10px;
          +    }
          +    .sub-nav {
          +        font-size: 10px;
          +    }
          +    .about-language {
          +        font-size: 10px;
          +        padding-right: 12px;
          +    }
          +}
          diff --git a/target/site/apidocs/tag-search-index.js b/target/site/apidocs/tag-search-index.js
          new file mode 100644
          index 0000000..f38b3cb
          --- /dev/null
          +++ b/target/site/apidocs/tag-search-index.js
          @@ -0,0 +1 @@
          +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          new file mode 100644
          index 0000000..26dac6f
          --- /dev/null
          +++ b/target/site/apidocs/type-search-index.js
          @@ -0,0 +1 @@
          +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/LogHandler.html b/target/site/jacoco/musichub.util/LogHandler.html
          new file mode 100644
          index 0000000..b1e3f2b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/LogHandler.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LogHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">LogHandler</span></div><h1>LogHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 46</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">11</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="LogHandler.java.html#L38" class="el_method">write(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="LogHandler.java.html#L58" class="el_method">read()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html#L25" class="el_method">LogHandler()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="32" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/LogHandler.java.html b/target/site/jacoco/musichub.util/LogHandler.java.html
          new file mode 100644
          index 0000000..020c8f3
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/LogHandler.java.html
          @@ -0,0 +1,69 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LogHandler.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">LogHandler.java</span></div><h1>LogHandler.java</h1><pre class="source lang-java linenums">package musichub.util;
          +
          +import java.io.IOException;
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.StandardOpenOption;
          +import java.sql.Timestamp;
          +
          +/**
          + * Class offering a log writing method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class LogHandler {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Aimeric ADJUTOR
          +     */
          +
          +<span class="fc" id="L25">    public LogHandler() {</span>
          +<span class="fc" id="L26">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +    }
          +
          +    /**
          +     * Method that writes a log message to spoteezer.log
          +     *
          +     * @param msg  the message to write
          +     * @param type the type of log
          +     * @throws IOException if the file's not there
          +     */
          +    public static void write(String msg, String type) throws IOException {
          +
          +<span class="fc" id="L38">        Timestamp timestamp = new Timestamp(System.currentTimeMillis());</span>
          +
          +        //Create the log using the given message
          +<span class="fc" id="L41">        String logMsg = &quot;\n[&quot; + timestamp + &quot;] &quot; + type + &quot;: &quot; + msg;</span>
          +
          +        // Define the file name of the file
          +<span class="fc" id="L44">        Path fileName = Path.of(&quot;log/spoteezer.log&quot;);</span>
          +
          +        // Write into the file
          +<span class="fc" id="L47">        Files.writeString(fileName, logMsg, StandardOpenOption.APPEND);</span>
          +
          +
          +<span class="fc" id="L50">    }</span>
          +
          +    /**
          +     * Method that prints the content of spoteezer.log
          +     *
          +     * @throws IOException if the file's not there
          +     */
          +    public static void read() throws IOException {
          +<span class="fc" id="L58">        Path fileName = Path.of(&quot;log/spoteezer.log&quot;);</span>
          +
          +        // Read the content of the file
          +<span class="fc" id="L61">        String file_content = Files.readString(fileName);</span>
          +
          +        // Print the content inside the file
          +<span class="fc" id="L64">        System.out.println(&quot;\n&quot; + file_content + &quot;\n&quot;);</span>
          +
          +<span class="fc" id="L66">    }</span>
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/PathValidation.html b/target/site/jacoco/musichub.util/PathValidation.html
          new file mode 100644
          index 0000000..940af0e
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/PathValidation.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L35" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L23" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/PathValidation.java.html b/target/site/jacoco/musichub.util/PathValidation.java.html
          new file mode 100644
          index 0000000..7cb31d4
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/PathValidation.java.html
          @@ -0,0 +1,40 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">PathValidation.java</span></div><h1>PathValidation.java</h1><pre class="source lang-java linenums">package musichub.util;
          +
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.Paths;
          +
          +/**
          + * Class offering a path validation method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class PathValidation {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Aimeric ADJUTOR
          +     */
          +
          +<span class="fc" id="L23">    public PathValidation() {</span>
          +<span class="fc" id="L24">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +    }
          +
          +    /**
          +     * Method that checks the validity of a given path
          +     *
          +     * @param inputPath the path given by the user
          +     * @return a boolean
          +     */
          +
          +    public static boolean isPathValid(String inputPath) {
          +<span class="fc" id="L35">        Path path = Paths.get(inputPath);</span>
          +<span class="fc" id="L36">        return Files.exists(path);</span>
          +    }
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From f5117515ab26658e93d9efc2d99651c332840782 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 13:24:40 +0200
          Subject: Added an extension check for songs and covered it with a test.
          
          ---
           Song/Side_To_Side.mp3                               | Bin 0 -> 7460864 bytes
           log/spoteezer.log                                   |  10 ++--------
           src/main/java/musichub/main/Main.java               |   2 +-
           src/main/java/musichub/util/PathValidation.java     |  14 ++++++++++++--
           src/test/java/musichub/util/PathValidationTest.java |   7 ++++---
           target/classes/musichub/main/Main.class             | Bin 10287 -> 10315 bytes
           target/jacoco.exec                                  | Bin 15165 -> 15166 bytes
           target/site/apidocs/allclasses-index.html           |   2 +-
           target/site/apidocs/allpackages-index.html          |   2 +-
           target/site/apidocs/help-doc.html                   |   2 +-
           target/site/apidocs/index-all.html                  |   4 ++--
           target/site/apidocs/index.html                      |   2 +-
           target/site/apidocs/musichub/business/Album.html    |   2 +-
           .../site/apidocs/musichub/business/AudioBook.html   |   2 +-
           .../apidocs/musichub/business/AudioElement.html     |   2 +-
           target/site/apidocs/musichub/business/Category.html |   2 +-
           target/site/apidocs/musichub/business/Genre.html    |   2 +-
           target/site/apidocs/musichub/business/Language.html |   2 +-
           target/site/apidocs/musichub/business/MusicHub.html |   2 +-
           .../musichub/business/NoAlbumFoundException.html    |   2 +-
           .../musichub/business/NoElementFoundException.html  |   2 +-
           .../musichub/business/NoPlayListFoundException.html |   2 +-
           target/site/apidocs/musichub/business/PlayList.html |   2 +-
           target/site/apidocs/musichub/business/Song.html     |   2 +-
           .../apidocs/musichub/business/class-use/Album.html  |   2 +-
           .../musichub/business/class-use/AudioBook.html      |   2 +-
           .../musichub/business/class-use/AudioElement.html   |   2 +-
           .../musichub/business/class-use/Category.html       |   2 +-
           .../apidocs/musichub/business/class-use/Genre.html  |   2 +-
           .../musichub/business/class-use/Language.html       |   2 +-
           .../musichub/business/class-use/MusicHub.html       |   2 +-
           .../business/class-use/NoAlbumFoundException.html   |   2 +-
           .../business/class-use/NoElementFoundException.html |   2 +-
           .../class-use/NoPlayListFoundException.html         |   2 +-
           .../musichub/business/class-use/PlayList.html       |   2 +-
           .../apidocs/musichub/business/class-use/Song.html   |   2 +-
           .../apidocs/musichub/business/package-summary.html  |   2 +-
           .../apidocs/musichub/business/package-tree.html     |   2 +-
           .../site/apidocs/musichub/business/package-use.html |   2 +-
           target/site/apidocs/musichub/main/Main.html         |   2 +-
           .../site/apidocs/musichub/main/class-use/Main.html  |   2 +-
           .../site/apidocs/musichub/main/package-summary.html |   2 +-
           target/site/apidocs/musichub/main/package-tree.html |   2 +-
           target/site/apidocs/musichub/main/package-use.html  |   2 +-
           target/site/apidocs/musichub/util/LogHandler.html   |   2 +-
           .../site/apidocs/musichub/util/PathValidation.html  |   6 +++---
           target/site/apidocs/musichub/util/XMLHandler.html   |   2 +-
           .../apidocs/musichub/util/class-use/LogHandler.html |   2 +-
           .../musichub/util/class-use/PathValidation.html     |   2 +-
           .../apidocs/musichub/util/class-use/XMLHandler.html |   2 +-
           .../site/apidocs/musichub/util/package-summary.html |   2 +-
           target/site/apidocs/musichub/util/package-tree.html |   2 +-
           target/site/apidocs/musichub/util/package-use.html  |   2 +-
           target/site/apidocs/overview-summary.html           |   2 +-
           target/site/apidocs/overview-tree.html              |   2 +-
           target/site/apidocs/serialized-form.html            |   2 +-
           target/site/jacoco/index.html                       |   2 +-
           target/site/jacoco/jacoco-sessions.html             |   2 +-
           target/site/jacoco/jacoco.csv                       |   2 +-
           target/site/jacoco/jacoco.xml                       |   2 +-
           target/site/jacoco/musichub.main/Main.java.html     |   2 +-
           .../site/jacoco/musichub.util/PathValidation.html   |   2 +-
           .../jacoco/musichub.util/PathValidation.java.html   |  16 +++++++++++++---
           target/site/jacoco/musichub.util/index.html         |   2 +-
           target/site/jacoco/musichub.util/index.source.html  |   2 +-
           65 files changed, 92 insertions(+), 77 deletions(-)
           create mode 100644 Song/Side_To_Side.mp3
          
          diff --git a/Song/Side_To_Side.mp3 b/Song/Side_To_Side.mp3
          new file mode 100644
          index 0000000..3723a43
          Binary files /dev/null and b/Song/Side_To_Side.mp3 differ
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index b1ecf97..b4799c9 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,9 +1,3 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
          -[2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
          -[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          -[2021-06-27 12:21:37.507] TEST: JUnit test
          -[2021-06-27 12:26:02.741] TEST: JUnit test
          -[2021-06-27 12:28:05.542] TEST: JUnit test
          -[2021-06-27 12:28:41.186] TEST: JUnit test
          -[2021-06-27 12:31:42.777] TEST: JUnit test
          -[2021-06-27 12:40:20.609] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 13:23:02.181] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          +[2021-06-27 13:23:40.286] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index e7ca721..1fa5c52 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -94,7 +94,7 @@ public class Main {
                               System.out.println("Song content: ");
                               String content = scan.nextLine();
                               if (!isPathValid(content)) {
          -                        String logMsg = "The music file was not found with the path you've provided.";
          +                        String logMsg = "The music file was not found with the path you've provided or the extension is not .wav";
                                   LogHandler.write(logMsg, "WARNING"); //write a line in the log file
                                   System.out.println(logMsg + "\nType h for available commands");
                                   choice = scan.nextLine();
          diff --git a/src/main/java/musichub/util/PathValidation.java b/src/main/java/musichub/util/PathValidation.java
          index df11388..ea00c24 100644
          --- a/src/main/java/musichub/util/PathValidation.java
          +++ b/src/main/java/musichub/util/PathValidation.java
          @@ -25,15 +25,25 @@ public final class PathValidation {
               }
           
               /**
          -     * Method that checks the validity of a given path
          +     * Method that checks the validity of a given path and file.
                *
                * @param inputPath the path given by the user
                * @return a boolean
                */
           
               public static boolean isPathValid(String inputPath) {
          +        boolean isExtensionValid = false;
          +
          +        int index = inputPath.lastIndexOf('.');
          +        if (index > 0) {
          +            String extension = inputPath.substring(index + 1);
          +            if (extension.equals("wav")) {
          +                isExtensionValid = true;
          +            }
          +        }
          +
                   Path path = Paths.get(inputPath);
          -        return Files.exists(path);
          +        return (Files.exists(path) & isExtensionValid);
               }
           
           }
          \ No newline at end of file
          diff --git a/src/test/java/musichub/util/PathValidationTest.java b/src/test/java/musichub/util/PathValidationTest.java
          index b0e0c38..f087ac1 100644
          --- a/src/test/java/musichub/util/PathValidationTest.java
          +++ b/src/test/java/musichub/util/PathValidationTest.java
          @@ -19,8 +19,9 @@ public class PathValidationTest {
           
               @Test
               void testIsPathValid() {
          -        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          -        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          -        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          +        assertTrue(isPathValid("Song/Side_To_Side.wav")); //right path, right file, right extension
          +        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path, right file, right extension
          +        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //right path, right file, wrong extension
          +        assertFalse(isPathValid("Song/Side_To_Sidewav")); //right path, right file, wrong extension (without a dot)
               }
           }
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index 632e576..38501eb 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index bc2bc8f..029f7db 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          index 5373707..f526bdf 100644
          --- a/target/site/apidocs/allclasses-index.html
          +++ b/target/site/apidocs/allclasses-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>All Classes (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          index 3c3f2bf..76d905a 100644
          --- a/target/site/apidocs/allpackages-index.html
          +++ b/target/site/apidocs/allpackages-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>All Packages (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          index a862578..98c4397 100644
          --- a/target/site/apidocs/help-doc.html
          +++ b/target/site/apidocs/help-doc.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>API Help (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          index a35747c..bb29e83 100644
          --- a/target/site/apidocs/index-all.html
          +++ b/target/site/apidocs/index-all.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Index (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -204,7 +204,7 @@ loadScripts(document, 'script');</script>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
           <dd>
          -<div class="block">Method that checks the validity of a given path</div>
          +<div class="block">Method that checks the validity of a given path and file.</div>
           </dd>
           <dt><span class="member-name-link"><a href="musichub/business/Language.html#ITALIAN">ITALIAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
           <dd>&nbsp;</dd>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          index 2d288a6..e4f188e 100644
          --- a/target/site/apidocs/index.html
          +++ b/target/site/apidocs/index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Overview (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          index 973b265..1218e4a 100644
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ b/target/site/apidocs/musichub/business/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          index f9f339c..2947784 100644
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          index 0765c5e..952130b 100644
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          index 78478cc..efdb113 100644
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ b/target/site/apidocs/musichub/business/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          index 1e8368a..fb61007 100644
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ b/target/site/apidocs/musichub/business/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          index 373acb6..de6d02c 100644
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ b/target/site/apidocs/musichub/business/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          index 796ef55..c9aa14b 100644
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          index b97e96b..8cd2100 100644
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          index 02158e1..41fa7a8 100644
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          index cb1bead..65ad902 100644
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          index d681f94..a0bd02b 100644
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ b/target/site/apidocs/musichub/business/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          index fb5a918..2550898 100644
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ b/target/site/apidocs/musichub/business/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          index 89a09b3..846ce1e 100644
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ b/target/site/apidocs/musichub/business/class-use/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          index e911a56..ac2d207 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          index 67ffde5..6721959 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          index 3c43357..bf72525 100644
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ b/target/site/apidocs/musichub/business/class-use/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          index e07056b..45e4285 100644
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ b/target/site/apidocs/musichub/business/class-use/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          index 446982a..2641403 100644
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ b/target/site/apidocs/musichub/business/class-use/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          index 284de20..6001814 100644
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          index 4fe2d48..ec4794b 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          index 18ab630..438ea7e 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          index a1bdfd9..fc2e2e3 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          index 634e0d8..bda55e0 100644
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          index fb99612..3325f6e 100644
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ b/target/site/apidocs/musichub/business/class-use/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          index 5c16eb0..6091b4c 100644
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ b/target/site/apidocs/musichub/business/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          index fd8432b..043e924 100644
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ b/target/site/apidocs/musichub/business/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          index f00b71c..9e21dc4 100644
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ b/target/site/apidocs/musichub/business/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          index 756debb..689df96 100644
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ b/target/site/apidocs/musichub/main/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          index ea3723f..3510a5a 100644
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ b/target/site/apidocs/musichub/main/class-use/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          index ca88160..3173f29 100644
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ b/target/site/apidocs/musichub/main/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          index b629a9f..28af7d3 100644
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ b/target/site/apidocs/musichub/main/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          index d88fcc7..91940dd 100644
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ b/target/site/apidocs/musichub/main/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/LogHandler.html b/target/site/apidocs/musichub/util/LogHandler.html
          index aab61a3..ef83ebd 100644
          --- a/target/site/apidocs/musichub/util/LogHandler.html
          +++ b/target/site/apidocs/musichub/util/LogHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>LogHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/PathValidation.html b/target/site/apidocs/musichub/util/PathValidation.html
          index fd6d4b8..fefddad 100644
          --- a/target/site/apidocs/musichub/util/PathValidation.html
          +++ b/target/site/apidocs/musichub/util/PathValidation.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>PathValidation (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -121,7 +121,7 @@ loadScripts(document, 'script');</script>
           <div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
           <div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#isPathValid(java.lang.String)">isPathValid</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</code></div>
           <div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Method that checks the validity of a given path</div>
          +<div class="block">Method that checks the validity of a given path and file.</div>
           </div>
           </div>
           </div>
          @@ -163,7 +163,7 @@ loadScripts(document, 'script');</script>
           <section class="detail" id="isPathValid(java.lang.String)">
           <h3>isPathValid</h3>
           <div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPathValid</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</span></div>
          -<div class="block">Method that checks the validity of a given path</div>
          +<div class="block">Method that checks the validity of a given path and file.</div>
           <dl class="notes">
           <dt>Parameters:</dt>
           <dd><code>inputPath</code> - the path given by the user</dd>
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          index 8957fcb..7236da3 100644
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/class-use/LogHandler.html b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          index 2d3ba9c..990f0fd 100644
          --- a/target/site/apidocs/musichub/util/class-use/LogHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.util.LogHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/class-use/PathValidation.html b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          index 68d4275..220526c 100644
          --- a/target/site/apidocs/musichub/util/class-use/PathValidation.html
          +++ b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.util.PathValidation (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          index 1115b00..7a70382 100644
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          index f15c1e8..f86937c 100644
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ b/target/site/apidocs/musichub/util/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          index 5e16d78..ffec452 100644
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ b/target/site/apidocs/musichub/util/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          index 9451dbe..5b04593 100644
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ b/target/site/apidocs/musichub/util/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          index 3c19f26..4cc33e6 100644
          --- a/target/site/apidocs/overview-summary.html
          +++ b/target/site/apidocs/overview-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>spoteezer 0.1.0 API</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          index b80155e..cdf90ae 100644
          --- a/target/site/apidocs/overview-tree.html
          +++ b/target/site/apidocs/overview-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          index 913a680..4f1d9d0 100644
          --- a/target/site/apidocs/serialized-form.html
          +++ b/target/site/apidocs/serialized-form.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 12:53:29 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
           <title>Serialized Form (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index c69b3a6..b69ecb5 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 162 of 2 803</td><td class="ctr2">22 %</td><td class="bar">193 of 210</td><td class="ctr2">8 %</td><td class="ctr1">173</td><td class="ctr2">211</td><td class="ctr1">591</td><td class="ctr2">745</td><td class="ctr1">62</td><td class="ctr2">93</td><td class="ctr1">12</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="90" height="10" title="1 551" alt="1 551"/><img src="jacoco-resources/greenbar.gif" width="29" height="10" title="512" alt="512"/></td><td class="ctr2" id="c1">24 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="152" alt="152"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="17" alt="17"/></td><td class="ctr2" id="e0">10 %</td><td class="ctr1" id="f0">143</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">381</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">59</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 162 of 2 825</td><td class="ctr2">23 %</td><td class="bar">193 of 214</td><td class="ctr2">9 %</td><td class="ctr1">173</td><td class="ctr2">213</td><td class="ctr1">591</td><td class="ctr2">751</td><td class="ctr1">62</td><td class="ctr2">93</td><td class="ctr1">12</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="90" height="10" title="1 551" alt="1 551"/><img src="jacoco-resources/greenbar.gif" width="29" height="10" title="512" alt="512"/></td><td class="ctr2" id="c1">24 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="152" alt="152"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="17" alt="17"/></td><td class="ctr2" id="e1">10 %</td><td class="ctr1" id="f0">143</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">381</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">59</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 07ff00a..9debc99 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-39b23d38</span></td><td>27 juin 2021, 12:40:20</td><td>27 juin 2021, 12:40:20</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>70c3a2a856fcdb5e</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 74dcec9..558423a 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -1,5 +1,5 @@
           GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
          -spoteezer,musichub.util,PathValidation,0,17,0,0,0,4,0,2,0,2
          +spoteezer,musichub.util,PathValidation,0,39,0,4,0,10,0,4,0,2
           spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
           spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index e842251..1118bc5 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-39b23d38" start="1624790420131" dump="1624790420751"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1551" covered="512"/><counter type="BRANCH" missed="152" covered="17"/><counter type="LINE" missed="381" covered="118"/><counter type="COMPLEXITY" missed="143" covered="29"/><counter type="METHOD" missed="59" covered="22"/><counter type="CLASS" missed="11" covered="4"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2162" covered="641"/><counter type="BRANCH" missed="193" covered="17"/><counter type="LINE" missed="591" covered="154"/><counter type="COMPLEXITY" missed="173" covered="38"/><counter type="METHOD" missed="62" covered="31"/><counter type="CLASS" missed="12" covered="7"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1551" covered="512"/><counter type="BRANCH" missed="152" covered="17"/><counter type="LINE" missed="381" covered="118"/><counter type="COMPLEXITY" missed="143" covered="29"/><counter type="METHOD" missed="59" covered="22"/><counter type="CLASS" missed="11" covered="4"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2162" covered="663"/><counter type="BRANCH" missed="193" covered="21"/><counter type="LINE" missed="591" covered="160"/><counter type="COMPLEXITY" missed="173" covered="40"/><counter type="METHOD" missed="62" covered="31"/><counter type="CLASS" missed="12" covered="7"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index 7ec6a41..d86f303 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -94,7 +94,7 @@ import static musichub.util.PathValidation.isPathValid;
           <span class="nc" id="L94">                    System.out.println(&quot;Song content: &quot;);</span>
           <span class="nc" id="L95">                    String content = scan.nextLine();</span>
           <span class="nc bnc" id="L96" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided.&quot;;</span>
          +<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
           <span class="nc" id="L98">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
           <span class="nc" id="L99">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
           <span class="nc" id="L100">                        choice = scan.nextLine();</span>
          diff --git a/target/site/jacoco/musichub.util/PathValidation.html b/target/site/jacoco/musichub.util/PathValidation.html
          index 940af0e..9798ba8 100644
          --- a/target/site/jacoco/musichub.util/PathValidation.html
          +++ b/target/site/jacoco/musichub.util/PathValidation.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L35" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L23" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 39</td><td class="ctr2">100 %</td><td class="bar">0 of 4</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">10</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L35" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="32" alt="32"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L23" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/PathValidation.java.html b/target/site/jacoco/musichub.util/PathValidation.java.html
          index 7cb31d4..7518e59 100644
          --- a/target/site/jacoco/musichub.util/PathValidation.java.html
          +++ b/target/site/jacoco/musichub.util/PathValidation.java.html
          @@ -25,15 +25,25 @@ public final class PathValidation {
               }
           
               /**
          -     * Method that checks the validity of a given path
          +     * Method that checks the validity of a given path and file.
                *
                * @param inputPath the path given by the user
                * @return a boolean
                */
           
               public static boolean isPathValid(String inputPath) {
          -<span class="fc" id="L35">        Path path = Paths.get(inputPath);</span>
          -<span class="fc" id="L36">        return Files.exists(path);</span>
          +<span class="fc" id="L35">        boolean isExtensionValid=false;</span>
          +
          +<span class="fc" id="L37">        int index = inputPath.lastIndexOf('.');</span>
          +<span class="fc bfc" id="L38" title="All 2 branches covered.">        if(index &gt; 0) {</span>
          +<span class="fc" id="L39">            String extension = inputPath.substring(index + 1);</span>
          +<span class="fc bfc" id="L40" title="All 2 branches covered.">            if (extension.equals(&quot;wav&quot;)){</span>
          +<span class="fc" id="L41">                isExtensionValid=true;</span>
          +            }
          +        }
          +
          +<span class="fc" id="L45">        Path path = Paths.get(inputPath);</span>
          +<span class="fc" id="L46">        return (Files.exists(path) &amp; isExtensionValid);</span>
               }
           
           }
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 8091491..35e136c 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 157</td><td class="ctr2">96 %</td><td class="bar">0 of 4</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">11</td><td class="ctr1">4</td><td class="ctr2">46</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index ce29c52..d40b929 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 157</td><td class="ctr2">96 %</td><td class="bar">0 of 4</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">11</td><td class="ctr1">4</td><td class="ctr2">46</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 6c977eff192830096d4d5cde27d31bfd21d16b7e Mon Sep 17 00:00:00 2001
          From: said belhadj <saidbelhadj0312@gmail.com>
          Date: Sun, 27 Jun 2021 13:54:33 +0200
          Subject: Update search functionality
          
          ---
           src/main/java/musichub/business/MusicHub.java | 5 +++++
           src/main/java/musichub/main/Main.java         | 3 +++
           2 files changed, 8 insertions(+)
          
          diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
          index add55e6..bbac505 100644
          --- a/src/main/java/musichub/business/MusicHub.java
          +++ b/src/main/java/musichub/business/MusicHub.java
          @@ -342,6 +342,7 @@ public class MusicHub {
           
               public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
                   Scanner scanner = new Scanner(System.in);
          +        System.out.println("Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données");
                   String word = scanner.next().toLowerCase(Locale.ROOT);
                   List<AudioElement> searchResult = new ArrayList<>();
                   for(AudioElement el : elements){
          @@ -350,6 +351,10 @@ public class MusicHub {
                           System.out.println(el);
                       }
                   }
          +
          +        if(searchResult.isEmpty()){
          +            System.err.println("Aucun résultat pour votre recherche");
          +        }
                   if (searchResult.size()==1){
                       this.getAudioElement(searchResult, searchResult.get(0).getTitle());
                   }
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index 480a2c2..19cbede 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -244,6 +244,8 @@ public class Main {
                           case 'r':
                               //search a music
                               theHub.searchAudioElement();
          +                    printAvailableCommands();
          +                    choice = scan.nextLine();
                               break;
                           default:
           
          @@ -258,6 +260,7 @@ public class Main {
                   System.out.println("g: display songs of an album, ordered by genre");
                   System.out.println("d: display songs of an album");
                   System.out.println("u: display audiobooks ordered by author");
          +        System.out.println("r: search audio elements");
                   System.out.println("c: add a new song");
                   System.out.println("a: add a new album");
                   System.out.println("+: add a song to an album");
          -- 
          cgit v1.2.3
          
          
          From f42590f675ec76e8b515aebd2ebf66430435b6bd Mon Sep 17 00:00:00 2001
          From: said belhadj <saidbelhadj0312@gmail.com>
          Date: Sun, 27 Jun 2021 16:07:27 +0200
          Subject: Add unit test for Category and Language
          
          ---
           src/test/java/musichub/business/CategoryTest.java  | 25 ++++++++++
           src/test/java/musichub/business/LanguageTest.java  | 23 +++++++++
           .../TEST-musichub.business.CategoryTest.xml        | 58 ++++++++++++++++++++++
           .../TEST-musichub.business.LanguageTest.xml        | 58 ++++++++++++++++++++++
           4 files changed, 164 insertions(+)
           create mode 100644 src/test/java/musichub/business/CategoryTest.java
           create mode 100644 src/test/java/musichub/business/LanguageTest.java
           create mode 100644 target/surefire-reports/TEST-musichub.business.CategoryTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          
          diff --git a/src/test/java/musichub/business/CategoryTest.java b/src/test/java/musichub/business/CategoryTest.java
          new file mode 100644
          index 0000000..f1fef50
          --- /dev/null
          +++ b/src/test/java/musichub/business/CategoryTest.java
          @@ -0,0 +1,25 @@
          +package musichub.business;
          +
          +import org.junit.jupiter.api.Test;
          +
          +import static org.junit.jupiter.api.Assertions.assertEquals;
          +import static org.junit.jupiter.api.Assertions.assertNotEquals;
          +
          +public class CategoryTest {
          +
          +    @Test
          +    void testGetter() {
          +
          +        String t1 = "t1";
          +        String a1 = "a1";
          +        int l1 = 1;
          +        String c1 = a1+" - "+t1;
          +        String lan1 = "french";
          +        String cat1 = "novel";
          +        AudioBook s1 = new AudioBook(t1, a1, l1, c1, lan1,  cat1);
          +
          +        assertEquals(s1.getCategory(), Category.NOVEL);
          +        s1.setCategory("NOVEL");
          +        assertEquals(s1.getCategory(), Category.NOVEL);
          +    }
          +}
          diff --git a/src/test/java/musichub/business/LanguageTest.java b/src/test/java/musichub/business/LanguageTest.java
          new file mode 100644
          index 0000000..93e9d1c
          --- /dev/null
          +++ b/src/test/java/musichub/business/LanguageTest.java
          @@ -0,0 +1,23 @@
          +package musichub.business;
          +
          +import org.junit.jupiter.api.Test;
          +
          +import static org.junit.jupiter.api.Assertions.*;
          +
          +public class LanguageTest {
          +    @Test
          +    void testGetter() {
          +
          +        String t1 = "t1";
          +        String a1 = "a1";
          +        int l1 = 1;
          +        String c1 = a1+" - "+t1;
          +        String lan1 = "FRENCH";
          +        String cat1 = "novel";
          +        AudioBook s1 = new AudioBook(t1, a1, l1, c1, lan1,  cat1);
          +        assertEquals(s1.getLanguage(), Language.FRENCH);
          +        s1.setLanguage("french");
          +        assertEquals(s1.getLanguage(), Language.FRENCH);
          +    }
          +
          +}
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          new file mode 100644
          index 0000000..706f15d
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          @@ -0,0 +1,58 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.044" tests="1" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.jnu.encoding" value="UTF-8"/>
          +    <property name="java.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="java.vm.vendor" value="Homebrew"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
          +    <property name="os.name" value="Mac OS X"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home/lib"/>
          +    <property name="sun.java.command" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar /Users/saidbelhadj/Documents/spoteeze/target/surefire 2021-06-27T16-03-35_612-jvmRun1 surefire3577178680756599794tmp surefire_06826483022491615857tmp"/>
          +    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="/Users/saidbelhadj"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home"/>
          +    <property name="file.separator" value="/"/>
          +    <property name="basedir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="surefire.real.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar"/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.runtime.version" value="16.0.1+0"/>
          +    <property name="user.name" value="saidbelhadj"/>
          +    <property name="path.separator" value=":"/>
          +    <property name="os.version" value="11.2.3"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="UTF-8"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="java.vendor.version" value="Homebrew"/>
          +    <property name="localRepository" value="/Users/saidbelhadj/.m2/repository"/>
          +    <property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
          +    <property name="java.io.tmpdir" value="/var/folders/ym/wj3693wx6fdggpnvqkzls90r0000gn/T/"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="os.arch" value="x86_64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="java.library.path" value="/Users/saidbelhadj/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Homebrew"/>
          +    <property name="java.vm.version" value="16.0.1+0"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
          +    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.041"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          new file mode 100644
          index 0000000..088ebdd
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          @@ -0,0 +1,58 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.LanguageTest" time="0" tests="1" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.jnu.encoding" value="UTF-8"/>
          +    <property name="java.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="java.vm.vendor" value="Homebrew"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
          +    <property name="os.name" value="Mac OS X"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home/lib"/>
          +    <property name="sun.java.command" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar /Users/saidbelhadj/Documents/spoteeze/target/surefire 2021-06-27T16-03-35_612-jvmRun1 surefire3577178680756599794tmp surefire_06826483022491615857tmp"/>
          +    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="/Users/saidbelhadj"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home"/>
          +    <property name="file.separator" value="/"/>
          +    <property name="basedir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="surefire.real.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar"/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.runtime.version" value="16.0.1+0"/>
          +    <property name="user.name" value="saidbelhadj"/>
          +    <property name="path.separator" value=":"/>
          +    <property name="os.version" value="11.2.3"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="UTF-8"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="java.vendor.version" value="Homebrew"/>
          +    <property name="localRepository" value="/Users/saidbelhadj/.m2/repository"/>
          +    <property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
          +    <property name="java.io.tmpdir" value="/var/folders/ym/wj3693wx6fdggpnvqkzls90r0000gn/T/"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="os.arch" value="x86_64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="java.library.path" value="/Users/saidbelhadj/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Homebrew"/>
          +    <property name="java.vm.version" value="16.0.1+0"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
          +    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetter" classname="musichub.business.LanguageTest" time="0"/>
          +</testsuite>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From ee224ae15d45f3f47199a3f7cae7453a16bd53c2 Mon Sep 17 00:00:00 2001
          From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com>
          Date: Sun, 27 Jun 2021 16:12:28 +0200
          Subject: Delete TEST-musichub.business.CategoryTest.xml
          
          ---
           .../TEST-musichub.business.CategoryTest.xml        | 58 ----------------------
           1 file changed, 58 deletions(-)
           delete mode 100644 target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          deleted file mode 100644
          index 706f15d..0000000
          --- a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          +++ /dev/null
          @@ -1,58 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.044" tests="1" errors="0" skipped="0" failures="0">
          -  <properties>
          -    <property name="java.specification.version" value="16"/>
          -    <property name="sun.jnu.encoding" value="UTF-8"/>
          -    <property name="java.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          -    <property name="java.vm.vendor" value="Homebrew"/>
          -    <property name="sun.arch.data.model" value="64"/>
          -    <property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="os.name" value="Mac OS X"/>
          -    <property name="java.vm.specification.version" value="16"/>
          -    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          -    <property name="user.country" value="FR"/>
          -    <property name="sun.boot.library.path" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home/lib"/>
          -    <property name="sun.java.command" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar /Users/saidbelhadj/Documents/spoteeze/target/surefire 2021-06-27T16-03-35_612-jvmRun1 surefire3577178680756599794tmp surefire_06826483022491615857tmp"/>
          -    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          -    <property name="jdk.debug" value="release"/>
          -    <property name="surefire.test.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          -    <property name="sun.cpu.endian" value="little"/>
          -    <property name="user.home" value="/Users/saidbelhadj"/>
          -    <property name="user.language" value="fr"/>
          -    <property name="java.specification.vendor" value="Oracle Corporation"/>
          -    <property name="java.version.date" value="2021-04-20"/>
          -    <property name="java.home" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home"/>
          -    <property name="file.separator" value="/"/>
          -    <property name="basedir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          -    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          -    <property name="line.separator" value="&#10;"/>
          -    <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          -    <property name="surefire.real.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar"/>
          -    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          -    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          -    <property name="java.runtime.version" value="16.0.1+0"/>
          -    <property name="user.name" value="saidbelhadj"/>
          -    <property name="path.separator" value=":"/>
          -    <property name="os.version" value="11.2.3"/>
          -    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          -    <property name="file.encoding" value="UTF-8"/>
          -    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          -    <property name="java.vendor.version" value="Homebrew"/>
          -    <property name="localRepository" value="/Users/saidbelhadj/.m2/repository"/>
          -    <property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="java.io.tmpdir" value="/var/folders/ym/wj3693wx6fdggpnvqkzls90r0000gn/T/"/>
          -    <property name="java.version" value="16.0.1"/>
          -    <property name="user.dir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          -    <property name="os.arch" value="x86_64"/>
          -    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          -    <property name="java.library.path" value="/Users/saidbelhadj/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
          -    <property name="java.vm.info" value="mixed mode, sharing"/>
          -    <property name="java.vendor" value="Homebrew"/>
          -    <property name="java.vm.version" value="16.0.1+0"/>
          -    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
          -    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          -    <property name="java.class.version" value="60.0"/>
          -  </properties>
          -  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.041"/>
          -</testsuite>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From ac2ff63e60bba8e841746a067f27441e491f4235 Mon Sep 17 00:00:00 2001
          From: said belhadj <saidbelhadj0312@gmail.com>
          Date: Sun, 27 Jun 2021 16:56:11 +0200
          Subject: Catch exception related to search functionality
          
          ---
           src/main/java/musichub/business/MusicHub.java   |   4 ++--
           src/main/java/musichub/main/Main.java           |  10 +++++++++-
           target/classes/musichub/business/MusicHub.class | Bin 11543 -> 12505 bytes
           target/classes/musichub/main/Main.class         | Bin 10315 -> 10771 bytes
           4 files changed, 11 insertions(+), 3 deletions(-)
          
          diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
          index bbac505..660f0f8 100644
          --- a/src/main/java/musichub/business/MusicHub.java
          +++ b/src/main/java/musichub/business/MusicHub.java
          @@ -340,7 +340,7 @@ public class MusicHub {
           
               }
           
          -    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
          +    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException, NoElementFoundException {
                   Scanner scanner = new Scanner(System.in);
                   System.out.println("Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données");
                   String word = scanner.next().toLowerCase(Locale.ROOT);
          @@ -353,7 +353,7 @@ public class MusicHub {
                   }
           
                   if(searchResult.isEmpty()){
          -            System.err.println("Aucun résultat pour votre recherche");
          +            throw new NoElementFoundException("Any result for your search");
                   }
                   if (searchResult.size()==1){
                       this.getAudioElement(searchResult, searchResult.get(0).getTitle());
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index cd1fd5f..b0f98f4 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -246,7 +246,15 @@ public class Main {
                               break;
                           case 'r':
                               //search a music
          -                    theHub.searchAudioElement();
          +                    try {
          +                        theHub.searchAudioElement();
          +                    }
          +                    catch (NoElementFoundException e){
          +                        System.err.println(e.getMessage());
          +                    }
          +                    catch (java.io.FileNotFoundException e){
          +                        System.err.println(e.getMessage()+" Please create a file with the extension .wav inside the song folder at root of the app");
          +                    }
                               printAvailableCommands();
                           case 'o':
                               //consult the app logs
          diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class
          index 9554eeb..41af154 100644
          Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index 38501eb..802184b 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          -- 
          cgit v1.2.3
          
          
          From 948ff415cd3571c9f418765b30f1547dd16e84bf Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 18:59:41 +0200
          Subject: Latest maven, jacoco and javadoc files
          
          ---
           log/spoteezer.log                                  |   4 +-
           target/classes/musichub/util/LogHandler.class      | Bin 0 -> 2161 bytes
           target/classes/musichub/util/PathValidation.class  | Bin 0 -> 1150 bytes
           target/jacoco.exec                                 | Bin 15166 -> 30542 bytes
           .../javadoc-options-javadoc-resources.xml          |  10 +
           target/maven-archiver/pom.properties               |   5 +
           target/maven-javadoc-plugin-stale-data.txt         |  66 +++
           .../default-testCompile/createdFiles.lst           |   6 +-
           target/original-spoteezer-0.1.0.jar                | Bin 0 -> 33454 bytes
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   6 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../site/jacoco/musichub.business/AudioBook.html   |   2 +-
           .../jacoco/musichub.business/AudioBook.java.html   |  24 +-
           target/site/jacoco/musichub.business/Category.html |   2 +-
           .../jacoco/musichub.business/Category.java.html    |  10 +-
           target/site/jacoco/musichub.business/Language.html |   2 +-
           .../jacoco/musichub.business/Language.java.html    |  10 +-
           .../jacoco/musichub.business/MusicHub.java.html    |  21 +
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 487 +++++++++++----------
           .../jacoco/musichub.util/PathValidation.java.html  |   8 +-
           target/spoteezer-0.1.0-shaded.jar                  | Bin 0 -> 369356 bytes
           target/spoteezer-0.1.0.jar                         | Bin 0 -> 369356 bytes
           .../TEST-musichub.business.CategoryTest.xml        |  59 +++
           .../TEST-musichub.business.LanguageTest.xml        |  67 +--
           .../TEST-musichub.business.PlayListTest.xml        |  63 +++
           .../TEST-musichub.business.SongTest.xml            |  64 +++
           .../TEST-musichub.util.LogHandlerTest.xml          |  61 +++
           .../TEST-musichub.util.PathValidationTest.xml      |  60 +++
           .../TEST-musichub.util.XMLHandlerTest.xml          |  60 +++
           .../musichub.business.CategoryTest.txt             |   4 +
           .../musichub.business.LanguageTest.txt             |   4 +
           .../musichub.business.PlayListTest.txt             |   4 +
           .../musichub.business.SongTest.txt                 |   4 +
           .../musichub.util.LogHandlerTest.txt               |   4 +
           .../musichub.util.PathValidationTest.txt           |   4 +
           .../musichub.util.XMLHandlerTest.txt               |   4 +
           .../musichub/business/CategoryTest.class           | Bin 0 -> 1648 bytes
           .../musichub/business/LanguageTest.class           | Bin 0 -> 1649 bytes
           .../musichub/business/PlayListTest.class           | Bin 0 -> 3108 bytes
           .../test-classes/musichub/business/SongTest.class  | Bin 0 -> 3889 bytes
           .../musichub/util/LogHandlerTest.class             | Bin 0 -> 1336 bytes
           .../musichub/util/PathValidationTest.class         | Bin 0 -> 1215 bytes
           .../musichub/util/XMLHandlerTest.class             | Bin 0 -> 1756 bytes
           47 files changed, 822 insertions(+), 313 deletions(-)
           create mode 100644 target/classes/musichub/util/LogHandler.class
           create mode 100644 target/classes/musichub/util/PathValidation.class
           create mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
           create mode 100644 target/maven-archiver/pom.properties
           create mode 100644 target/maven-javadoc-plugin-stale-data.txt
           create mode 100644 target/original-spoteezer-0.1.0.jar
           create mode 100644 target/spoteezer-0.1.0-shaded.jar
           create mode 100644 target/spoteezer-0.1.0.jar
           create mode 100644 target/surefire-reports/TEST-musichub.business.CategoryTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.business.PlayListTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.business.SongTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
           create mode 100644 target/surefire-reports/musichub.business.CategoryTest.txt
           create mode 100644 target/surefire-reports/musichub.business.LanguageTest.txt
           create mode 100644 target/surefire-reports/musichub.business.PlayListTest.txt
           create mode 100644 target/surefire-reports/musichub.business.SongTest.txt
           create mode 100644 target/surefire-reports/musichub.util.LogHandlerTest.txt
           create mode 100644 target/surefire-reports/musichub.util.PathValidationTest.txt
           create mode 100644 target/surefire-reports/musichub.util.XMLHandlerTest.txt
           create mode 100644 target/test-classes/musichub/business/CategoryTest.class
           create mode 100644 target/test-classes/musichub/business/LanguageTest.class
           create mode 100644 target/test-classes/musichub/business/PlayListTest.class
           create mode 100644 target/test-classes/musichub/business/SongTest.class
           create mode 100644 target/test-classes/musichub/util/LogHandlerTest.class
           create mode 100644 target/test-classes/musichub/util/PathValidationTest.class
           create mode 100644 target/test-classes/musichub/util/XMLHandlerTest.class
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index b4799c9..7f2fbd4 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,3 +1,5 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-27 13:23:02.181] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          -[2021-06-27 13:23:40.286] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 13:23:40.286] TEST: JUnit test
          +[2021-06-27 17:01:30.263] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          +[2021-06-27 18:57:02.639] TEST: JUnit test
          \ No newline at end of file
          diff --git a/target/classes/musichub/util/LogHandler.class b/target/classes/musichub/util/LogHandler.class
          new file mode 100644
          index 0000000..40507d1
          Binary files /dev/null and b/target/classes/musichub/util/LogHandler.class differ
          diff --git a/target/classes/musichub/util/PathValidation.class b/target/classes/musichub/util/PathValidation.class
          new file mode 100644
          index 0000000..8c0bfc4
          Binary files /dev/null and b/target/classes/musichub/util/PathValidation.class differ
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 029f7db..407278b 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          new file mode 100644
          index 0000000..8b89c97
          --- /dev/null
          +++ b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          @@ -0,0 +1,10 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<javadocOptions>
          +  <docletArtifacts>
          +    <docletArtifact />
          +  </docletArtifacts>
          +  <tagletArtifacts>
          +    <tagletArtifact />
          +  </tagletArtifacts>
          +  <javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
          +</javadocOptions>
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          new file mode 100644
          index 0000000..ea770d4
          --- /dev/null
          +++ b/target/maven-archiver/pom.properties
          @@ -0,0 +1,5 @@
          +#Generated by Maven
          +#Sun Jun 27 13:23:41 CEST 2021
          +groupId=esiea.softwareengineering
          +artifactId=spoteezer
          +version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          new file mode 100644
          index 0000000..7723699
          --- /dev/null
          +++ b/target/maven-javadoc-plugin-stale-data.txt
          @@ -0,0 +1,66 @@
          +@options
          +@argfile
          +-classpath
          +'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar'
          +-encoding
          +'Cp1252'
          +-protected
          +--release
          +16
          +-sourcepath
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java'
          +-author
          +-bottom
          +'Copyright &#169; 2021. All rights reserved.'
          +-charset
          +'UTF-8'
          +-d
          +'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs'
          +-docencoding
          +'UTF-8'
          +-doctitle
          +'spoteezer 0.1.0 API'
          +-use
          +-version
          +-windowtitle
          +'spoteezer 0.1.0 API'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
          +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
          +C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770
          +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
          +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
          +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624793029572
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624793029575
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624793029464
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624793029599
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624793029596
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624793029553
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624793029620
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624793029579
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624793029576
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624793029597
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624793029548
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624793029577
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624793029602
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624793029605
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624793029489
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624793029601
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624793029580
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624793029578
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 7726a1c..1b87d1d 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,5 +1,7 @@
          -musichub\util\XMLHandlerTest.class
          -musichub\business\PlayListTest.class
          +musichub\business\CategoryTest.class
           musichub\util\PathValidationTest.class
           musichub\business\SongTest.class
          +musichub\business\LanguageTest.class
          +musichub\util\XMLHandlerTest.class
          +musichub\business\PlayListTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          new file mode 100644
          index 0000000..49fe805
          Binary files /dev/null and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index b69ecb5..88d1333 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 162 of 2 825</td><td class="ctr2">23 %</td><td class="bar">193 of 214</td><td class="ctr2">9 %</td><td class="ctr1">173</td><td class="ctr2">213</td><td class="ctr1">591</td><td class="ctr2">751</td><td class="ctr1">62</td><td class="ctr2">93</td><td class="ctr1">12</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="90" height="10" title="1 551" alt="1 551"/><img src="jacoco-resources/greenbar.gif" width="29" height="10" title="512" alt="512"/></td><td class="ctr2" id="c1">24 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="152" alt="152"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="17" alt="17"/></td><td class="ctr2" id="e1">10 %</td><td class="ctr1" id="f0">143</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">381</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">59</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 023 of 2 825</td><td class="ctr2">28 %</td><td class="bar">191 of 214</td><td class="ctr2">10 %</td><td class="ctr1">164</td><td class="ctr2">213</td><td class="ctr1">569</td><td class="ctr2">751</td><td class="ctr1">53</td><td class="ctr2">93</td><td class="ctr1">9</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="82" height="10" title="1 412" alt="1 412"/><img src="jacoco-resources/greenbar.gif" width="37" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">31 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="106" height="10" title="150" alt="150"/><img src="jacoco-resources/greenbar.gif" width="13" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">11 %</td><td class="ctr1" id="f0">134</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">359</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">50</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 9debc99..eb4b943 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 558423a..9effb4f 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -5,14 +5,14 @@ spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          -spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Language,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
          -spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Category,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,PlayList,32,170,5,9,9,44,5,9,0,7
          -spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
          +spoteezer,musichub.business,AudioBook,117,47,8,2,27,12,12,5,4,5
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 1118bc5..2e1332b 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1551" covered="512"/><counter type="BRANCH" missed="152" covered="17"/><counter type="LINE" missed="381" covered="118"/><counter type="COMPLEXITY" missed="143" covered="29"/><counter type="METHOD" missed="59" covered="22"/><counter type="CLASS" missed="11" covered="4"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2162" covered="663"/><counter type="BRANCH" missed="193" covered="21"/><counter type="LINE" missed="591" covered="160"/><counter type="COMPLEXITY" missed="173" covered="40"/><counter type="METHOD" missed="62" covered="31"/><counter type="CLASS" missed="12" covered="7"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1412" covered="651"/><counter type="BRANCH" missed="150" covered="19"/><counter type="LINE" missed="359" covered="140"/><counter type="COMPLEXITY" missed="134" covered="38"/><counter type="METHOD" missed="50" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2023" covered="802"/><counter type="BRANCH" missed="191" covered="23"/><counter type="LINE" missed="569" covered="182"/><counter type="COMPLEXITY" missed="164" covered="49"/><counter type="METHOD" missed="53" covered="40"/><counter type="CLASS" missed="9" covered="10"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.html b/target/site/jacoco/musichub.business/AudioBook.html
          index aec1e56..78809c1 100644
          --- a/target/site/jacoco/musichub.business/AudioBook.html
          +++ b/target/site/jacoco/musichub.business/AudioBook.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 164</td><td class="ctr2">0 %</td><td class="bar">10 of 10</td><td class="ctr2">0 %</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">39</td><td class="ctr2">39</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">117 of 164</td><td class="ctr2">28 %</td><td class="bar">8 of 10</td><td class="ctr2">20 %</td><td class="ctr1">12</td><td class="ctr2">17</td><td class="ctr1">27</td><td class="ctr2">39</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c3">48 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="e0">20 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">48 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">20 %</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.java.html b/target/site/jacoco/musichub.business/AudioBook.java.html
          index 33a7924..d8fc192 100644
          --- a/target/site/jacoco/musichub.business/AudioBook.java.html
          +++ b/target/site/jacoco/musichub.business/AudioBook.java.html
          @@ -14,10 +14,10 @@ public class AudioBook extends AudioElement {
           <span class="nc" id="L14">    }</span>
           
               public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) {
          -<span class="nc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          -<span class="nc" id="L18">        this.setLanguage(language);</span>
          -<span class="nc" id="L19">        this.setCategory(category);</span>
          -<span class="nc" id="L20">    }</span>
          +<span class="fc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          +<span class="fc" id="L18">        this.setLanguage(language);</span>
          +<span class="fc" id="L19">        this.setCategory(category);</span>
          +<span class="fc" id="L20">    }</span>
           
               public AudioBook(Element xmlElement) {
           <span class="nc" id="L23">        super(xmlElement);</span>
          @@ -26,32 +26,32 @@ public class AudioBook extends AudioElement {
           <span class="nc" id="L26">    }</span>
           
               public Language getLanguage() {
          -<span class="nc" id="L29">        return this.language;</span>
          +<span class="fc" id="L29">        return this.language;</span>
               }
           
               public void setLanguage(String language) {
          -<span class="nc bnc" id="L33" title="All 5 branches missed.">        switch (language.toLowerCase()) {</span>
          +<span class="pc bpc" id="L33" title="4 of 5 branches missed.">        switch (language.toLowerCase()) {</span>
           <span class="nc" id="L34">            default -&gt; this.language = Language.ENGLISH;</span>
          -<span class="nc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
          +<span class="fc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
           <span class="nc" id="L36">            case &quot;german&quot; -&gt; this.language = Language.GERMAN;</span>
           <span class="nc" id="L37">            case &quot;spanish&quot; -&gt; this.language = Language.SPANISH;</span>
           <span class="nc" id="L38">            case &quot;italian&quot; -&gt; this.language = Language.ITALIAN;</span>
                   }
          -<span class="nc" id="L40">    }</span>
          +<span class="fc" id="L40">    }</span>
           
               public Category getCategory() {
          -<span class="nc" id="L43">        return this.category;</span>
          +<span class="fc" id="L43">        return this.category;</span>
               }
           
               public void setCategory(String category) {
          -<span class="nc bnc" id="L47" title="All 5 branches missed.">        switch (category.toLowerCase()) {</span>
          +<span class="pc bpc" id="L47" title="4 of 5 branches missed.">        switch (category.toLowerCase()) {</span>
           <span class="nc" id="L48">            default -&gt; this.category = Category.YOUTH;</span>
          -<span class="nc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
          +<span class="fc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
           <span class="nc" id="L50">            case &quot;theater&quot; -&gt; this.category = Category.THEATER;</span>
           <span class="nc" id="L51">            case &quot;documentary&quot; -&gt; this.category = Category.DOCUMENTARY;</span>
           <span class="nc" id="L52">            case &quot;speech&quot; -&gt; this.category = Category.SPEECH;</span>
                   }
          -<span class="nc" id="L54">    }</span>
          +<span class="fc" id="L54">    }</span>
           
           
               public String toString() {
          diff --git a/target/site/jacoco/musichub.business/Category.html b/target/site/jacoco/musichub.business/Category.html
          index d7e4df0..690ad21 100644
          --- a/target/site/jacoco/musichub.business/Category.html
          +++ b/target/site/jacoco/musichub.business/Category.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">3 of 49</td><td class="ctr2">93 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.java.html b/target/site/jacoco/musichub.business/Category.java.html
          index cdef51f..1d815b6 100644
          --- a/target/site/jacoco/musichub.business/Category.java.html
          +++ b/target/site/jacoco/musichub.business/Category.java.html
          @@ -1,12 +1,12 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Category.java</span></div><h1>Category.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          -<span class="nc" id="L3">public enum Category {</span>
          -<span class="nc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
          +<span class="fc" id="L3">public enum Category {</span>
          +<span class="fc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
               private final String category;
           
          -<span class="nc" id="L7">    Category(String category) {</span>
          -<span class="nc" id="L8">        this.category = category;</span>
          -<span class="nc" id="L9">    }</span>
          +<span class="fc" id="L7">    Category(String category) {</span>
          +<span class="fc" id="L8">        this.category = category;</span>
          +<span class="fc" id="L9">    }</span>
           
               public String getCategory() {
           <span class="nc" id="L12">        return category;</span>
          diff --git a/target/site/jacoco/musichub.business/Language.html b/target/site/jacoco/musichub.business/Language.html
          index 604af85..72d4236 100644
          --- a/target/site/jacoco/musichub.business/Language.html
          +++ b/target/site/jacoco/musichub.business/Language.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">3 of 49</td><td class="ctr2">93 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.java.html b/target/site/jacoco/musichub.business/Language.java.html
          index f974811..4c55c9d 100644
          --- a/target/site/jacoco/musichub.business/Language.java.html
          +++ b/target/site/jacoco/musichub.business/Language.java.html
          @@ -1,12 +1,12 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Language.java</span></div><h1>Language.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          -<span class="nc" id="L3">public enum Language {</span>
          -<span class="nc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
          +<span class="fc" id="L3">public enum Language {</span>
          +<span class="fc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
               private final String language;
           
          -<span class="nc" id="L7">    Language(String language) {</span>
          -<span class="nc" id="L8">        this.language = language;</span>
          -<span class="nc" id="L9">    }</span>
          +<span class="fc" id="L7">    Language(String language) {</span>
          +<span class="fc" id="L8">        this.language = language;</span>
          +<span class="fc" id="L9">    }</span>
           
               public String getLanguage() {
           <span class="nc" id="L12">        return language;</span>
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          index b9dfd09..d150675 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.java.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -339,5 +339,26 @@ public class MusicHub {
           <span class="nc" id="L339">        }</span>
           
           <span class="nc" id="L341">    }</span>
          +
          +    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
          +        Scanner scanner = new Scanner(System.in);
          +        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);
          +        String word = scanner.next().toLowerCase(Locale.ROOT);
          +        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();
          +        for(AudioElement el : elements){
          +            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){
          +                searchResult.add(el);
          +                System.out.println(el);
          +            }
          +        }
          +
          +        if(searchResult.isEmpty()){
          +            System.err.println(&quot;Aucun résultat pour votre recherche&quot;);
          +        }
          +        if (searchResult.size()==1){
          +            this.getAudioElement(searchResult, searchResult.get(0).getTitle());
          +        }
          +    }
          +
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 3178b04..359d516 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 967ff25..21f0bb6 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index d86f303..bee2491 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -13,264 +13,271 @@ import java.util.Scanner;
           import static musichub.util.PathValidation.isPathValid;
           
           <span class="nc" id="L15">public class Main {</span>
          -    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException {
           
          -<span class="nc" id="L18">        MusicHub theHub = new MusicHub();</span>
          +<span class="nc" id="L18"></span>
          +        MusicHub theHub = new MusicHub();
          +<span class="nc" id="L20"></span>
          +        System.out.println(&quot;Type h for available commands&quot;);
           
          -<span class="nc" id="L20">        System.out.println(&quot;Type h for available commands&quot;);</span>
          -
          -
          -<span class="nc" id="L23">        Scanner scan = new Scanner(System.in);</span>
          -<span class="nc" id="L24">        String choice = scan.nextLine();</span>
          +<span class="nc" id="L23"></span>
          +<span class="nc" id="L24">        Scanner scan = new Scanner(System.in);</span>
          +        String choice = scan.nextLine();
           
                   String albumTitle;
          -
          -<span class="nc bnc" id="L28" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          -
          -<span class="nc bnc" id="L30" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -<span class="nc bnc" id="L31" title="All 15 branches missed.">            switch (choice.charAt(0)) {</span>
          -                case 'q': //added the option directly in the switch instead of the loop
          -<span class="nc" id="L33">                    System.exit(0);</span>
          -                case 'h':
          -<span class="nc" id="L35">                    printAvailableCommands();</span>
          -<span class="nc" id="L36">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L37">                    break;</span>
          +<span class="nc bnc" id="L28" title="All 2 branches missed."></span>
          +        if (choice.length() == 0) System.exit(0);
          +<span class="nc bnc" id="L30" title="All 2 branches missed."></span>
          +<span class="nc bnc" id="L31" title="All 15 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +            switch (choice.charAt(0)) {
          +<span class="nc" id="L33">                case 'q': //added the option directly in the switch instead of the loop</span>
          +                    System.exit(0);
          +<span class="nc" id="L35">                case 'h':</span>
          +<span class="nc" id="L36">                    printAvailableCommands();</span>
          +<span class="nc" id="L37">                    choice = scan.nextLine();</span>
          +                    break;
                           case 't':
          -                    //album titles, ordered by date
          -<span class="nc" id="L40">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -<span class="nc" id="L41">                    printAvailableCommands();</span>
          -<span class="nc" id="L42">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L43">                    break;</span>
          +<span class="nc" id="L40">                    //album titles, ordered by date</span>
          +<span class="nc" id="L41">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L42">                    printAvailableCommands();</span>
          +<span class="nc" id="L43">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'g':
          -                    //songs of an album, sorted by genre
          -<span class="nc" id="L46">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L47">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -
          -<span class="nc" id="L49">                    albumTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L51">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          -<span class="nc" id="L52">                        System.out.println(songs);</span>
          -<span class="nc" id="L53">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L54">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L55">                    }</span>
          -<span class="nc" id="L56">                    printAvailableCommands();</span>
          -<span class="nc" id="L57">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L58">                    break;</span>
          +<span class="nc" id="L46">                    //songs of an album, sorted by genre</span>
          +<span class="nc" id="L47">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          +<span class="nc" id="L49"></span>
          +                    albumTitle = scan.nextLine();
          +<span class="nc" id="L51">                    try {</span>
          +<span class="nc" id="L52">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L53">                        System.out.println(songs);</span>
          +<span class="nc" id="L54">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L55">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L56">                    }</span>
          +<span class="nc" id="L57">                    printAvailableCommands();</span>
          +<span class="nc" id="L58">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'd':
          -                    //songs of an album
          -<span class="nc" id="L61">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L62">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -
          -<span class="nc" id="L64">                    albumTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L66">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L67">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L68">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L69">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L70">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L71">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L72">                    }</span>
          -<span class="nc" id="L73">                    printAvailableCommands();</span>
          -<span class="nc" id="L74">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L75">                    break;</span>
          +<span class="nc" id="L61">                    //songs of an album</span>
          +<span class="nc" id="L62">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          +<span class="nc" id="L64"></span>
          +                    albumTitle = scan.nextLine();
          +<span class="nc" id="L66">                    try {</span>
          +<span class="nc" id="L67">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L68">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L69">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L70">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L71">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L72">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L73">                    }</span>
          +<span class="nc" id="L74">                    printAvailableCommands();</span>
          +<span class="nc" id="L75">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'u':
          -                    //audiobooks ordered by author
          -<span class="nc" id="L78">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L79">                    printAvailableCommands();</span>
          -<span class="nc" id="L80">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L81">                    break;</span>
          +<span class="nc" id="L78">                    //audiobooks ordered by author</span>
          +<span class="nc" id="L79">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L80">                    printAvailableCommands();</span>
          +<span class="nc" id="L81">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'c':
          -                    // add a new song
          -<span class="nc" id="L84">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L85">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L86">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L87">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L88">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L89">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L90">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L91">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -<span class="nc" id="L92">                    int length = Integer.parseInt(scan.nextLine());</span>
          -
          -<span class="nc" id="L94">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc" id="L95">                    String content = scan.nextLine();</span>
          -<span class="nc bnc" id="L96" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          -<span class="nc" id="L98">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          -<span class="nc" id="L99">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          -<span class="nc" id="L100">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L101">                        break;</span>
          +<span class="nc" id="L84">                    // add a new song</span>
          +<span class="nc" id="L85">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L86">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L87">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L88">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L89">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L91">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L92">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +                    int length = Integer.parseInt(scan.nextLine());
          +<span class="nc" id="L94"></span>
          +<span class="nc" id="L95">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc bnc" id="L96" title="All 2 branches missed.">                    String content = scan.nextLine();</span>
          +<span class="nc" id="L97">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L98">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          +<span class="nc" id="L99">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          +<span class="nc" id="L100">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          +<span class="nc" id="L101">                        choice = scan.nextLine();</span>
          +                        break;
                               }
          -
          -<span class="nc" id="L104">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L105">                    theHub.addElement(s);</span>
          -<span class="nc" id="L106">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc" id="L107">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc bnc" id="L108" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L109">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L110">                    printAvailableCommands();</span>
          -<span class="nc" id="L111">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L112">                    break;</span>
          +<span class="nc" id="L104"></span>
          +<span class="nc" id="L105">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L106">                    theHub.addElement(s);</span>
          +<span class="nc" id="L107">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc" id="L109">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L110">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L111">                    printAvailableCommands();</span>
          +<span class="nc" id="L112">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'a':
          -                    // add a new album
          -<span class="nc" id="L115">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L116">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L117">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L118">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L119">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L120">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L121">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L122">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L123">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L124">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L125">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L126">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc" id="L127">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc bnc" id="L128" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L129">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L130">                    printAvailableCommands();</span>
          -<span class="nc" id="L131">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L132">                    break;</span>
          +<span class="nc" id="L115">                    // add a new album</span>
          +<span class="nc" id="L116">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L117">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L118">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L119">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L120">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L121">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L122">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L124">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L125">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L126">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L127">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc bnc" id="L128" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc" id="L129">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L130">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L131">                    printAvailableCommands();</span>
          +<span class="nc" id="L132">                    choice = scan.nextLine();</span>
          +                    break;
                           case '+':
          -                    //add a song to an album:
          -<span class="nc" id="L135">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L136">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc" id="L137">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc bnc" id="L138" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          -<span class="nc" id="L139">                        AudioElement ae = itae.next();</span>
          -<span class="nc bnc" id="L140" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L141">                    }</span>
          -<span class="nc" id="L142">                    String songTitle = scan.nextLine();</span>
          -
          -<span class="nc" id="L144">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc" id="L145">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc bnc" id="L146" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L147">                        Album al = ait.next();</span>
          -<span class="nc" id="L148">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L149">                    }</span>
          -<span class="nc" id="L150">                    String titleAlbum = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L152">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L153">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L154">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L155">                    }</span>
          -<span class="nc" id="L156">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L157">                    printAvailableCommands();</span>
          -<span class="nc" id="L158">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L159">                    break;</span>
          +<span class="nc" id="L135">                    //add a song to an album:</span>
          +<span class="nc" id="L136">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L137">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc" id="L139">                    while (itae.hasNext()) {</span>
          +<span class="nc bnc" id="L140" title="All 2 branches missed.">                        AudioElement ae = itae.next();</span>
          +<span class="nc" id="L141">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L142">                    }</span>
          +                    String songTitle = scan.nextLine();
          +<span class="nc" id="L144"></span>
          +<span class="nc" id="L145">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc" id="L147">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L148">                        Album al = ait.next();</span>
          +<span class="nc" id="L149">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L150">                    }</span>
          +                    String titleAlbum = scan.nextLine();
          +<span class="nc" id="L152">                    try {</span>
          +<span class="nc" id="L153">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L154">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L155">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L156">                    }</span>
          +<span class="nc" id="L157">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L158">                    printAvailableCommands();</span>
          +<span class="nc" id="L159">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'l':
          -                    // add a new audiobook
          -<span class="nc" id="L162">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L163">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L164">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L165">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L166">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L167">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L168">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L169">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L170">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L171">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L172">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L173">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L174">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L175">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L176">                    theHub.addElement(b);</span>
          -<span class="nc" id="L177">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc" id="L178">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc bnc" id="L179" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L180">                    printAvailableCommands();</span>
          -<span class="nc" id="L181">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L182">                    break;</span>
          +<span class="nc" id="L162">                    // add a new audiobook</span>
          +<span class="nc" id="L163">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L164">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L165">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L166">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L167">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L168">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L169">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L170">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L171">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L172">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L173">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L174">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L175">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L176">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L177">                    theHub.addElement(b);</span>
          +<span class="nc" id="L178">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc bnc" id="L179" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc" id="L180">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L181">                    printAvailableCommands();</span>
          +<span class="nc" id="L182">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'p':
          -                    //create a new playlist from existing elements
          -<span class="nc" id="L185">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L186">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc" id="L187">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc bnc" id="L188" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L189">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L190">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L191">                    }</span>
          -<span class="nc" id="L192">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L193">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L194">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L195">                    theHub.addPlaylist(pl);</span>
          -<span class="nc" id="L196">                    System.out.println(&quot;Available elements: &quot;);</span>
          -
          -<span class="nc" id="L198">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc bnc" id="L199" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L200">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L201">                        System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L202">                    }</span>
          -<span class="nc bnc" id="L203" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L204">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -<span class="nc" id="L205">                        String elementTitle = scan.nextLine();</span>
          -                        try {
          -<span class="nc" id="L207">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L208">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L209">                            System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L210">                        }</span>
          -
          -<span class="nc" id="L212">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L213">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L214">                    }</span>
          -<span class="nc" id="L215">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L216">                    printAvailableCommands();</span>
          -<span class="nc" id="L217">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L218">                    break;</span>
          +<span class="nc" id="L185">                    //create a new playlist from existing elements</span>
          +<span class="nc" id="L186">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L187">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc bnc" id="L188" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc" id="L189">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L190">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L191">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L192">                    }</span>
          +<span class="nc" id="L193">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L194">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L195">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L196">                    theHub.addPlaylist(pl);</span>
          +                    System.out.println(&quot;Available elements: &quot;);
          +<span class="nc" id="L198"></span>
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc" id="L200">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L201">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L202">                        System.out.println(ae.getTitle());</span>
          +<span class="nc bnc" id="L203" title="All 2 branches missed.">                    }</span>
          +<span class="nc" id="L204">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L205">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +                        String elementTitle = scan.nextLine();
          +<span class="nc" id="L207">                        try {</span>
          +<span class="nc" id="L208">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L209">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L210">                            System.out.println(ex.getMessage());</span>
          +                        }
          +<span class="nc" id="L212"></span>
          +<span class="nc" id="L213">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L214">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L215">                    }</span>
          +<span class="nc" id="L216">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L217">                    printAvailableCommands();</span>
          +<span class="nc" id="L218">                    choice = scan.nextLine();</span>
          +                    break;
                           case '-':
          -                    //delete a playlist
          -<span class="nc" id="L221">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc" id="L222">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc bnc" id="L223" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L224">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L225">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L226">                    }</span>
          -<span class="nc" id="L227">                    String plTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L229">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L230">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L231">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L232">                    }</span>
          -<span class="nc" id="L233">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L234">                    printAvailableCommands();</span>
          -<span class="nc" id="L235">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L236">                    break;</span>
          +<span class="nc" id="L221">                    //delete a playlist</span>
          +<span class="nc" id="L222">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc bnc" id="L223" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc" id="L224">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L225">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L226">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L227">                    }</span>
          +                    String plTitle = scan.nextLine();
          +<span class="nc" id="L229">                    try {</span>
          +<span class="nc" id="L230">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L231">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L232">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L233">                    }</span>
          +<span class="nc" id="L234">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L235">                    printAvailableCommands();</span>
          +<span class="nc" id="L236">                    choice = scan.nextLine();</span>
          +                    break;
                           case 's':
          -                    //save elements, albums, playlists
          -<span class="nc" id="L239">                    theHub.saveElements();</span>
          -<span class="nc" id="L240">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L241">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L242">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L243">                    printAvailableCommands();</span>
          -<span class="nc" id="L244">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L245">                    break;</span>
          -                case 'o':
          +<span class="nc" id="L239">                    //save elements, albums, playlists</span>
          +<span class="nc" id="L240">                    theHub.saveElements();</span>
          +<span class="nc" id="L241">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L242">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L243">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L244">                    printAvailableCommands();</span>
          +<span class="nc" id="L245">                    choice = scan.nextLine();</span>
          +                    break;
          +                case 'r':
          +<span class="nc" id="L248">                    //search a music</span>
          +<span class="nc" id="L249">                    theHub.searchAudioElement();</span>
          +<span class="nc" id="L250">                    printAvailableCommands();</span>
          +<span class="nc" id="L251">                case 'o':</span>
                               //consult the app logs
          -<span class="nc" id="L248">                    LogHandler.read();</span>
          -<span class="nc" id="L249">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          -<span class="nc" id="L250">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L251">                    break;</span>
          -                default:
          -
          -<span class="nc" id="L254">                    break;</span>
          +                    LogHandler.read();
          +<span class="nc" id="L254">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +                    choice = scan.nextLine();
          +                    break;
          +<span class="nc" id="L257">                default:</span>
          +<span class="nc" id="L258"></span>
          +                    break;
                       }
          -        }
          -<span class="nc" id="L257">        scan.close();</span>
          -<span class="nc" id="L258">    }</span>
          +<span class="nc" id="L261">        }</span>
          +<span class="nc" id="L262">        scan.close();</span>
          +<span class="nc" id="L263">    }</span>
          +<span class="nc" id="L264"></span>
          +<span class="nc" id="L265">    private static void printAvailableCommands() {</span>
          +<span class="nc" id="L266">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L267">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L268">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L269">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L270">        System.out.println(&quot;r: search audio elements&quot;);</span>
          +<span class="nc" id="L271">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L272">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L273">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L274">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);
          +        System.out.println(&quot;-: delete an existing playlist&quot;);
          +        System.out.println(&quot;s: save elements, albums, playlists&quot;);
          +        System.out.println(&quot;o: consult the app logs&quot;);
          +        System.out.println(&quot;q: quit program&quot;);
          +    }
           
          -    private static void printAvailableCommands() {
          -<span class="nc" id="L261">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L262">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L263">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L264">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L265">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L266">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L267">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L268">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -<span class="nc" id="L269">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          -<span class="nc" id="L270">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          -<span class="nc" id="L271">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          -<span class="nc" id="L272">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          -<span class="nc" id="L273">        System.out.println(&quot;q: quit program&quot;);</span>
          -<span class="nc" id="L274">    }</span>
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/PathValidation.java.html b/target/site/jacoco/musichub.util/PathValidation.java.html
          index 7518e59..c7a0f92 100644
          --- a/target/site/jacoco/musichub.util/PathValidation.java.html
          +++ b/target/site/jacoco/musichub.util/PathValidation.java.html
          @@ -32,13 +32,13 @@ public final class PathValidation {
                */
           
               public static boolean isPathValid(String inputPath) {
          -<span class="fc" id="L35">        boolean isExtensionValid=false;</span>
          +<span class="fc" id="L35">        boolean isExtensionValid = false;</span>
           
           <span class="fc" id="L37">        int index = inputPath.lastIndexOf('.');</span>
          -<span class="fc bfc" id="L38" title="All 2 branches covered.">        if(index &gt; 0) {</span>
          +<span class="fc bfc" id="L38" title="All 2 branches covered.">        if (index &gt; 0) {</span>
           <span class="fc" id="L39">            String extension = inputPath.substring(index + 1);</span>
          -<span class="fc bfc" id="L40" title="All 2 branches covered.">            if (extension.equals(&quot;wav&quot;)){</span>
          -<span class="fc" id="L41">                isExtensionValid=true;</span>
          +<span class="fc bfc" id="L40" title="All 2 branches covered.">            if (extension.equals(&quot;wav&quot;)) {</span>
          +<span class="fc" id="L41">                isExtensionValid = true;</span>
                       }
                   }
           
          diff --git a/target/spoteezer-0.1.0-shaded.jar b/target/spoteezer-0.1.0-shaded.jar
          new file mode 100644
          index 0000000..eb07fdf
          Binary files /dev/null and b/target/spoteezer-0.1.0-shaded.jar differ
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          new file mode 100644
          index 0000000..eb07fdf
          Binary files /dev/null and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          new file mode 100644
          index 0000000..8ce59e6
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          @@ -0,0 +1,59 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.048" tests="1" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.045"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          index 088ebdd..c41bab0 100644
          --- a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          @@ -1,57 +1,58 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.LanguageTest" time="0" tests="1" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.LanguageTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
          -    <property name="sun.jnu.encoding" value="UTF-8"/>
          -    <property name="java.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          -    <property name="java.vm.vendor" value="Homebrew"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
               <property name="sun.arch.data.model" value="64"/>
          -    <property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="os.name" value="Mac OS X"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
               <property name="java.vm.specification.version" value="16"/>
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
          -    <property name="sun.boot.library.path" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home/lib"/>
          -    <property name="sun.java.command" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar /Users/saidbelhadj/Documents/spoteeze/target/surefire 2021-06-27T16-03-35_612-jvmRun1 surefire3577178680756599794tmp surefire_06826483022491615857tmp"/>
          -    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
               <property name="jdk.debug" value="release"/>
          -    <property name="surefire.test.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          -    <property name="user.home" value="/Users/saidbelhadj"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
               <property name="user.language" value="fr"/>
               <property name="java.specification.vendor" value="Oracle Corporation"/>
               <property name="java.version.date" value="2021-04-20"/>
          -    <property name="java.home" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home"/>
          -    <property name="file.separator" value="/"/>
          -    <property name="basedir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
               <property name="java.vm.compressedOopsMode" value="Zero based"/>
               <property name="line.separator" value="&#10;"/>
          -    <property name="java.specification.name" value="Java Platform API Specification"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          -    <property name="surefire.real.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          -    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          -    <property name="java.runtime.version" value="16.0.1+0"/>
          -    <property name="user.name" value="saidbelhadj"/>
          -    <property name="path.separator" value=":"/>
          -    <property name="os.version" value="11.2.3"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
               <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          -    <property name="file.encoding" value="UTF-8"/>
          +    <property name="file.encoding" value="Cp1252"/>
               <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          -    <property name="java.vendor.version" value="Homebrew"/>
          -    <property name="localRepository" value="/Users/saidbelhadj/.m2/repository"/>
          -    <property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="java.io.tmpdir" value="/var/folders/ym/wj3693wx6fdggpnvqkzls90r0000gn/T/"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
               <property name="java.version" value="16.0.1"/>
          -    <property name="user.dir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          -    <property name="os.arch" value="x86_64"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
               <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          -    <property name="java.library.path" value="/Users/saidbelhadj/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
               <property name="java.vm.info" value="mixed mode, sharing"/>
          -    <property name="java.vendor" value="Homebrew"/>
          -    <property name="java.vm.version" value="16.0.1+0"/>
          -    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
          -    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
             <testcase name="testGetter" classname="musichub.business.LanguageTest" time="0"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          new file mode 100644
          index 0000000..3bf4556
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          @@ -0,0 +1,63 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.019" tests="5" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetTitle" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testPlaylistClass" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testPlaylistClassXML" classname="musichub.business.PlayListTest" time="0.007"/>
          +  <testcase name="testCreateXMLElement" classname="musichub.business.PlayListTest" time="0"/>
          +  <testcase name="testGetElements" classname="musichub.business.PlayListTest" time="0.001"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.SongTest.xml b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          new file mode 100644
          index 0000000..83aee37
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          @@ -0,0 +1,64 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.014" tests="6" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0"/>
          +  <testcase name="testToString" classname="musichub.business.SongTest" time="0.005"/>
          +  <testcase name="testSongClassXML" classname="musichub.business.SongTest" time="0.002"/>
          +  <testcase name="testCreateXMLElement" classname="musichub.business.SongTest" time="0"/>
          +  <testcase name="testSongClass" classname="musichub.business.SongTest" time="0.001"/>
          +  <testcase name="testSetGenre" classname="musichub.business.SongTest" time="0.001"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          new file mode 100644
          index 0000000..754079a
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          @@ -0,0 +1,61 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.LogHandlerTest" time="0.023" tests="3" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testLogHandlerClass" classname="musichub.util.LogHandlerTest" time="0"/>
          +  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0.003"/>
          +  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.019"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          new file mode 100644
          index 0000000..8f4f524
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.PathValidationTest" time="0.001" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testPathValidationClass" classname="musichub.util.PathValidationTest" time="0"/>
          +  <testcase name="testIsPathValid" classname="musichub.util.PathValidationTest" time="0"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          new file mode 100644
          index 0000000..72a1c5b
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.127" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.127"/>
          +  <testcase name="testCreateXML" classname="musichub.util.XMLHandlerTest" time="0"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.CategoryTest.txt b/target/surefire-reports/musichub.business.CategoryTest.txt
          new file mode 100644
          index 0000000..b3656ab
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.CategoryTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.CategoryTest
          +-------------------------------------------------------------------------------
          +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 s - in musichub.business.CategoryTest
          diff --git a/target/surefire-reports/musichub.business.LanguageTest.txt b/target/surefire-reports/musichub.business.LanguageTest.txt
          new file mode 100644
          index 0000000..7fd1a58
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.LanguageTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.LanguageTest
          +-------------------------------------------------------------------------------
          +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in musichub.business.LanguageTest
          diff --git a/target/surefire-reports/musichub.business.PlayListTest.txt b/target/surefire-reports/musichub.business.PlayListTest.txt
          new file mode 100644
          index 0000000..7109820
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.PlayListTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.PlayListTest
          +-------------------------------------------------------------------------------
          +Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.PlayListTest
          diff --git a/target/surefire-reports/musichub.business.SongTest.txt b/target/surefire-reports/musichub.business.SongTest.txt
          new file mode 100644
          index 0000000..1b93b96
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.SongTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.SongTest
          +-------------------------------------------------------------------------------
          +Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.SongTest
          diff --git a/target/surefire-reports/musichub.util.LogHandlerTest.txt b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          new file mode 100644
          index 0000000..14d9938
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.LogHandlerTest
          +-------------------------------------------------------------------------------
          +Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 s - in musichub.util.LogHandlerTest
          diff --git a/target/surefire-reports/musichub.util.PathValidationTest.txt b/target/surefire-reports/musichub.util.PathValidationTest.txt
          new file mode 100644
          index 0000000..39ffd40
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.PathValidationTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.PathValidationTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in musichub.util.PathValidationTest
          diff --git a/target/surefire-reports/musichub.util.XMLHandlerTest.txt b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          new file mode 100644
          index 0000000..71a2254
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.XMLHandlerTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.127 s - in musichub.util.XMLHandlerTest
          diff --git a/target/test-classes/musichub/business/CategoryTest.class b/target/test-classes/musichub/business/CategoryTest.class
          new file mode 100644
          index 0000000..df89247
          Binary files /dev/null and b/target/test-classes/musichub/business/CategoryTest.class differ
          diff --git a/target/test-classes/musichub/business/LanguageTest.class b/target/test-classes/musichub/business/LanguageTest.class
          new file mode 100644
          index 0000000..c340860
          Binary files /dev/null and b/target/test-classes/musichub/business/LanguageTest.class differ
          diff --git a/target/test-classes/musichub/business/PlayListTest.class b/target/test-classes/musichub/business/PlayListTest.class
          new file mode 100644
          index 0000000..8a57bea
          Binary files /dev/null and b/target/test-classes/musichub/business/PlayListTest.class differ
          diff --git a/target/test-classes/musichub/business/SongTest.class b/target/test-classes/musichub/business/SongTest.class
          new file mode 100644
          index 0000000..a2c161f
          Binary files /dev/null and b/target/test-classes/musichub/business/SongTest.class differ
          diff --git a/target/test-classes/musichub/util/LogHandlerTest.class b/target/test-classes/musichub/util/LogHandlerTest.class
          new file mode 100644
          index 0000000..fc51cb6
          Binary files /dev/null and b/target/test-classes/musichub/util/LogHandlerTest.class differ
          diff --git a/target/test-classes/musichub/util/PathValidationTest.class b/target/test-classes/musichub/util/PathValidationTest.class
          new file mode 100644
          index 0000000..4e4eb83
          Binary files /dev/null and b/target/test-classes/musichub/util/PathValidationTest.class differ
          diff --git a/target/test-classes/musichub/util/XMLHandlerTest.class b/target/test-classes/musichub/util/XMLHandlerTest.class
          new file mode 100644
          index 0000000..f7994d8
          Binary files /dev/null and b/target/test-classes/musichub/util/XMLHandlerTest.class differ
          -- 
          cgit v1.2.3
          
          
          From c76898f2ab781b6206e41a11a2f5b59ed658c12d Mon Sep 17 00:00:00 2001
          From: manthole <67294267+manthole@users.noreply.github.com>
          Date: Sun, 27 Jun 2021 22:04:38 +0200
          Subject: Fixing conflicts
          
          ---
           src/main/java/musichub/main/Main.java   |   2 +
           src/main/java/musichub/util/Policy.java | 137 ++++++++++++++++++++++++++++++++
           2 files changed, 139 insertions(+)
           create mode 100644 src/main/java/musichub/util/Policy.java
          
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index b0f98f4..bbcae79 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -11,10 +11,12 @@ import java.util.List;
           import java.util.Scanner;
           
           import static musichub.util.PathValidation.isPathValid;
          +import static musichub.util.Policy.showTerm;
           
           public class Main {
               public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException {
           
          +        showTerm();
           
                   MusicHub theHub = new MusicHub();
           
          diff --git a/src/main/java/musichub/util/Policy.java b/src/main/java/musichub/util/Policy.java
          new file mode 100644
          index 0000000..93e7caf
          --- /dev/null
          +++ b/src/main/java/musichub/util/Policy.java
          @@ -0,0 +1,137 @@
          +package musichub.util;
          +
          +import java.io.IOException;
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.StandardOpenOption;
          +import java.sql.Timestamp;
          +import java.util.Scanner;
          +
          +/**
          + * Class ...
          + *
          + * @author Anthony BOULANT
          + * @version 1.0
          + */
          +
          +public final class Policy {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Anthony BOULANT
          +     */
          +
          +    public Policy() {
          +        throw new AssertionError("You just can't instantiate this class.");
          +    }
          +
          +    public static void showTerm() {
          +
          +        String termsAndConditions = "Terms and Conditions\n" +
          +                "\n" +
          +                "\n" +
          +                "In using this website you are deemed to have read and agreed to the following terms and conditions:\n" +
          +                "\n" +
          +                "\n" +
          +                "The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: \"Client\", “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. \"The Company\", “Ourselves”, “We” and \"Us\", refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.\n" +
          +                "\n" +
          +                "\n" +
          +                "Privacy Statement\n" +
          +                "We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible\n" +
          +                "\n" +
          +                "\n" +
          +                "Confidentiality\n" +
          +                "We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.\n" +
          +                "\n" +
          +                "We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.\n" +
          +                "\n" +
          +                "\n" +
          +                "Disclaimer\n" +
          +                "Exclusions and Limitations \n" +
          +                "The information on this web site is provided on an \"as is\" basis. To the fullest extent permitted by law, this Company:\n" +
          +                "\uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and \n" +
          +                "\uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages. \n" +
          +                "This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected. \n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "Cancellation Policy\n" +
          +                "Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.\n" +
          +                "\n" +
          +                "\n" +
          +                "Termination of Agreements and Refunds Policy\n" +
          +                "Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.\n" +
          +                "\n" +
          +                "\n" +
          +                "Availability \n" +
          +                "Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "Copyright Notice \n" +
          +                "Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application. \n" +
          +                "\n" +
          +                "\n" +
          +                "Communication\n" +
          +                "We have several different e-mail addresses for different queries. These, & other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.\n" +
          +                "\n" +
          +                "\n" +
          +                "Force Majeure\n" +
          +                "Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.\n" +
          +                "\n" +
          +                "\n" +
          +                "Waiver\n" +
          +                "Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.\n" +
          +                "\n" +
          +                "\n" +
          +                "General\n" +
          +                "The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.\n" +
          +                "\n" +
          +                "\n" +
          +                "Notification of Changes\n" +
          +                "The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis\n" +
          +                "\n" +
          +                "\n" +
          +                "These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.    \n" +
          +                "© Company Name 2021 All Rights Reserved\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n" +
          +                "\n";
          +
          +        printAgreement();
          +        Scanner scan = new Scanner(System.in);
          +        String choice = scan.nextLine();
          +        choice = choice.toLowerCase();
          +
          +        while (!choice.equals("y")) {
          +            switch (choice.charAt(0)) {
          +                case 'n' -> System.exit(0);
          +                case 'r' -> {
          +                    System.out.println(termsAndConditions);
          +                    printAgreement();
          +                    choice = scan.nextLine();
          +                }
          +                default -> {
          +                    printAgreement();
          +                    choice = scan.nextLine();
          +                }
          +            }
          +        }
          +    }
          +
          +    private static void printAgreement() {
          +        System.out.println("By using our app, do you accept our Terms and Conditions ?");
          +        System.out.println("[YES : y    NO :  n    READ : r]");
          +    }
          +}
          -- 
          cgit v1.2.3
          
          
          From d502b46b9e5504193b25d4aa9a1a03d601344e5d Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 22:16:05 +0200
          Subject: Fixing lower case issue following acceptance test
          
          ---
           src/main/java/musichub/util/Policy.java | 12 +++---------
           1 file changed, 3 insertions(+), 9 deletions(-)
          
          diff --git a/src/main/java/musichub/util/Policy.java b/src/main/java/musichub/util/Policy.java
          index 93e7caf..3d041d1 100644
          --- a/src/main/java/musichub/util/Policy.java
          +++ b/src/main/java/musichub/util/Policy.java
          @@ -1,10 +1,5 @@
           package musichub.util;
           
          -import java.io.IOException;
          -import java.nio.file.Files;
          -import java.nio.file.Path;
          -import java.nio.file.StandardOpenOption;
          -import java.sql.Timestamp;
           import java.util.Scanner;
           
           /**
          @@ -111,8 +106,7 @@ public final class Policy {
           
                   printAgreement();
                   Scanner scan = new Scanner(System.in);
          -        String choice = scan.nextLine();
          -        choice = choice.toLowerCase();
          +        String choice = scan.nextLine().toLowerCase();
           
                   while (!choice.equals("y")) {
                       switch (choice.charAt(0)) {
          @@ -120,11 +114,11 @@ public final class Policy {
                           case 'r' -> {
                               System.out.println(termsAndConditions);
                               printAgreement();
          -                    choice = scan.nextLine();
          +                    choice = scan.nextLine().toLowerCase();
                           }
                           default -> {
                               printAgreement();
          -                    choice = scan.nextLine();
          +                    choice = scan.nextLine().toLowerCase();
                           }
                       }
                   }
          -- 
          cgit v1.2.3
          
          
          From 2b45d7bea0d7cb1031b3cdac54e676c183b8074e Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 22:23:57 +0200
          Subject: mvn package
          
          ---
           log/spoteezer.log                                  |   3 +-
           target/classes/musichub/business/MusicHub.class    | Bin 12505 -> 12507 bytes
           target/classes/musichub/main/Main.class            | Bin 10771 -> 10828 bytes
           target/jacoco.exec                                 | Bin 30542 -> 45918 bytes
           target/original-spoteezer-0.1.0.jar                | Bin 33454 -> 39074 bytes
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   5 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/MusicHub.java.html    |  30 +-
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 502 +++++++++++----------
           target/spoteezer-0.1.0-shaded.jar                  | Bin 369356 -> 374992 bytes
           target/spoteezer-0.1.0.jar                         | Bin 369356 -> 374992 bytes
           .../TEST-musichub.business.CategoryTest.xml        |   8 +-
           .../TEST-musichub.business.LanguageTest.xml        |   4 +-
           .../TEST-musichub.business.PlayListTest.xml        |  10 +-
           .../TEST-musichub.business.SongTest.xml            |  14 +-
           .../TEST-musichub.util.LogHandlerTest.xml          |   8 +-
           .../TEST-musichub.util.PathValidationTest.xml      |   4 +-
           .../TEST-musichub.util.XMLHandlerTest.xml          |   8 +-
           .../musichub.business.CategoryTest.txt             |   2 +-
           .../musichub.business.PlayListTest.txt             |   2 +-
           .../musichub.business.SongTest.txt                 |   2 +-
           .../musichub.util.XMLHandlerTest.txt               |   2 +-
           26 files changed, 313 insertions(+), 301 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 7f2fbd4..5251bff 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -2,4 +2,5 @@
           [2021-06-27 13:23:02.181] WARNING: The music file was not found with the path you've provided or the extension is not .wav
           [2021-06-27 13:23:40.286] TEST: JUnit test
           [2021-06-27 17:01:30.263] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          -[2021-06-27 18:57:02.639] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 18:57:02.639] TEST: JUnit test
          +[2021-06-27 22:23:27.617] TEST: JUnit test
          \ No newline at end of file
          diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class
          index 41af154..8614d25 100644
          Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index 802184b..6a37d2d 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 407278b..c71133e 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          index 49fe805..dee388f 100644
          Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index 88d1333..b7992f7 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 023 of 2 825</td><td class="ctr2">28 %</td><td class="bar">191 of 214</td><td class="ctr2">10 %</td><td class="ctr1">164</td><td class="ctr2">213</td><td class="ctr1">569</td><td class="ctr2">751</td><td class="ctr1">53</td><td class="ctr2">93</td><td class="ctr1">9</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="82" height="10" title="1 412" alt="1 412"/><img src="jacoco-resources/greenbar.gif" width="37" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">31 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="106" height="10" title="150" alt="150"/><img src="jacoco-resources/greenbar.gif" width="13" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">11 %</td><td class="ctr1" id="f0">134</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">359</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">50</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 167 of 2 969</td><td class="ctr2">27 %</td><td class="bar">207 of 230</td><td class="ctr2">10 %</td><td class="ctr1">177</td><td class="ctr2">226</td><td class="ctr1">612</td><td class="ctr2">794</td><td class="ctr1">57</td><td class="ctr2">97</td><td class="ctr1">10</td><td class="ctr2">20</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="83" height="10" title="1 483" alt="1 483"/><img src="jacoco-resources/greenbar.gif" width="36" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">30 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="160" alt="160"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">10 %</td><td class="ctr1" id="f0">140</td><td class="ctr2" id="g0">178</td><td class="ctr1" id="h0">373</td><td class="ctr2" id="i0">513</td><td class="ctr1" id="j0">51</td><td class="ctr2" id="k0">82</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="625" alt="625"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="28" height="10" title="42" alt="42"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">31</td><td class="ctr2" id="g1">31</td><td class="ctr1" id="h1">215</td><td class="ctr2" id="i1">215</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="59" alt="59"/><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">71 %</td><td class="bar" id="d2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="5" alt="5"/><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">44 %</td><td class="ctr1" id="f2">6</td><td class="ctr2" id="g2">17</td><td class="ctr1" id="h2">24</td><td class="ctr2" id="i2">66</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k1">12</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">4</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index eb4b943..59fcb45 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-7357f010</span></td><td>27 juin 2021, 22:23:27</td><td>27 juin 2021, 22:23:27</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 9effb4f..555d233 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -2,12 +2,13 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_
           spoteezer,musichub.util,PathValidation,0,39,0,4,0,10,0,4,0,2
           spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
           spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
          +spoteezer,musichub.util,Policy,53,0,5,0,20,0,6,0,3,0
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Language,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
          -spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
          +spoteezer,musichub.business,MusicHub,874,0,124,0,209,0,85,0,23,0
           spoteezer,musichub.business,Category,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
          @@ -17,4 +18,4 @@ spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
           spoteezer,musichub.business,AudioElement,85,181,9,2,30,42,11,5,4,5
          -spoteezer,musichub.main,Main,605,0,41,0,206,0,30,0,3,0
          +spoteezer,musichub.main,Main,625,0,42,0,215,0,31,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 2e1332b..e10770f 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1412" covered="651"/><counter type="BRANCH" missed="150" covered="19"/><counter type="LINE" missed="359" covered="140"/><counter type="COMPLEXITY" missed="134" covered="38"/><counter type="METHOD" missed="50" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2023" covered="802"/><counter type="BRANCH" missed="191" covered="23"/><counter type="LINE" missed="569" covered="182"/><counter type="COMPLEXITY" missed="164" covered="49"/><counter type="METHOD" missed="53" covered="40"/><counter type="CLASS" missed="9" covered="10"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><sessioninfo id="DESKTOP-M4INQND-7357f010" start="1624825407091" dump="1624825407773"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/Policy" sourcefilename="Policy.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="showTerm" desc="()V" line="27"><counter type="INSTRUCTION" missed="39" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAgreement" desc="()V" line="128"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Policy.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="27" mi="2" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="5" ci="0" mb="0" cb="0"/><line nr="109" mi="4" ci="0" mb="0" cb="0"/><line nr="111" mi="4" ci="0" mb="2" cb="0"/><line nr="112" mi="4" ci="0" mb="3" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="125" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="59" covered="151"/><counter type="BRANCH" missed="5" covered="4"/><counter type="LINE" missed="24" covered="42"/><counter type="COMPLEXITY" missed="6" covered="11"/><counter type="METHOD" missed="3" covered="9"/><counter type="CLASS" missed="1" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="searchAudioElement" desc="()V" line="344"><counter type="INSTRUCTION" missed="71" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="874" covered="0"/><counter type="BRANCH" missed="124" covered="0"/><counter type="LINE" missed="209" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="23" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><line nr="344" mi="5" ci="0" mb="0" cb="0"/><line nr="345" mi="3" ci="0" mb="0" cb="0"/><line nr="346" mi="5" ci="0" mb="0" cb="0"/><line nr="347" mi="4" ci="0" mb="0" cb="0"/><line nr="348" mi="11" ci="0" mb="2" cb="0"/><line nr="349" mi="14" ci="0" mb="4" cb="0"/><line nr="350" mi="4" ci="0" mb="0" cb="0"/><line nr="351" mi="3" ci="0" mb="0" cb="0"/><line nr="353" mi="1" ci="0" mb="0" cb="0"/><line nr="355" mi="3" ci="0" mb="2" cb="0"/><line nr="356" mi="5" ci="0" mb="0" cb="0"/><line nr="358" mi="4" ci="0" mb="2" cb="0"/><line nr="359" mi="8" ci="0" mb="0" cb="0"/><line nr="361" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="901" covered="0"/><counter type="BRANCH" missed="124" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="91" covered="0"/><counter type="METHOD" missed="29" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1483" covered="651"/><counter type="BRANCH" missed="160" covered="19"/><counter type="LINE" missed="373" covered="140"/><counter type="COMPLEXITY" missed="140" covered="38"/><counter type="METHOD" missed="51" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="16"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="19"><counter type="INSTRUCTION" missed="579" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="276"><counter type="INSTRUCTION" missed="43" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="16" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="4" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="5" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="2" cb="0"/><line nr="33" mi="4" ci="0" mb="2" cb="0"/><line nr="34" mi="4" ci="0" mb="16" cb="0"/><line nr="36" mi="2" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="4" ci="0" mb="0" cb="0"/><line nr="44" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="3" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="1" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="3" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="76" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="1" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="3" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="3" ci="0" mb="2" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="101" mi="3" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="1" ci="0" mb="0" cb="0"/><line nr="107" mi="9" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="10" ci="0" mb="2" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="1" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="1" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="3" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="4" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="8" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="3" ci="0" mb="0" cb="0"/><line nr="131" mi="10" ci="0" mb="2" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="1" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="1" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="140" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="2" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="148" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="3" ci="0" mb="2" cb="0"/><line nr="150" mi="4" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="155" mi="4" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="157" mi="4" ci="0" mb="0" cb="0"/><line nr="158" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="1" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="1" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="4" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="10" ci="0" mb="0" cb="0"/><line nr="179" mi="3" ci="0" mb="0" cb="0"/><line nr="180" mi="3" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="10" ci="0" mb="2" cb="0"/><line nr="183" mi="1" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="1" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="3" ci="0" mb="2" cb="0"/><line nr="192" mi="4" ci="0" mb="0" cb="0"/><line nr="193" mi="4" ci="0" mb="0" cb="0"/><line nr="194" mi="1" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="197" mi="5" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="0" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="2" cb="0"/><line nr="203" mi="4" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="5" ci="0" mb="2" cb="0"/><line nr="207" mi="3" ci="0" mb="0" cb="0"/><line nr="208" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="4" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="4" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="3" ci="0" mb="0" cb="0"/><line nr="217" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="1" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="0" cb="0"/><line nr="221" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="225" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="2" cb="0"/><line nr="227" mi="4" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="234" mi="4" ci="0" mb="0" cb="0"/><line nr="235" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="3" ci="0" mb="0" cb="0"/><line nr="237" mi="1" ci="0" mb="0" cb="0"/><line nr="238" mi="3" ci="0" mb="0" cb="0"/><line nr="239" mi="1" ci="0" mb="0" cb="0"/><line nr="242" mi="2" ci="0" mb="0" cb="0"/><line nr="243" mi="2" ci="0" mb="0" cb="0"/><line nr="244" mi="2" ci="0" mb="0" cb="0"/><line nr="245" mi="3" ci="0" mb="0" cb="0"/><line nr="246" mi="1" ci="0" mb="0" cb="0"/><line nr="247" mi="3" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="2" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="255" mi="4" ci="0" mb="0" cb="0"/><line nr="257" mi="1" ci="0" mb="0" cb="0"/><line nr="258" mi="5" ci="0" mb="0" cb="0"/><line nr="259" mi="2" ci="0" mb="0" cb="0"/><line nr="260" mi="1" ci="0" mb="0" cb="0"/><line nr="263" mi="1" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="269" mi="1" ci="0" mb="0" cb="0"/><line nr="272" mi="2" ci="0" mb="0" cb="0"/><line nr="273" mi="1" ci="0" mb="0" cb="0"/><line nr="276" mi="3" ci="0" mb="0" cb="0"/><line nr="277" mi="3" ci="0" mb="0" cb="0"/><line nr="278" mi="3" ci="0" mb="0" cb="0"/><line nr="279" mi="3" ci="0" mb="0" cb="0"/><line nr="280" mi="3" ci="0" mb="0" cb="0"/><line nr="281" mi="3" ci="0" mb="0" cb="0"/><line nr="282" mi="3" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="0" cb="0"/><line nr="284" mi="3" ci="0" mb="0" cb="0"/><line nr="285" mi="3" ci="0" mb="0" cb="0"/><line nr="286" mi="3" ci="0" mb="0" cb="0"/><line nr="287" mi="3" ci="0" mb="0" cb="0"/><line nr="288" mi="3" ci="0" mb="0" cb="0"/><line nr="289" mi="3" ci="0" mb="0" cb="0"/><line nr="290" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2167" covered="802"/><counter type="BRANCH" missed="207" covered="23"/><counter type="LINE" missed="612" covered="182"/><counter type="COMPLEXITY" missed="177" covered="49"/><counter type="METHOD" missed="57" covered="40"/><counter type="CLASS" missed="10" covered="10"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          index d150675..ec5e661 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.java.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -340,25 +340,25 @@ public class MusicHub {
           
           <span class="nc" id="L341">    }</span>
           
          -    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
          -        Scanner scanner = new Scanner(System.in);
          -        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);
          -        String word = scanner.next().toLowerCase(Locale.ROOT);
          -        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();
          -        for(AudioElement el : elements){
          -            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){
          -                searchResult.add(el);
          -                System.out.println(el);
          +    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException, NoElementFoundException {
          +<span class="nc" id="L344">        Scanner scanner = new Scanner(System.in);</span>
          +<span class="nc" id="L345">        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);</span>
          +<span class="nc" id="L346">        String word = scanner.next().toLowerCase(Locale.ROOT);</span>
          +<span class="nc" id="L347">        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L348" title="All 2 branches missed.">        for(AudioElement el : elements){</span>
          +<span class="nc bnc" id="L349" title="All 4 branches missed.">            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){</span>
          +<span class="nc" id="L350">                searchResult.add(el);</span>
          +<span class="nc" id="L351">                System.out.println(el);</span>
                       }
          -        }
          +<span class="nc" id="L353">        }</span>
           
          -        if(searchResult.isEmpty()){
          -            System.err.println(&quot;Aucun résultat pour votre recherche&quot;);
          +<span class="nc bnc" id="L355" title="All 2 branches missed.">        if(searchResult.isEmpty()){</span>
          +<span class="nc" id="L356">            throw new NoElementFoundException(&quot;Any result for your search&quot;);</span>
                   }
          -        if (searchResult.size()==1){
          -            this.getAudioElement(searchResult, searchResult.get(0).getTitle());
          +<span class="nc bnc" id="L358" title="All 2 branches missed.">        if (searchResult.size()==1){</span>
          +<span class="nc" id="L359">            this.getAudioElement(searchResult, searchResult.get(0).getTitle());</span>
                   }
          -    }
          +<span class="nc" id="L361">    }</span>
           
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 359d516..f7cd669 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 483 of 2 134</td><td class="ctr2">30 %</td><td class="bar">160 of 179</td><td class="ctr2">10 %</td><td class="ctr1">140</td><td class="ctr2">178</td><td class="ctr1">373</td><td class="ctr2">513</td><td class="ctr1">51</td><td class="ctr2">82</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="874" alt="874"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="124" alt="124"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">209</td><td class="ctr2" id="i0">209</td><td class="ctr1" id="j0">23</td><td class="ctr2" id="k0">23</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 21f0bb6..15d2893 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 483 of 2 134</td><td class="ctr2">30 %</td><td class="bar">160 of 179</td><td class="ctr2">10 %</td><td class="ctr1">140</td><td class="ctr2">178</td><td class="ctr1">373</td><td class="ctr2">513</td><td class="ctr1">51</td><td class="ctr2">82</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="901" alt="901"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="124" alt="124"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">91</td><td class="ctr2" id="g0">91</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">29</td><td class="ctr2" id="k0">29</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index bee2491..121cc55 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -11,273 +11,283 @@ import java.util.List;
           import java.util.Scanner;
           
           import static musichub.util.PathValidation.isPathValid;
          +import static musichub.util.Policy.showTerm;
           
          -<span class="nc" id="L15">public class Main {</span>
          +<span class="nc" id="L16">public class Main {</span>
               public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException {
           
          -<span class="nc" id="L18"></span>
          -        MusicHub theHub = new MusicHub();
          -<span class="nc" id="L20"></span>
          -        System.out.println(&quot;Type h for available commands&quot;);
          +<span class="nc" id="L19">        showTerm();</span>
           
          -<span class="nc" id="L23"></span>
          -<span class="nc" id="L24">        Scanner scan = new Scanner(System.in);</span>
          -        String choice = scan.nextLine();
          +<span class="nc" id="L21">        MusicHub theHub = new MusicHub();</span>
          +
          +<span class="nc" id="L23">        System.out.println(&quot;Type h for available commands&quot;);</span>
          +
          +
          +<span class="nc" id="L26">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L27">        String choice = scan.nextLine();</span>
           
                   String albumTitle;
          -<span class="nc bnc" id="L28" title="All 2 branches missed."></span>
          -        if (choice.length() == 0) System.exit(0);
          -<span class="nc bnc" id="L30" title="All 2 branches missed."></span>
          -<span class="nc bnc" id="L31" title="All 15 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -            switch (choice.charAt(0)) {
          -<span class="nc" id="L33">                case 'q': //added the option directly in the switch instead of the loop</span>
          -                    System.exit(0);
          -<span class="nc" id="L35">                case 'h':</span>
          -<span class="nc" id="L36">                    printAvailableCommands();</span>
          -<span class="nc" id="L37">                    choice = scan.nextLine();</span>
          -                    break;
          +
          +<span class="nc bnc" id="L31" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          +
          +<span class="nc bnc" id="L33" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +<span class="nc bnc" id="L34" title="All 16 branches missed.">            switch (choice.charAt(0)) {</span>
          +                case 'q': //added the option directly in the switch instead of the loop
          +<span class="nc" id="L36">                    System.exit(0);</span>
          +                case 'h':
          +<span class="nc" id="L38">                    printAvailableCommands();</span>
          +<span class="nc" id="L39">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L40">                    break;</span>
                           case 't':
          -<span class="nc" id="L40">                    //album titles, ordered by date</span>
          -<span class="nc" id="L41">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -<span class="nc" id="L42">                    printAvailableCommands();</span>
          -<span class="nc" id="L43">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //album titles, ordered by date
          +<span class="nc" id="L43">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L44">                    printAvailableCommands();</span>
          +<span class="nc" id="L45">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L46">                    break;</span>
                           case 'g':
          -<span class="nc" id="L46">                    //songs of an album, sorted by genre</span>
          -<span class="nc" id="L47">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          -                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          -<span class="nc" id="L49"></span>
          -                    albumTitle = scan.nextLine();
          -<span class="nc" id="L51">                    try {</span>
          -<span class="nc" id="L52">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          -<span class="nc" id="L53">                        System.out.println(songs);</span>
          -<span class="nc" id="L54">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L55">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L56">                    }</span>
          -<span class="nc" id="L57">                    printAvailableCommands();</span>
          -<span class="nc" id="L58">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //songs of an album, sorted by genre
          +<span class="nc" id="L49">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L50">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L52">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L54">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L55">                        System.out.println(songs);</span>
          +<span class="nc" id="L56">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L57">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L58">                    }</span>
          +<span class="nc" id="L59">                    printAvailableCommands();</span>
          +<span class="nc" id="L60">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L61">                    break;</span>
                           case 'd':
          -<span class="nc" id="L61">                    //songs of an album</span>
          -<span class="nc" id="L62">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          -<span class="nc" id="L64"></span>
          -                    albumTitle = scan.nextLine();
          -<span class="nc" id="L66">                    try {</span>
          -<span class="nc" id="L67">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L68">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L69">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L70">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L71">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L72">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L73">                    }</span>
          -<span class="nc" id="L74">                    printAvailableCommands();</span>
          -<span class="nc" id="L75">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //songs of an album
          +<span class="nc" id="L64">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L65">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L67">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L69">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L70">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L71">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L72">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L73">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L74">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L75">                    }</span>
          +<span class="nc" id="L76">                    printAvailableCommands();</span>
          +<span class="nc" id="L77">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L78">                    break;</span>
                           case 'u':
          -<span class="nc" id="L78">                    //audiobooks ordered by author</span>
          -<span class="nc" id="L79">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L80">                    printAvailableCommands();</span>
          -<span class="nc" id="L81">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //audiobooks ordered by author
          +<span class="nc" id="L81">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L82">                    printAvailableCommands();</span>
          +<span class="nc" id="L83">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L84">                    break;</span>
                           case 'c':
          -<span class="nc" id="L84">                    // add a new song</span>
          -<span class="nc" id="L85">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L86">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L87">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L88">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L89">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L90">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L91">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L92">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -                    int length = Integer.parseInt(scan.nextLine());
          -<span class="nc" id="L94"></span>
          -<span class="nc" id="L95">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc bnc" id="L96" title="All 2 branches missed.">                    String content = scan.nextLine();</span>
          -<span class="nc" id="L97">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L98">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          -<span class="nc" id="L99">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          -<span class="nc" id="L100">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          -<span class="nc" id="L101">                        choice = scan.nextLine();</span>
          -                        break;
          +                    // add a new song
          +<span class="nc" id="L87">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L88">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L89">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L91">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L92">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L93">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L94">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L95">                    int length = Integer.parseInt(scan.nextLine());</span>
          +
          +<span class="nc" id="L97">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L98">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L99" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L100">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          +<span class="nc" id="L101">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          +<span class="nc" id="L102">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          +<span class="nc" id="L103">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L104">                        break;</span>
                               }
          -<span class="nc" id="L104"></span>
          -<span class="nc" id="L105">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L106">                    theHub.addElement(s);</span>
          -<span class="nc" id="L107">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc bnc" id="L108" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc" id="L109">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L110">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L111">                    printAvailableCommands();</span>
          -<span class="nc" id="L112">                    choice = scan.nextLine();</span>
          -                    break;
          +
          +<span class="nc" id="L107">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L108">                    theHub.addElement(s);</span>
          +<span class="nc" id="L109">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L110">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L111" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L112">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L113">                    printAvailableCommands();</span>
          +<span class="nc" id="L114">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L115">                    break;</span>
                           case 'a':
          -<span class="nc" id="L115">                    // add a new album</span>
          -<span class="nc" id="L116">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L117">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L118">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L119">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L120">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L121">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L122">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L123">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L124">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L125">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L126">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L127">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc bnc" id="L128" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc" id="L129">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L130">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L131">                    printAvailableCommands();</span>
          -<span class="nc" id="L132">                    choice = scan.nextLine();</span>
          -                    break;
          +                    // add a new album
          +<span class="nc" id="L118">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L119">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L120">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L121">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L122">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L124">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L125">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L126">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L127">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L128">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L129">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L130">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L131" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L132">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L133">                    printAvailableCommands();</span>
          +<span class="nc" id="L134">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L135">                    break;</span>
                           case '+':
          -<span class="nc" id="L135">                    //add a song to an album:</span>
          -<span class="nc" id="L136">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L137">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc bnc" id="L138" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc" id="L139">                    while (itae.hasNext()) {</span>
          -<span class="nc bnc" id="L140" title="All 2 branches missed.">                        AudioElement ae = itae.next();</span>
          -<span class="nc" id="L141">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L142">                    }</span>
          -                    String songTitle = scan.nextLine();
          -<span class="nc" id="L144"></span>
          -<span class="nc" id="L145">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc bnc" id="L146" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc" id="L147">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L148">                        Album al = ait.next();</span>
          -<span class="nc" id="L149">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L150">                    }</span>
          -                    String titleAlbum = scan.nextLine();
          -<span class="nc" id="L152">                    try {</span>
          -<span class="nc" id="L153">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L154">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L155">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L156">                    }</span>
          -<span class="nc" id="L157">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L158">                    printAvailableCommands();</span>
          -<span class="nc" id="L159">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //add a song to an album:
          +<span class="nc" id="L138">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L139">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L140">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L141" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L142">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L143" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L144">                    }</span>
          +<span class="nc" id="L145">                    String songTitle = scan.nextLine();</span>
          +
          +<span class="nc" id="L147">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L148">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L149" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L150">                        Album al = ait.next();</span>
          +<span class="nc" id="L151">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L152">                    }</span>
          +<span class="nc" id="L153">                    String titleAlbum = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L155">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L156">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L157">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L158">                    }</span>
          +<span class="nc" id="L159">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L160">                    printAvailableCommands();</span>
          +<span class="nc" id="L161">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L162">                    break;</span>
                           case 'l':
          -<span class="nc" id="L162">                    // add a new audiobook</span>
          -<span class="nc" id="L163">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L164">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L165">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L166">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L167">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L168">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L169">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L170">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L171">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L172">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L173">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L174">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L175">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L176">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L177">                    theHub.addElement(b);</span>
          -<span class="nc" id="L178">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc bnc" id="L179" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc" id="L180">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L181">                    printAvailableCommands();</span>
          -<span class="nc" id="L182">                    choice = scan.nextLine();</span>
          -                    break;
          +                    // add a new audiobook
          +<span class="nc" id="L165">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L166">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L167">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L168">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L169">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L170">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L171">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L172">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L173">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L174">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L175">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L176">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L177">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L178">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L179">                    theHub.addElement(b);</span>
          +<span class="nc" id="L180">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L181">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L182" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L183">                    printAvailableCommands();</span>
          +<span class="nc" id="L184">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L185">                    break;</span>
                           case 'p':
          -<span class="nc" id="L185">                    //create a new playlist from existing elements</span>
          -<span class="nc" id="L186">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L187">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc bnc" id="L188" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc" id="L189">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L190">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L191">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L192">                    }</span>
          -<span class="nc" id="L193">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L194">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L195">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L196">                    theHub.addPlaylist(pl);</span>
          -                    System.out.println(&quot;Available elements: &quot;);
          -<span class="nc" id="L198"></span>
          -<span class="nc bnc" id="L199" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc" id="L200">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L201">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L202">                        System.out.println(ae.getTitle());</span>
          -<span class="nc bnc" id="L203" title="All 2 branches missed.">                    }</span>
          -<span class="nc" id="L204">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L205">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -                        String elementTitle = scan.nextLine();
          -<span class="nc" id="L207">                        try {</span>
          -<span class="nc" id="L208">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L209">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L210">                            System.out.println(ex.getMessage());</span>
          -                        }
          -<span class="nc" id="L212"></span>
          -<span class="nc" id="L213">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L214">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L215">                    }</span>
          -<span class="nc" id="L216">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L217">                    printAvailableCommands();</span>
          -<span class="nc" id="L218">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //create a new playlist from existing elements
          +<span class="nc" id="L188">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L189">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L190">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L191" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L192">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L193">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L194">                    }</span>
          +<span class="nc" id="L195">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L196">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L197">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L198">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L199">                    System.out.println(&quot;Available elements: &quot;);</span>
          +
          +<span class="nc" id="L201">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L202" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L203">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L204">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L205">                    }</span>
          +<span class="nc bnc" id="L206" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L207">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L208">                        String elementTitle = scan.nextLine();</span>
          +                        try {
          +<span class="nc" id="L210">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L211">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L212">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L213">                        }</span>
          +
          +<span class="nc" id="L215">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L216">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L217">                    }</span>
          +<span class="nc" id="L218">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L219">                    printAvailableCommands();</span>
          +<span class="nc" id="L220">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L221">                    break;</span>
                           case '-':
          -<span class="nc" id="L221">                    //delete a playlist</span>
          -<span class="nc" id="L222">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc bnc" id="L223" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc" id="L224">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L225">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L226">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L227">                    }</span>
          -                    String plTitle = scan.nextLine();
          -<span class="nc" id="L229">                    try {</span>
          -<span class="nc" id="L230">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L231">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L232">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L233">                    }</span>
          -<span class="nc" id="L234">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L235">                    printAvailableCommands();</span>
          -<span class="nc" id="L236">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //delete a playlist
          +<span class="nc" id="L224">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L225">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L226" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L227">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L228">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L229">                    }</span>
          +<span class="nc" id="L230">                    String plTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L232">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L233">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L234">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L235">                    }</span>
          +<span class="nc" id="L236">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L237">                    printAvailableCommands();</span>
          +<span class="nc" id="L238">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L239">                    break;</span>
                           case 's':
          -<span class="nc" id="L239">                    //save elements, albums, playlists</span>
          -<span class="nc" id="L240">                    theHub.saveElements();</span>
          -<span class="nc" id="L241">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L242">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L243">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L244">                    printAvailableCommands();</span>
          -<span class="nc" id="L245">                    choice = scan.nextLine();</span>
          -                    break;
          +                    //save elements, albums, playlists
          +<span class="nc" id="L242">                    theHub.saveElements();</span>
          +<span class="nc" id="L243">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L244">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L245">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L246">                    printAvailableCommands();</span>
          +<span class="nc" id="L247">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L248">                    break;</span>
                           case 'r':
          -<span class="nc" id="L248">                    //search a music</span>
          -<span class="nc" id="L249">                    theHub.searchAudioElement();</span>
          -<span class="nc" id="L250">                    printAvailableCommands();</span>
          -<span class="nc" id="L251">                case 'o':</span>
          +                    //search a music
          +                    try {
          +<span class="nc" id="L252">                        theHub.searchAudioElement();</span>
          +                    }
          +<span class="nc" id="L254">                    catch (NoElementFoundException e){</span>
          +<span class="nc" id="L255">                        System.err.println(e.getMessage());</span>
          +                    }
          +<span class="nc" id="L257">                    catch (java.io.FileNotFoundException e){</span>
          +<span class="nc" id="L258">                        System.err.println(e.getMessage()+&quot; Please create a file with the extension .wav inside the song folder at root of the app&quot;);</span>
          +<span class="nc" id="L259">                    }</span>
          +<span class="nc" id="L260">                    printAvailableCommands();</span>
          +                case 'o':
                               //consult the app logs
          -                    LogHandler.read();
          -<span class="nc" id="L254">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          -                    choice = scan.nextLine();
          -                    break;
          -<span class="nc" id="L257">                default:</span>
          -<span class="nc" id="L258"></span>
          -                    break;
          +<span class="nc" id="L263">                    LogHandler.read();</span>
          +<span class="nc" id="L264">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L265">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L266">                    break;</span>
          +                default:
          +
          +<span class="nc" id="L269">                    break;</span>
                       }
          -<span class="nc" id="L261">        }</span>
          -<span class="nc" id="L262">        scan.close();</span>
          -<span class="nc" id="L263">    }</span>
          -<span class="nc" id="L264"></span>
          -<span class="nc" id="L265">    private static void printAvailableCommands() {</span>
          -<span class="nc" id="L266">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L267">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L268">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L269">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L270">        System.out.println(&quot;r: search audio elements&quot;);</span>
          -<span class="nc" id="L271">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L272">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L273">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L274">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);
          -        System.out.println(&quot;-: delete an existing playlist&quot;);
          -        System.out.println(&quot;s: save elements, albums, playlists&quot;);
          -        System.out.println(&quot;o: consult the app logs&quot;);
          -        System.out.println(&quot;q: quit program&quot;);
          -    }
          +        }
          +<span class="nc" id="L272">        scan.close();</span>
          +<span class="nc" id="L273">    }</span>
          +
          +    private static void printAvailableCommands() {
          +<span class="nc" id="L276">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L277">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L278">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L279">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L280">        System.out.println(&quot;r: search audio elements&quot;);</span>
          +<span class="nc" id="L281">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L282">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L283">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L284">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L285">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L286">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L287">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L288">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          +<span class="nc" id="L289">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L290">    }</span>
           
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0-shaded.jar b/target/spoteezer-0.1.0-shaded.jar
          index eb07fdf..4c8e6af 100644
          Binary files a/target/spoteezer-0.1.0-shaded.jar and b/target/spoteezer-0.1.0-shaded.jar differ
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index eb07fdf..4c8e6af 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          index 8ce59e6..bb2ca30 100644
          --- a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.048" tests="1" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.047" tests="1" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,5 +55,5 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.045"/>
          +  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.044"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          index c41bab0..5ebb15c 100644
          --- a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          index 3bf4556..dde9373 100644
          --- a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.019" tests="5" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.018" tests="5" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,9 +55,9 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testGetTitle" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testGetTitle" classname="musichub.business.PlayListTest" time="0.002"/>
             <testcase name="testPlaylistClass" classname="musichub.business.PlayListTest" time="0.001"/>
          -  <testcase name="testPlaylistClassXML" classname="musichub.business.PlayListTest" time="0.007"/>
          +  <testcase name="testPlaylistClassXML" classname="musichub.business.PlayListTest" time="0.006"/>
             <testcase name="testCreateXMLElement" classname="musichub.business.PlayListTest" time="0"/>
             <testcase name="testGetElements" classname="musichub.business.PlayListTest" time="0.001"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.SongTest.xml b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          index 83aee37..2bfbc93 100644
          --- a/target/surefire-reports/TEST-musichub.business.SongTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.014" tests="6" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.019" tests="6" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,10 +55,10 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0"/>
          -  <testcase name="testToString" classname="musichub.business.SongTest" time="0.005"/>
          +  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0.005"/>
          +  <testcase name="testToString" classname="musichub.business.SongTest" time="0.006"/>
             <testcase name="testSongClassXML" classname="musichub.business.SongTest" time="0.002"/>
             <testcase name="testCreateXMLElement" classname="musichub.business.SongTest" time="0"/>
          -  <testcase name="testSongClass" classname="musichub.business.SongTest" time="0.001"/>
          -  <testcase name="testSetGenre" classname="musichub.business.SongTest" time="0.001"/>
          +  <testcase name="testSongClass" classname="musichub.business.SongTest" time="0"/>
          +  <testcase name="testSetGenre" classname="musichub.business.SongTest" time="0"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          index 754079a..b5707c9 100644
          --- a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -56,6 +56,6 @@
               <property name="java.class.version" value="60.0"/>
             </properties>
             <testcase name="testLogHandlerClass" classname="musichub.util.LogHandlerTest" time="0"/>
          -  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0.003"/>
          -  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.019"/>
          +  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0.002"/>
          +  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.018"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          index 8f4f524..10ec3d9 100644
          --- a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          diff --git a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          index 72a1c5b..3022713 100644
          --- a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.127" tests="2" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.119" tests="2" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,6 +55,6 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.127"/>
          +  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.118"/>
             <testcase name="testCreateXML" classname="musichub.util.XMLHandlerTest" time="0"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.CategoryTest.txt b/target/surefire-reports/musichub.business.CategoryTest.txt
          index b3656ab..3854e92 100644
          --- a/target/surefire-reports/musichub.business.CategoryTest.txt
          +++ b/target/surefire-reports/musichub.business.CategoryTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.business.CategoryTest
           -------------------------------------------------------------------------------
          -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 s - in musichub.business.CategoryTest
          +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.047 s - in musichub.business.CategoryTest
          diff --git a/target/surefire-reports/musichub.business.PlayListTest.txt b/target/surefire-reports/musichub.business.PlayListTest.txt
          index 7109820..c738c60 100644
          --- a/target/surefire-reports/musichub.business.PlayListTest.txt
          +++ b/target/surefire-reports/musichub.business.PlayListTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.business.PlayListTest
           -------------------------------------------------------------------------------
          -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.PlayListTest
          +Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 s - in musichub.business.PlayListTest
          diff --git a/target/surefire-reports/musichub.business.SongTest.txt b/target/surefire-reports/musichub.business.SongTest.txt
          index 1b93b96..4e87759 100644
          --- a/target/surefire-reports/musichub.business.SongTest.txt
          +++ b/target/surefire-reports/musichub.business.SongTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.business.SongTest
           -------------------------------------------------------------------------------
          -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.SongTest
          +Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.SongTest
          diff --git a/target/surefire-reports/musichub.util.XMLHandlerTest.txt b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          index 71a2254..8938cdc 100644
          --- a/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          +++ b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.util.XMLHandlerTest
           -------------------------------------------------------------------------------
          -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.127 s - in musichub.util.XMLHandlerTest
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.119 s - in musichub.util.XMLHandlerTest
          -- 
          cgit v1.2.3
          
          
          From 22d53407aa128c3e3019733ddcbd3bb6dd5541bf Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 22:24:26 +0200
          Subject: mvn package
          
          ---
           target/classes/musichub/util/Policy.class          | Bin 0 -> 10981 bytes
           .../compile/default-compile/inputFiles.lst         |   1 +
           .../testCompile/default-testCompile/inputFiles.lst |   2 +
           target/site/jacoco/musichub.business/MusicHub.html |   2 +-
           target/site/jacoco/musichub.main/Main.html         |   2 +-
           target/site/jacoco/musichub.main/index.html        |   2 +-
           target/site/jacoco/musichub.main/index.source.html |   2 +-
           target/site/jacoco/musichub.util/Policy.html       |   1 +
           target/site/jacoco/musichub.util/Policy.java.html  | 132 +++++++++++++++++++++
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           11 files changed, 142 insertions(+), 6 deletions(-)
           create mode 100644 target/classes/musichub/util/Policy.class
           create mode 100644 target/site/jacoco/musichub.util/Policy.html
           create mode 100644 target/site/jacoco/musichub.util/Policy.java.html
          
          diff --git a/target/classes/musichub/util/Policy.class b/target/classes/musichub/util/Policy.class
          new file mode 100644
          index 0000000..bec4189
          Binary files /dev/null and b/target/classes/musichub/util/Policy.class differ
          diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          index a533945..f14990a 100644
          --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          @@ -12,5 +12,6 @@ C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java
          +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\Policy.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoElementFoundException.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\XMLHandler.java
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 0b05cf3..b788f0f 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1,5 +1,7 @@
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PlayListTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\CategoryTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\XMLHandlerTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\LanguageTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\SongTest.java
          diff --git a/target/site/jacoco/musichub.business/MusicHub.html b/target/site/jacoco/musichub.business/MusicHub.html
          index 6bedc98..4ed5db0 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">803 of 803</td><td class="ctr2">0 %</td><td class="bar">114 of 114</td><td class="ctr2">0 %</td><td class="ctr1">79</td><td class="ctr2">79</td><td class="ctr1">195</td><td class="ctr2">195</td><td class="ctr1">22</td><td class="ctr2">22</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L158" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f2">7</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L187" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L135" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L113" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L254" class="el_method">loadElements()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L101" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f9">4</td><td class="ctr2" id="g9">4</td><td class="ctr1" id="h11">9</td><td class="ctr2" id="i11">9</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L314" class="el_method">saveElements()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f5">5</td><td class="ctr2" id="g5">5</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">12</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L218" class="el_method">loadAlbums()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f6">5</td><td class="ctr2" id="g6">5</td><td class="ctr1" id="h6">11</td><td class="ctr2" id="i6">11</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L236" class="el_method">loadPlaylists()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">11</td><td class="ctr2" id="i7">11</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L66" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L282" class="el_method">saveAlbums()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f10">3</td><td class="ctr2" id="g10">3</td><td class="ctr1" id="h9">10</td><td class="ctr2" id="i9">10</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L298" class="el_method">savePlayLists()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f11">3</td><td class="ctr2" id="g11">3</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L93" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f13">2</td><td class="ctr2" id="g13">2</td><td class="ctr1" id="h13">5</td><td class="ctr2" id="i13">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L41" class="el_method">MusicHub()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L335" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h14">5</td><td class="ctr2" id="i14">5</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L34" class="el_method">static {...}</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">4</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L53" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">2</td><td class="ctr2" id="i16">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L57" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L61" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L81" class="el_method">albums()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L85" class="el_method">playlists()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L89" class="el_method">elements()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">874 of 874</td><td class="ctr2">0 %</td><td class="bar">124 of 124</td><td class="ctr2">0 %</td><td class="ctr1">85</td><td class="ctr2">85</td><td class="ctr1">209</td><td class="ctr2">209</td><td class="ctr1">23</td><td class="ctr2">23</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L158" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f2">7</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L187" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L135" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L113" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L344" class="el_method">searchAudioElement()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="71" alt="71"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h5">14</td><td class="ctr2" id="i5">14</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L254" class="el_method">loadElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L101" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f10">4</td><td class="ctr2" id="g10">4</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L314" class="el_method">saveElements()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f6">5</td><td class="ctr2" id="g6">5</td><td class="ctr1" id="h6">12</td><td class="ctr2" id="i6">12</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L218" class="el_method">loadAlbums()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">11</td><td class="ctr2" id="i7">11</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L236" class="el_method">loadPlaylists()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L66" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f9">5</td><td class="ctr2" id="g9">5</td><td class="ctr1" id="h9">11</td><td class="ctr2" id="i9">11</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L282" class="el_method">saveAlbums()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f11">3</td><td class="ctr2" id="g11">3</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L298" class="el_method">savePlayLists()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h11">10</td><td class="ctr2" id="i11">10</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L93" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d14"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f14">2</td><td class="ctr2" id="g14">2</td><td class="ctr1" id="h14">5</td><td class="ctr2" id="i14">5</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L41" class="el_method">MusicHub()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h13">9</td><td class="ctr2" id="i13">9</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L335" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e14">0 %</td><td class="ctr1" id="f13">3</td><td class="ctr2" id="g13">3</td><td class="ctr1" id="h15">5</td><td class="ctr2" id="i15">5</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a22"><a href="MusicHub.java.html#L34" class="el_method">static {...}</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">4</td><td class="ctr2" id="i16">4</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L53" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L57" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L61" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">2</td><td class="ctr2" id="i19">2</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L81" class="el_method">albums()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L85" class="el_method">playlists()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L89" class="el_method">elements()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c22">0 %</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          index ea5f0da..3666c2b 100644
          --- a/target/site/jacoco/musichub.main/Main.html
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L18" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="562" alt="562"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">28</td><td class="ctr2" id="g0">28</td><td class="ctr1" id="h0">191</td><td class="ctr2" id="i0">191</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L261" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="40" alt="40"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L15" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L19" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="579" alt="579"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L276" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="43" alt="43"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">15</td><td class="ctr2" id="i1">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L16" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          index 191e4db..cd2b4c7 100644
          --- a/target/site/jacoco/musichub.main/index.html
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="625" alt="625"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">31</td><td class="ctr2" id="g0">31</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          index 654a78a..60b6575 100644
          --- a/target/site/jacoco/musichub.main/index.source.html
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="625" alt="625"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">31</td><td class="ctr2" id="g0">31</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/Policy.html b/target/site/jacoco/musichub.util/Policy.html
          new file mode 100644
          index 0000000..11ce779
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/Policy.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Policy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">Policy</span></div><h1>Policy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">53 of 53</td><td class="ctr2">0 %</td><td class="bar">5 of 5</td><td class="ctr2">0 %</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">20</td><td class="ctr2">20</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html#L27" class="el_method">showTerm()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="39" alt="39"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">15</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Policy.java.html#L21" class="el_method">Policy()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Policy.java.html#L128" class="el_method">printAgreement()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/Policy.java.html b/target/site/jacoco/musichub.util/Policy.java.html
          new file mode 100644
          index 0000000..2eeb294
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/Policy.java.html
          @@ -0,0 +1,132 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Policy.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">Policy.java</span></div><h1>Policy.java</h1><pre class="source lang-java linenums">package musichub.util;
          +
          +import java.util.Scanner;
          +
          +/**
          + * Class ...
          + *
          + * @author Anthony BOULANT
          + * @version 1.0
          + */
          +
          +public final class Policy {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     *
          +     * @throws AssertionError you can't instantiate this class
          +     * @author Anthony BOULANT
          +     */
          +
          +<span class="nc" id="L21">    public Policy() {</span>
          +<span class="nc" id="L22">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +    }
          +
          +    public static void showTerm() {
          +
          +<span class="nc" id="L27">        String termsAndConditions = &quot;Terms and Conditions\n&quot; +</span>
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;In using this website you are deemed to have read and agreed to the following terms and conditions:\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: \&quot;Client\&quot;, “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. \&quot;The Company\&quot;, “Ourselves”, “We” and \&quot;Us\&quot;, refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Privacy Statement\n&quot; +
          +                &quot;We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Confidentiality\n&quot; +
          +                &quot;We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Disclaimer\n&quot; +
          +                &quot;Exclusions and Limitations \n&quot; +
          +                &quot;The information on this web site is provided on an \&quot;as is\&quot; basis. To the fullest extent permitted by law, this Company:\n&quot; +
          +                &quot;\uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and \n&quot; +
          +                &quot;\uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages. \n&quot; +
          +                &quot;This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected. \n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Cancellation Policy\n&quot; +
          +                &quot;Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Termination of Agreements and Refunds Policy\n&quot; +
          +                &quot;Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Availability \n&quot; +
          +                &quot;Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Copyright Notice \n&quot; +
          +                &quot;Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application. \n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Communication\n&quot; +
          +                &quot;We have several different e-mail addresses for different queries. These, &amp; other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Force Majeure\n&quot; +
          +                &quot;Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Waiver\n&quot; +
          +                &quot;Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;General\n&quot; +
          +                &quot;The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;Notification of Changes\n&quot; +
          +                &quot;The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.    \n&quot; +
          +                &quot;© Company Name 2021 All Rights Reserved\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot; +
          +                &quot;\n&quot;;
          +
          +<span class="nc" id="L107">        printAgreement();</span>
          +<span class="nc" id="L108">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L109">        String choice = scan.nextLine().toLowerCase();</span>
          +
          +<span class="nc bnc" id="L111" title="All 2 branches missed.">        while (!choice.equals(&quot;y&quot;)) {</span>
          +<span class="nc bnc" id="L112" title="All 3 branches missed.">            switch (choice.charAt(0)) {</span>
          +<span class="nc" id="L113">                case 'n' -&gt; System.exit(0);</span>
          +<span class="nc" id="L114">                case 'r' -&gt; {</span>
          +<span class="nc" id="L115">                    System.out.println(termsAndConditions);</span>
          +<span class="nc" id="L116">                    printAgreement();</span>
          +<span class="nc" id="L117">                    choice = scan.nextLine().toLowerCase();</span>
          +                }
          +<span class="nc" id="L119">                default -&gt; {</span>
          +<span class="nc" id="L120">                    printAgreement();</span>
          +<span class="nc" id="L121">                    choice = scan.nextLine().toLowerCase();</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L125">    }</span>
          +
          +    private static void printAgreement() {
          +<span class="nc" id="L128">        System.out.println(&quot;By using our app, do you accept our Terms and Conditions ?&quot;);</span>
          +<span class="nc" id="L129">        System.out.println(&quot;[YES : y    NO :  n    READ : r]&quot;);</span>
          +<span class="nc" id="L130">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 35e136c..936c84a 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 157</td><td class="ctr2">96 %</td><td class="bar">0 of 4</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">11</td><td class="ctr1">4</td><td class="ctr2">46</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 210</td><td class="ctr2">71 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">24</td><td class="ctr2">66</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.html" class="el_class">Policy</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="53" alt="53"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index d40b929..b7009ee 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 157</td><td class="ctr2">96 %</td><td class="bar">0 of 4</td><td class="ctr2">100 %</td><td class="ctr1">0</td><td class="ctr2">11</td><td class="ctr1">4</td><td class="ctr2">46</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 210</td><td class="ctr2">71 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">24</td><td class="ctr2">66</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html" class="el_source">Policy.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="53" alt="53"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          -- 
          cgit v1.2.3
          
          
          From 2b592b4986b92c85150ecb9d08a521e6391cc160 Mon Sep 17 00:00:00 2001
          From: manthole <67294267+manthole@users.noreply.github.com>
          Date: Sun, 27 Jun 2021 23:10:38 +0200
          Subject: Add new feature - display playlist
          
          ---
           src/main/java/musichub/business/MusicHub.java   |  28 ++++++++++++++++++++++++
           src/main/java/musichub/main/Main.java           |  18 +++++++++++++++
           target/classes/musichub/business/MusicHub.class | Bin 12507 -> 13297 bytes
           target/classes/musichub/main/Main.class         | Bin 10828 -> 11373 bytes
           target/classes/musichub/util/Policy.class       | Bin 10981 -> 10860 bytes
           5 files changed, 46 insertions(+)
          
          diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
          index 660f0f8..f6805b6 100644
          --- a/src/main/java/musichub/business/MusicHub.java
          +++ b/src/main/java/musichub/business/MusicHub.java
          @@ -359,5 +359,33 @@ public class MusicHub {
                       this.getAudioElement(searchResult, searchResult.get(0).getTitle());
                   }
               }
          +    public String getPlayListsTitles() {
          +        StringBuilder titleList = new StringBuilder();
           
          +        for (PlayList pl : playlists)
          +            titleList.append(pl.getTitle()).append("\n");
          +        return titleList.toString();
          +    }
          +
          +    public List<AudioElement> getPlayListSongs(String playListTitle) throws NoPlayListFoundException {
          +        PlayList thePlayList = null;
          +        ArrayList<AudioElement> songsInPlayList = new ArrayList<>();
          +        for (PlayList pl : playlists) {
          +            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {
          +                thePlayList = pl;
          +                break;
          +            }
          +        }
          +        if (thePlayList == null) throw new NoPlayListFoundException("No playlist with this title in the MusicHub!");
          +
          +        List<UUID> songIDs = thePlayList.getElements();
          +        for (UUID id : songIDs)
          +            for (AudioElement el : elements) {
          +                if (el instanceof Song) {
          +                    if (el.getUUID().equals(id)) songsInPlayList.add(el);
          +                }
          +            }
          +        return songsInPlayList;
          +
          +    }
           }
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index bbcae79..2394ce6 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -264,6 +264,23 @@ public class Main {
                               System.out.println("Type h for available commands");
                               choice = scan.nextLine();
                               break;
          +                case 'm':
          +                    //songs of a playlist
          +                    System.out.println("Songs of a playlist will be displayed; enter the playlist name, available playlists are:");
          +                    System.out.println(theHub.getPlayListsTitles());
          +
          +                    playListTitle = scan.nextLine();
          +                    try {
          +                        List<AudioElement> songs = theHub.getPlayListSongs(playListTitle);
          +                        System.out.println(theHub.getPlayListSongs(playListTitle));
          +                        String song = scan.nextLine();
          +                        theHub.getAudioElement(songs, song);
          +                    } catch (NoPlayListFoundException ex) {
          +                        System.out.println("No playlist found with the requested title " + ex.getMessage());
          +                    }
          +                    printAvailableCommands();
          +                    choice = scan.nextLine();
          +                    break;
                           default:
           
                               break;
          @@ -283,6 +300,7 @@ public class Main {
                   System.out.println("+: add a song to an album");
                   System.out.println("l: add a new audiobook");
                   System.out.println("p: create a new playlist from existing songs and audio books");
          +        System.out.println("m: display songs of a playlist");
                   System.out.println("-: delete an existing playlist");
                   System.out.println("s: save elements, albums, playlists");
                   System.out.println("o: consult the app logs");
          diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class
          index 8614d25..42d7480 100644
          Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index 6a37d2d..d1f8ea2 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          diff --git a/target/classes/musichub/util/Policy.class b/target/classes/musichub/util/Policy.class
          index bec4189..4bf6b23 100644
          Binary files a/target/classes/musichub/util/Policy.class and b/target/classes/musichub/util/Policy.class differ
          -- 
          cgit v1.2.3
          
          
          From 20e690428d097047fbf92d97e7ed0009d56de873 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 17:44:20 +0200
          Subject: Added a break at the end of the r command.
          
          ---
           src/main/java/musichub/main/Main.java | 1 +
           1 file changed, 1 insertion(+)
          
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index bbcae79..2949d9e 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -258,6 +258,7 @@ public class Main {
                                   System.err.println(e.getMessage()+" Please create a file with the extension .wav inside the song folder at root of the app");
                               }
                               printAvailableCommands();
          +                    break;
                           case 'o':
                               //consult the app logs
                               LogHandler.read();
          -- 
          cgit v1.2.3
          
          
          From 70cd4d6cc54628277e77a47b86d00f7fc108a942 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 17:49:20 +0200
          Subject: Change out to err for the path verification error message.
          
          ---
           src/main/java/musichub/main/Main.java | 3 ++-
           1 file changed, 2 insertions(+), 1 deletion(-)
          
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index 2949d9e..674cc7b 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -99,7 +99,8 @@ public class Main {
                               if (!isPathValid(content)) {
                                   String logMsg = "The music file was not found with the path you've provided or the extension is not .wav";
                                   LogHandler.write(logMsg, "WARNING"); //write a line in the log file
          -                        System.out.println(logMsg + "\nType h for available commands");
          +                        System.err.println(logMsg);
          +                        System.out.println("Type h for available commands");
                                   choice = scan.nextLine();
                                   break;
                               }
          -- 
          cgit v1.2.3
          
          
          From c714806051ff100678d350262bb9f992bae06f5e Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 18:07:03 +0200
          Subject: Adding javadocs comments to Policy.java
          
          ---
           src/main/java/musichub/util/Policy.java | 147 +++++++++++++++-----------------
           1 file changed, 67 insertions(+), 80 deletions(-)
          
          diff --git a/src/main/java/musichub/util/Policy.java b/src/main/java/musichub/util/Policy.java
          index 3d041d1..67a1c40 100644
          --- a/src/main/java/musichub/util/Policy.java
          +++ b/src/main/java/musichub/util/Policy.java
          @@ -3,7 +3,7 @@ package musichub.util;
           import java.util.Scanner;
           
           /**
          - * Class ...
          + * Class offering methods to prompt a policy agreement form to the user.
            *
            * @author Anthony BOULANT
            * @version 1.0
          @@ -22,87 +22,69 @@ public final class Policy {
                   throw new AssertionError("You just can't instantiate this class.");
               }
           
          +    /**
          +     * Method prompting the whole policy agreement process
          +     *
          +     * @author Anthony BOULANT
          +     */
               public static void showTerm() {
           
          -        String termsAndConditions = "Terms and Conditions\n" +
          -                "\n" +
          -                "\n" +
          -                "In using this website you are deemed to have read and agreed to the following terms and conditions:\n" +
          -                "\n" +
          -                "\n" +
          -                "The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: \"Client\", “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. \"The Company\", “Ourselves”, “We” and \"Us\", refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.\n" +
          -                "\n" +
          -                "\n" +
          -                "Privacy Statement\n" +
          -                "We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible\n" +
          -                "\n" +
          -                "\n" +
          -                "Confidentiality\n" +
          -                "We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.\n" +
          -                "\n" +
          -                "We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.\n" +
          -                "\n" +
          -                "\n" +
          -                "Disclaimer\n" +
          -                "Exclusions and Limitations \n" +
          -                "The information on this web site is provided on an \"as is\" basis. To the fullest extent permitted by law, this Company:\n" +
          -                "\uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and \n" +
          -                "\uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages. \n" +
          -                "This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected. \n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "Cancellation Policy\n" +
          -                "Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.\n" +
          -                "\n" +
          -                "\n" +
          -                "Termination of Agreements and Refunds Policy\n" +
          -                "Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.\n" +
          -                "\n" +
          -                "\n" +
          -                "Availability \n" +
          -                "Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "Copyright Notice \n" +
          -                "Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application. \n" +
          -                "\n" +
          -                "\n" +
          -                "Communication\n" +
          -                "We have several different e-mail addresses for different queries. These, & other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.\n" +
          -                "\n" +
          -                "\n" +
          -                "Force Majeure\n" +
          -                "Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.\n" +
          -                "\n" +
          -                "\n" +
          -                "Waiver\n" +
          -                "Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.\n" +
          -                "\n" +
          -                "\n" +
          -                "General\n" +
          -                "The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.\n" +
          -                "\n" +
          -                "\n" +
          -                "Notification of Changes\n" +
          -                "The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis\n" +
          -                "\n" +
          -                "\n" +
          -                "These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.    \n" +
          -                "© Company Name 2021 All Rights Reserved\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n" +
          -                "\n";
          +        String termsAndConditions = """
          +                Terms and Conditions
          +
          +                In using this website you are deemed to have read and agreed to the following terms and conditions:
          +
          +                The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: "Client", “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. "The Company", “Ourselves”, “We” and "Us", refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.
          +
          +                Privacy Statement
          +                We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible
          +
          +                Confidentiality
          +                We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.
          +
          +                We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.
          +
          +
          +                Disclaimer
          +                Exclusions and Limitations\s
          +                The information on this web site is provided on an "as is" basis. To the fullest extent permitted by law, this Company:
          +                \uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and\s
          +                \uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages.\s
          +                This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected.\s
          +
          +
          +
          +                Cancellation Policy
          +                Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.
          +
          +                Termination of Agreements and Refunds Policy
          +                Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.
          +
          +                Availability\s
          +                Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.
          +
          +
          +                Copyright Notice\s
          +                Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application.\s
          +
          +                Communication
          +                We have several different e-mail addresses for different queries. These, & other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.
          +
          +                Force Majeure
          +                Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.
          +
          +                Waiver
          +                Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.
          +
          +                General
          +                The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.
          +
          +                Notification of Changes
          +                The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis
          +
          +                These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.   \s
          +                © Company Name 2021 All Rights Reserved
          +                """;
           
                   printAgreement();
                   Scanner scan = new Scanner(System.in);
          @@ -124,6 +106,11 @@ public final class Policy {
                   }
               }
           
          +    /**
          +     * Method printing the commands the user can use.
          +     *
          +     * @author Anthony BOULANT
          +     */
               private static void printAgreement() {
                   System.out.println("By using our app, do you accept our Terms and Conditions ?");
                   System.out.println("[YES : y    NO :  n    READ : r]");
          -- 
          cgit v1.2.3
          
          
          From 2a4ae3e26bdf7b16bc16bef4211e230a64522b11 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 18:10:41 +0200
          Subject: Changed the type of switch used in AudioElement.java
          
          ---
           src/main/java/musichub/business/AudioElement.java | 38 +++++++++--------------
           1 file changed, 14 insertions(+), 24 deletions(-)
          
          diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java
          index 0c1e9e4..fa410d8 100644
          --- a/src/main/java/musichub/business/AudioElement.java
          +++ b/src/main/java/musichub/business/AudioElement.java
          @@ -3,17 +3,12 @@ package musichub.business;
           import org.w3c.dom.Document;
           import org.w3c.dom.Element;
           
          +import javax.sound.sampled.*;
           import java.io.File;
           import java.io.IOException;
           import java.util.Scanner;
           import java.util.UUID;
           
          -import javax.sound.sampled.AudioInputStream;
          -import javax.sound.sampled.AudioSystem;
          -import javax.sound.sampled.Clip;
          -import javax.sound.sampled.LineUnavailableException;
          -import javax.sound.sampled.UnsupportedAudioFileException;
          -
           public abstract class AudioElement {
               protected String title;
               protected String artist;
          @@ -106,24 +101,19 @@ public abstract class AudioElement {
               	String action = "";
               			
               	while(!action.equals("Q")) {
          -    		System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit");
          -    		System.out.println("Enter your choice");
          -    		action = scanner.next();
          -        	action = action.toUpperCase();
          -        	
          -        	switch(action) {
          -        		case "S" : clip.stop();
          -        		break;
          -        		case "P" : clip.start();
          -        		break;
          -        		case "R" : clip.setMicrosecondPosition(0);
          -        		break;
          -        		case "Q" : clip.stop();
          -        		break;
          -        		default : System.out.println("try again");
          -        	}
          -        	System.out.println("You stoped the Audio element");
          -    	}
          +            System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit");
          +            System.out.println("Enter your choice");
          +            action = scanner.next();
          +            action = action.toUpperCase();
          +
          +            switch (action) {
          +                case "S", "Q" -> clip.stop();
          +                case "P" -> clip.start();
          +                case "R" -> clip.setMicrosecondPosition(0);
          +                default -> System.out.println("try again");
          +            }
          +            System.out.println("You stoped the Audio element");
          +        }
               	
               	clip.close();
               
          -- 
          cgit v1.2.3
          
          
          From 31b3614486621564836abb2446a64976a70eec4b Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 18:17:41 +0200
          Subject: Javadocs comments for getPlayListTitles and getPlayListSongs.
          
          ---
           src/main/java/musichub/business/MusicHub.java | 24 +++++++++++++++++++-----
           1 file changed, 19 insertions(+), 5 deletions(-)
          
          diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
          index f6805b6..8db2f11 100644
          --- a/src/main/java/musichub/business/MusicHub.java
          +++ b/src/main/java/musichub/business/MusicHub.java
          @@ -6,11 +6,10 @@ import org.w3c.dom.Element;
           import org.w3c.dom.Node;
           import org.w3c.dom.NodeList;
           
          -import java.io.IOException;
          -import java.util.*;
          -
           import javax.sound.sampled.LineUnavailableException;
           import javax.sound.sampled.UnsupportedAudioFileException;
          +import java.io.IOException;
          +import java.util.*;
           
           class SortByDate implements Comparator<Album> {
               public int compare(Album a1, Album a2) {
          @@ -352,13 +351,20 @@ public class MusicHub {
                       }
                   }
           
          -        if(searchResult.isEmpty()){
          +        if (searchResult.isEmpty()) {
                       throw new NoElementFoundException("Any result for your search");
                   }
          -        if (searchResult.size()==1){
          +        if (searchResult.size() == 1) {
                       this.getAudioElement(searchResult, searchResult.get(0).getTitle());
                   }
               }
          +
          +    /**
          +     * Method getting a list of playlists
          +     *
          +     * @return a list of playlist titles
          +     * @author Anthony BOULANT
          +     */
               public String getPlayListsTitles() {
                   StringBuilder titleList = new StringBuilder();
           
          @@ -367,6 +373,14 @@ public class MusicHub {
                   return titleList.toString();
               }
           
          +    /**
          +     * Method checking the songs contained in a chosen playlist and returning them if found.
          +     *
          +     * @param playListTitle the title of a (chosen) playlist
          +     * @return a list of songs from a playlist
          +     * @throws NoPlayListFoundException if the chosen playlist doesn't exist
          +     * @author Anthony BOULANT
          +     */
               public List<AudioElement> getPlayListSongs(String playListTitle) throws NoPlayListFoundException {
                   PlayList thePlayList = null;
                   ArrayList<AudioElement> songsInPlayList = new ArrayList<>();
          -- 
          cgit v1.2.3
          
          
          From 16ee1dd1a69edc9b69a96cc706ac1823873de38f Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 18:35:33 +0200
          Subject: Handling wrong input for songs' length at creation (command c)
          
          ---
           log/spoteezer.log                     |  6 ++----
           src/main/java/musichub/main/Main.java | 17 ++++++++++++++---
           2 files changed, 16 insertions(+), 7 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 5251bff..e672f6d 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,6 +1,4 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
          -[2021-06-27 13:23:02.181] WARNING: The music file was not found with the path you've provided or the extension is not .wav
           [2021-06-27 13:23:40.286] TEST: JUnit test
          -[2021-06-27 17:01:30.263] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          -[2021-06-27 18:57:02.639] TEST: JUnit test
          -[2021-06-27 22:23:27.617] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-28 18:33:51.708] ERROR: You've not provided a number for the length.
          +[2021-06-28 18:34:14.06] ERROR: The music file was not found with the path you've provided or the extension is not .wav
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index 674cc7b..4248aa9 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -91,14 +91,25 @@ public class Main {
                               String genre = scan.nextLine();
                               System.out.println("Song artist: ");
                               String artist = scan.nextLine();
          -                    System.out.println("Song length in seconds: ");
          -                    int length = Integer.parseInt(scan.nextLine());
          +
          +                    int length;
          +                    try {
          +                        System.out.println("Song length in seconds: ");
          +                        length = Integer.parseInt(scan.nextLine());
          +                    } catch (NumberFormatException ex) {
          +                        String logMsg = "You've not provided a number for the length.";
          +                        LogHandler.write(logMsg, "ERROR"); //write a line in the log file
          +                        System.err.println(logMsg);
          +                        System.out.println("Type h for available commands");
          +                        choice = scan.nextLine();
          +                        break;
          +                    }
           
                               System.out.println("Song content: ");
                               String content = scan.nextLine();
                               if (!isPathValid(content)) {
                                   String logMsg = "The music file was not found with the path you've provided or the extension is not .wav";
          -                        LogHandler.write(logMsg, "WARNING"); //write a line in the log file
          +                        LogHandler.write(logMsg, "ERROR"); //write a line in the log file
                                   System.err.println(logMsg);
                                   System.out.println("Type h for available commands");
                                   choice = scan.nextLine();
          -- 
          cgit v1.2.3
          
          
          From 7511c64635465e4f8764f5b831eb154f07eec364 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 18:38:31 +0200
          Subject: Changed the the phrasing for wrong path.
          
          ---
           log/spoteezer.log                     | 2 +-
           src/main/java/musichub/main/Main.java | 2 +-
           2 files changed, 2 insertions(+), 2 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index e672f6d..fc6ea56 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,4 +1,4 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-27 13:23:40.286] TEST: JUnit test
           [2021-06-28 18:33:51.708] ERROR: You've not provided a number for the length.
          -[2021-06-28 18:34:14.06] ERROR: The music file was not found with the path you've provided or the extension is not .wav
          \ No newline at end of file
          +[2021-06-28 18:37:56.051] ERROR: The music file cannot be found with the path you've provided or the extension is not .wav
          \ No newline at end of file
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index 4248aa9..a8d2128 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -108,7 +108,7 @@ public class Main {
                               System.out.println("Song content: ");
                               String content = scan.nextLine();
                               if (!isPathValid(content)) {
          -                        String logMsg = "The music file was not found with the path you've provided or the extension is not .wav";
          +                        String logMsg = "The music file cannot be found with the path you've provided or the extension is not .wav";
                                   LogHandler.write(logMsg, "ERROR"); //write a line in the log file
                                   System.err.println(logMsg);
                                   System.out.println("Type h for available commands");
          -- 
          cgit v1.2.3
          
          
          From 300d062ff954de4b3171b96a1b5137d7dad9b1ca Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 16:45:38 +0000
          Subject: Update README.md
          
          ---
           README.md | 8 +++++---
           1 file changed, 5 insertions(+), 3 deletions(-)
          
          diff --git a/README.md b/README.md
          index fd4c37a..66c3e71 100644
          --- a/README.md
          +++ b/README.md
          @@ -1,6 +1,6 @@
           # Spoteezer
           
          -## The Team
          +## Who ?
           
           This project was done by a team of 3 amazing people:
           
          @@ -8,8 +8,10 @@ This project was done by a team of 3 amazing people:
           + Saïd BELHADJ
           + Anthony BOULANT
           
          -## The project
          +## Why ?
           
           This project is being done as part of our sixth semester at the engineering school, the ESIEA.
           
          -## W.I.P. ...
          \ No newline at end of file
          +## Features
          +
          +## Issues
          -- 
          cgit v1.2.3
          
          
          From 59ffe41bebf12a968565365892342ac7439d27ec Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 16:51:09 +0000
          Subject: Update README.md
          
          ---
           README.md | 6 +++---
           1 file changed, 3 insertions(+), 3 deletions(-)
          
          diff --git a/README.md b/README.md
          index 66c3e71..1126d8b 100644
          --- a/README.md
          +++ b/README.md
          @@ -4,9 +4,9 @@
           
           This project was done by a team of 3 amazing people:
           
          -+ Aimeric ADJUTOR
          -+ Saïd BELHADJ
          -+ Anthony BOULANT
          ++ Aimeric ADJUTOR : [@clyhtsuriva](https://github.com/clyhtsuriva)
          ++ Saïd BELHADJ : [@Said-Belhadj](https://github.com/Said-Belhadj)
          ++ Anthony BOULANT : [@manthole](https://github.com/manthole)
           
           ## Why ?
           
          -- 
          cgit v1.2.3
          
          
          From 56c7c2388cfca852b9b2b356d1a6ef07abdf4622 Mon Sep 17 00:00:00 2001
          From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 20:02:56 +0200
          Subject: Add new data set
          
          ---
           files/elements.xml | 109 +++++++++--------------------------------------------
           1 file changed, 17 insertions(+), 92 deletions(-)
          
          diff --git a/files/elements.xml b/files/elements.xml
          index 553f228..189ede0 100644
          --- a/files/elements.xml
          +++ b/files/elements.xml
          @@ -1,13 +1,5 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
          +<?xml version="1.0" encoding="UTF-8"?>
           <elements>
          -    <song>
          -        <title>Here Comes the Sun</title>
          -        <artist>The Beatles</artist>
          -        <length>186</length>
          -        <UUID>66d277ca-cbc4-471c-a07e-082362275bcc</UUID>
          -        <content>here_comes_the_sun.mp3</content>
          -        <genre>pop</genre>
          -    </song>
               <song>
                   <title>Side To Side</title>
                   <artist>Ariana Grande</artist>
          @@ -17,94 +9,27 @@
                   <genre>rock</genre>
               </song>
               <song>
          -        <title>Something</title>
          -        <artist>The Beatles</artist>
          -        <length>182</length>
          -        <UUID>6b834132-0a30-4b83-9835-814121b963a1</UUID>
          -        <content>something.mp3</content>
          -        <genre>pop</genre>
          -    </song>
          -    <audiobook>
          -        <title>Producing the Beatles</title>
          -        <artist>Jason Kruppa</artist>
          -        <length>1640</length>
          -        <UUID>9a744375-95cb-4f25-8dfd-f488e0f2e1f1</UUID>
          -        <content>producing_the_beatles.mp3</content>
          -        <language>english</language>
          -        <category>documentary</category>
          -    </audiobook>
          -    <audiobook>
          -        <title>Snow White</title>
          -        <artist>Disney</artist>
          -        <length>999</length>
          -        <UUID>c88c33dc-6c56-42d5-8381-202c679558e4</UUID>
          -        <content>name.mp3</content>
          -        <language>english</language>
          -        <category>youth</category>
          -    </audiobook>
          -    <song>
          -        <title>Julia</title>
          -        <artist>The Beatles</artist>
          -        <length>176</length>
          -        <UUID>b2ee0ca0-b5e2-4bc9-8fed-7932fb145f2f</UUID>
          -        <content>julia.mp3</content>
          -        <genre>pop</genre>
          -    </song>
          -    <audiobook>
          -        <title>Hamlet</title>
          -        <artist>Shakespeare</artist>
          -        <length>10800</length>
          -        <UUID>804d2dea-3e49-4c42-99f6-e195d3a68da7</UUID>
          -        <content>hamlet.mp3</content>
          -        <language>english</language>
          -        <category>theater</category>
          -    </audiobook>
          -    <song>
          -        <title>Yesterday</title>
          -        <artist>The Beatles</artist>
          -        <length>180</length>
          -        <UUID>bbe99998-1be6-4a40-8bf0-6a7fce9087c9</UUID>
          -        <content>yesterday.mp3</content>
          -        <genre>pop</genre>
          -    </song>
          -    <song>
          -        <title>Mamma Mia</title>
          -        <artist>ABBA</artist>
          -        <length>213</length>
          -        <UUID>a9b8d71a-70af-4f6a-a908-ad09ec8345d3</UUID>
          -        <content>mamma_mia.mp3</content>
          -        <genre>pop</genre>
          -    </song>
          -    <song>
          -        <title>Dancing Queen</title>
          -        <artist>ABBA</artist>
          -        <length>230</length>
          -        <UUID>18c49fcc-3b6e-4743-884f-89274a8a2e9a</UUID>
          -        <content>dancing_queen.mp3</content>
          -        <genre>pop</genre>
          -    </song>
          -    <song>
          -        <title>Fernando</title>
          -        <artist>ABBA</artist>
          -        <length>252</length>
          -        <UUID>44136020-dc80-4522-9b71-2b9aad5e3039</UUID>
          -        <content>fernando.mp3</content>
          +        <title>STB</title>
          +        <artist>Drake</artist>
          +        <length>286</length>
          +        <UUID>61d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +        <content>Song/STB.wav</content>
                   <genre>pop</genre>
               </song>
               <song>
          -        <title>The name of the game</title>
          -        <artist>ABBA</artist>
          -        <length>291</length>
          -        <UUID>a2a19231-d244-4440-ad2a-41315e5ca00a</UUID>
          -        <content>the_name_of_the_game.mp3</content>
          +        <title>Hotline Bling</title>
          +        <artist>Drake</artist>
          +        <length>256</length>
          +        <UUID>31d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +        <content>Song/Hotline_Bling.wav</content>
                   <genre>pop</genre>
               </song>
               <song>
          -        <title>The winner takes it all</title>
          -        <artist>ABBA</artist>
          -        <length>254</length>
          -        <UUID>383c9337-6a58-40aa-ac4d-83fd964a397c</UUID>
          -        <content>the_winner_takes_it_all.mp3</content>
          +        <title>Toosie Slide</title>
          +        <artist>Drake</artist>
          +        <length>286</length>
          +        <UUID>21d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +        <content>Song/Toosie_Slide.wav</content>
                   <genre>pop</genre>
               </song>
          -</elements>
          \ No newline at end of file
          +</elements>
          -- 
          cgit v1.2.3
          
          
          From b31d1df0f8e06cc546ccbb84fab8d7e570349b32 Mon Sep 17 00:00:00 2001
          From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 20:03:35 +0200
          Subject: Add new data set for Album
          
          ---
           files/albums.xml | 27 ++++++++++-----------------
           1 file changed, 10 insertions(+), 17 deletions(-)
          
          diff --git a/files/albums.xml b/files/albums.xml
          index edb2a94..bf6468f 100644
          --- a/files/albums.xml
          +++ b/files/albums.xml
          @@ -1,29 +1,22 @@
           <?xml version="1.0" encoding="UTF-8" standalone="no"?>
           <albums>
               <album>
          -        <title>Best of Beatles</title>
          -        <artist/>
          +        <title>Best of Drake</title><artist/>
                   <lengthInSeconds>2160</lengthInSeconds>
                   <UUID>55a1e629-ef8c-4554-be90-7668105724cd</UUID>
          -        <date>1970-12-10</date>
          +        <date>2019-12-10</date>
                   <songs>
          -            <UUID>66d277ca-cbc4-471c-a07e-082362275bcc</UUID>
          -            <UUID>6b834132-0a30-4b83-9835-814121b963a1</UUID>
          -            <UUID>b2ee0ca0-b5e2-4bc9-8fed-7932fb145f2f</UUID>
          -            <UUID>bbe99998-1be6-4a40-8bf0-6a7fce9087c9</UUID>
          -            <UUID>66d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          -            <UUID>44136020-dc80-4522-9b71-2b9aad5e3039</UUID>
          +            <UUID>21d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +            <UUID>31d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +            <UUID>61d277ca-cbc4-471c-a07e-082363375bcc</UUID>
                   </songs>
               </album>
               <album>
          -        <title>ABBA Gold</title>
          +        <title>Best of Ariana Grande</title>
                   <artist/>
                   <lengthInSeconds>3490</lengthInSeconds>
          -        <UUID>f015cb19-ed91-47cc-a262-12f5348e6f89</UUID>
          -        <date>1978-01-23</date>
          -        <songs>
          -            <UUID>44136020-dc80-4522-9b71-2b9aad5e3039</UUID>
          -            <UUID>66d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          -        </songs>
          +        <UUID>66d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +        <date>2016-01-23</date>
          +        <songs/>
               </album>
          -</albums>
          \ No newline at end of file
          +</albums>
          -- 
          cgit v1.2.3
          
          
          From d9e5505c6a283c7e576e7c77172221d7cb153351 Mon Sep 17 00:00:00 2001
          From: Said Belhadj <71043286+Said-Belhadj@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 20:04:07 +0200
          Subject: Add new data set for playlist
          
          ---
           files/playlists.xml | 10 +++++-----
           1 file changed, 5 insertions(+), 5 deletions(-)
          
          diff --git a/files/playlists.xml b/files/playlists.xml
          index e68fd77..9955928 100644
          --- a/files/playlists.xml
          +++ b/files/playlists.xml
          @@ -1,4 +1,4 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
          +<?xml version="1.0" encoding="UTF-8"?>
           <playlists>
               <playlist>
                   <title>my favourite songs</title>
          @@ -12,9 +12,9 @@
                   <title>my third playlist</title>
                   <UUID>23173338-8b6e-4174-af71-2fe8eef705da</UUID>
                   <elements>
          -            <UUID>bbe99998-1be6-4a40-8bf0-6a7fce9087c9</UUID>
          -            <UUID>6b834132-0a30-4b83-9835-814121b963a1</UUID>
          -            <UUID>66d277ca-cbc4-471c-a07e-082362275bcc</UUID>
          +            <UUID>21d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +            <UUID>31d277ca-cbc4-471c-a07e-082363375bcc</UUID>
          +            <UUID>61d277ca-cbc4-471c-a07e-082363375bcc</UUID>
                   </elements>
               </playlist>
          -</playlists>
          \ No newline at end of file
          +</playlists>
          -- 
          cgit v1.2.3
          
          
          From 0572c31567b386f0845fdaa7d595ceeef01b24b7 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 20:34:08 +0200
          Subject: Added logs a little bit everywhere and fixed the r feature.
          
          ---
           log/spoteezer.log                                 | 42 ++++++++++++++++++++++-
           src/main/java/musichub/business/AudioElement.java | 18 +++++++---
           src/main/java/musichub/main/Main.java             | 14 +++++++-
           src/main/java/musichub/util/Policy.java           |  6 ++++
           4 files changed, 74 insertions(+), 6 deletions(-)
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index fc6ea56..7904af2 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,4 +1,44 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-27 13:23:40.286] TEST: JUnit test
           [2021-06-28 18:33:51.708] ERROR: You've not provided a number for the length.
          -[2021-06-28 18:37:56.051] ERROR: The music file cannot be found with the path you've provided or the extension is not .wav
          \ No newline at end of file
          +[2021-06-28 18:37:56.051] ERROR: The music file cannot be found with the path you've provided or the extension is not .wav
          +[2021-06-28 20:04:37.592] INFO: Terms accepted by the user.
          +[2021-06-28 20:07:42.232] INFO: Terms accepted by the user.
          +[2021-06-28 20:07:45.175] WARNING: No album found with the requested title
          +[2021-06-28 20:15:32.074] INFO: Terms accepted by the user.
          +[2021-06-28 20:15:37.695] ERROR: The music file cannot be found with the path you've provided or the extension is not .wav
          +[2021-06-28 20:15:41.873] INFO: Playlist successfully deleted
          +[2021-06-28 20:15:52.733] INFO: Playlist successfully deleted
          +[2021-06-28 20:16:00.783] INFO: Playlist successfully created
          +[2021-06-28 20:16:13.904] INFO: Terms accepted by the user.
          +[2021-06-28 20:16:46.773] INFO: Song successfully added to the album
          +[2021-06-28 20:22:21.365] INFO: Terms accepted by the user.
          +[2021-06-28 20:22:29.053] INFO: Music started
          +[2021-06-28 20:22:32.131] INFO: Music started
          +[2021-06-28 20:22:33.812] INFO: Music started
          +[2021-06-28 20:22:36.089] INFO: Music reset
          +[2021-06-28 20:22:37.044] INFO: Music stopped
          +[2021-06-28 20:23:35.383] INFO: Music stopped
          +[2021-06-28 20:25:57.365] INFO: Music stopped
          +[2021-06-28 20:26:27.681] INFO: Music stopped
          +[2021-06-28 20:26:39.722] INFO: Music started
          +[2021-06-28 20:26:43.114] INFO: Music stopped
          +[2021-06-28 20:26:44.358] INFO: Music stopped
          +[2021-06-28 20:27:19.435] INFO: Terms accepted by the user.
          +[2021-06-28 20:27:27.853] INFO: Music started
          +[2021-06-28 20:27:29.052] INFO: Music stopped
          +[2021-06-28 20:27:29.756] INFO: Music stopped
          +[2021-06-28 20:28:43.556] INFO: Terms accepted by the user.
          +[2021-06-28 20:28:49.793] INFO: Music started
          +[2021-06-28 20:28:51.105] INFO: Music stopped
          +[2021-06-28 20:31:00.065] INFO: Terms accepted by the user.
          +[2021-06-28 20:31:04.007] INFO: Elements, albums and playlists successfully saved
          +[2021-06-28 20:31:14.871] INFO: Terms accepted by the user.
          +[2021-06-28 20:31:18.798] INFO: Music started
          +[2021-06-28 20:31:20.634] INFO: Music stopped
          +[2021-06-28 20:32:24.641] INFO: Terms accepted by the user.
          +[2021-06-28 20:32:29.821] INFO: Music started
          +[2021-06-28 20:32:31.447] INFO: Music stopped
          +[2021-06-28 20:32:32.647] INFO: Music stopped
          +[2021-06-28 20:32:43.836] INFO: Music started
          +[2021-06-28 20:32:52.768] INFO: Music stopped
          \ No newline at end of file
          diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java
          index fa410d8..80a649a 100644
          --- a/src/main/java/musichub/business/AudioElement.java
          +++ b/src/main/java/musichub/business/AudioElement.java
          @@ -1,5 +1,6 @@
           package musichub.business;
           
          +import musichub.util.LogHandler;
           import org.w3c.dom.Document;
           import org.w3c.dom.Element;
           
          @@ -107,12 +108,21 @@ public abstract class AudioElement {
                       action = action.toUpperCase();
           
                       switch (action) {
          -                case "S", "Q" -> clip.stop();
          -                case "P" -> clip.start();
          -                case "R" -> clip.setMicrosecondPosition(0);
          +                case "S", "Q" -> {
          +                    clip.stop();
          +                    LogHandler.write("Music stopped", "INFO");
          +                }
          +                case "P" -> {
          +                    clip.start();
          +                    LogHandler.write("Music started", "INFO");
          +                }
          +                case "R" -> {
          +                    clip.setMicrosecondPosition(0);
          +                    LogHandler.write("Music reseted", "INFO");
          +                }
                           default -> System.out.println("try again");
                       }
          -            System.out.println("You stoped the Audio element");
          +            System.out.println("You stopped the Audio element");
                   }
               	
               	clip.close();
          diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
          index 4ac7052..07786d9 100644
          --- a/src/main/java/musichub/main/Main.java
          +++ b/src/main/java/musichub/main/Main.java
          @@ -54,6 +54,7 @@ public class Main {
                               	List<Song> songs = theHub.getAlbumSongsSortedByGenre(albumTitle);
                                   System.out.println(songs);
                               } catch (NoAlbumFoundException ex) {
          +                        LogHandler.write("No album found with the requested title", "WARNING");
                                   System.out.println("No album found with the requested title " + ex.getMessage());
                               }
                               printAvailableCommands();
          @@ -71,6 +72,7 @@ public class Main {
                                   String song = scan.nextLine();
                                   theHub.getAudioElement(songs, song);
                               } catch (NoAlbumFoundException ex) {
          +                        LogHandler.write("No album found with the requested title", "WARNING");
                                   System.out.println("No album found with the requested title " + ex.getMessage());
                               }
                               printAvailableCommands();
          @@ -121,6 +123,7 @@ public class Main {
                               System.out.println("New element list: ");
                               Iterator<AudioElement> it = theHub.elements();
                               while (it.hasNext()) System.out.println(it.next().getTitle());
          +                    LogHandler.write("Song successfully created", "INFO");
                               System.out.println("Song created!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -141,6 +144,7 @@ public class Main {
                               System.out.println("New list of albums: ");
                               Iterator<Album> ita = theHub.albums();
                               while (ita.hasNext()) System.out.println(ita.next().getTitle());
          +                    LogHandler.write("Album successfully created", "INFO");
                               System.out.println("Album created!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -168,6 +172,7 @@ public class Main {
                               } catch (NoAlbumFoundException | NoElementFoundException ex) {
                                   System.out.println(ex.getMessage());
                               }
          +                    LogHandler.write("Song successfully added to the album", "INFO");
                               System.out.println("Song added to the album!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -189,6 +194,7 @@ public class Main {
                               String bLanguage = scan.nextLine();
                               AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);
                               theHub.addElement(b);
          +                    LogHandler.write("Audiobook successfully created", "INFO");
                               System.out.println("Audiobook created! New element list: ");
                               Iterator<AudioElement> itl = theHub.elements();
                               while (itl.hasNext()) System.out.println(itl.next().getTitle());
          @@ -227,6 +233,7 @@ public class Main {
                                   System.out.println("Type y to add a new one, n to end");
                                   choice = scan.nextLine();
                               }
          +                    LogHandler.write("Playlist successfully created", "INFO");
                               System.out.println("Playlist created!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -245,6 +252,7 @@ public class Main {
                               } catch (NoPlayListFoundException ex) {
                                   System.out.println(ex.getMessage());
                               }
          +                    LogHandler.write("Playlist successfully deleted", "INFO");
                               System.out.println("Playlist deleted!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -254,6 +262,7 @@ public class Main {
                               theHub.saveElements();
                               theHub.saveAlbums();
                               theHub.savePlayLists();
          +                    LogHandler.write("Elements, albums and playlists successfully saved", "INFO");
                               System.out.println("Elements, albums and playlists saved!");
                               printAvailableCommands();
                               choice = scan.nextLine();
          @@ -267,9 +276,11 @@ public class Main {
                                   System.err.println(e.getMessage());
                               }
                               catch (java.io.FileNotFoundException e){
          -                        System.err.println(e.getMessage()+" Please create a file with the extension .wav inside the song folder at root of the app");
          +                        LogHandler.write("Please create a file with the extension .wav inside the song folder at root of the app", "ERROR");
          +                        System.err.println(e.getMessage() + " Please create a file with the extension .wav inside the song folder at root of the app");
                               }
                               printAvailableCommands();
          +                    choice = scan.nextLine();
                               break;
                           case 'o':
                               //consult the app logs
          @@ -289,6 +300,7 @@ public class Main {
                                   String song = scan.nextLine();
                                   theHub.getAudioElement(songs, song);
                               } catch (NoPlayListFoundException ex) {
          +                        LogHandler.write("No playlist found with the requested title", "WARNING");
                                   System.out.println("No playlist found with the requested title " + ex.getMessage());
                               }
                               printAvailableCommands();
          diff --git a/src/main/java/musichub/util/Policy.java b/src/main/java/musichub/util/Policy.java
          index 67a1c40..ac067b4 100644
          --- a/src/main/java/musichub/util/Policy.java
          +++ b/src/main/java/musichub/util/Policy.java
          @@ -1,5 +1,6 @@
           package musichub.util;
           
          +import java.io.IOException;
           import java.util.Scanner;
           
           /**
          @@ -104,6 +105,11 @@ public final class Policy {
                           }
                       }
                   }
          +        try {
          +            LogHandler.write("Terms accepted by the user.", "INFO");
          +        } catch (IOException e) {
          +            e.printStackTrace();
          +        }
               }
           
               /**
          -- 
          cgit v1.2.3
          
          
          From 6953ab259993a9d1c958d5e058f020e2821ca39a Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 21:05:01 +0200
          Subject: Adding Hotline Bling
          
          ---
           Song/Drake - Hotline Bling.wav | Bin 0 -> 52142158 bytes
           1 file changed, 0 insertions(+), 0 deletions(-)
           create mode 100644 Song/Drake - Hotline Bling.wav
          
          diff --git a/Song/Drake - Hotline Bling.wav b/Song/Drake - Hotline Bling.wav
          new file mode 100644
          index 0000000..32f222b
          Binary files /dev/null and b/Song/Drake - Hotline Bling.wav differ
          -- 
          cgit v1.2.3
          
          
          From 3595efe503be0e82d530007bc1ddc94190117571 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 21:05:26 +0200
          Subject: Adding STB
          
          ---
           Song/STB.wav | Bin 0 -> 56557646 bytes
           1 file changed, 0 insertions(+), 0 deletions(-)
           create mode 100644 Song/STB.wav
          
          diff --git a/Song/STB.wav b/Song/STB.wav
          new file mode 100644
          index 0000000..836293b
          Binary files /dev/null and b/Song/STB.wav differ
          -- 
          cgit v1.2.3
          
          
          From 871db4f455377bb2d28e5b1f6402a64bc733c9ff Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 21:05:46 +0200
          Subject: Adding Toosie Slide
          
          ---
           Song/Toosie_Slide.wav | Bin 0 -> 54960206 bytes
           1 file changed, 0 insertions(+), 0 deletions(-)
           create mode 100644 Song/Toosie_Slide.wav
          
          diff --git a/Song/Toosie_Slide.wav b/Song/Toosie_Slide.wav
          new file mode 100644
          index 0000000..6c06828
          Binary files /dev/null and b/Song/Toosie_Slide.wav differ
          -- 
          cgit v1.2.3
          
          
          From da9932ecbe5586f59b66095d724c39706412b249 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 21:08:18 +0200
          Subject: Changed hotline bling file name.
          
          ---
           Song/Drake - Hotline Bling.wav | Bin 52142158 -> 0 bytes
           Song/Hotline_Bling.wav         | Bin 0 -> 52142158 bytes
           2 files changed, 0 insertions(+), 0 deletions(-)
           delete mode 100644 Song/Drake - Hotline Bling.wav
           create mode 100644 Song/Hotline_Bling.wav
          
          diff --git a/Song/Drake - Hotline Bling.wav b/Song/Drake - Hotline Bling.wav
          deleted file mode 100644
          index 32f222b..0000000
          Binary files a/Song/Drake - Hotline Bling.wav and /dev/null differ
          diff --git a/Song/Hotline_Bling.wav b/Song/Hotline_Bling.wav
          new file mode 100644
          index 0000000..32f222b
          Binary files /dev/null and b/Song/Hotline_Bling.wav differ
          -- 
          cgit v1.2.3
          
          
          From e1ad6d62d234c59ac20137e0ef66395f1ab1b771 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 20:28:50 +0000
          Subject: Add files via upload
          
          ---
           src.png | Bin 0 -> 294355 bytes
           1 file changed, 0 insertions(+), 0 deletions(-)
           create mode 100644 src.png
          
          diff --git a/src.png b/src.png
          new file mode 100644
          index 0000000..56deecb
          Binary files /dev/null and b/src.png differ
          -- 
          cgit v1.2.3
          
          
          From 47058aab900ea7ab3abee619e9b6effca130f893 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 22:30:01 +0200
          Subject: Changed the name of the final diagram
          
          ---
           final_class_diagram.png | Bin 0 -> 294355 bytes
           src.png                 | Bin 294355 -> 0 bytes
           2 files changed, 0 insertions(+), 0 deletions(-)
           create mode 100644 final_class_diagram.png
           delete mode 100644 src.png
          
          diff --git a/final_class_diagram.png b/final_class_diagram.png
          new file mode 100644
          index 0000000..56deecb
          Binary files /dev/null and b/final_class_diagram.png differ
          diff --git a/src.png b/src.png
          deleted file mode 100644
          index 56deecb..0000000
          Binary files a/src.png and /dev/null differ
          -- 
          cgit v1.2.3
          
          
          From 69247f7a485b1e745d07d2fbd5440b12fa6fce11 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <61652557+clyhtsuriva@users.noreply.github.com>
          Date: Mon, 28 Jun 2021 20:32:26 +0000
          Subject: Update README.md
          
          ---
           README.md | 4 ----
           1 file changed, 4 deletions(-)
          
          diff --git a/README.md b/README.md
          index 1126d8b..664c8df 100644
          --- a/README.md
          +++ b/README.md
          @@ -11,7 +11,3 @@ This project was done by a team of 3 amazing people:
           ## Why ?
           
           This project is being done as part of our sixth semester at the engineering school, the ESIEA.
          -
          -## Features
          -
          -## Issues
          -- 
          cgit v1.2.3
          
          
          From 49196ae84aea338dbc6cd10f4d135e4b717cdd1f Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Mon, 28 Jun 2021 23:38:36 +0200
          Subject: Latest package, javadoc and jacoco
          
          ---
           log/spoteezer.log                                  |   6 +-
           src/main/java/musichub/util/Policy.java            |  50 +--
           .../classes/musichub/business/AudioElement.class   | Bin 5422 -> 5594 bytes
           target/classes/musichub/business/MusicHub.class    | Bin 13297 -> 13299 bytes
           .../classes/musichub/business/SortByAuthor.class   | Bin 901 -> 901 bytes
           target/classes/musichub/business/SortByDate.class  | Bin 854 -> 854 bytes
           target/classes/musichub/business/SortByGenre.class | Bin 858 -> 858 bytes
           target/classes/musichub/main/Main.class            | Bin 11373 -> 12193 bytes
           target/classes/musichub/util/Policy.class          | Bin 10860 -> 2690 bytes
           target/jacoco.exec                                 | Bin 45918 -> 107422 bytes
           target/maven-javadoc-plugin-stale-data.txt         |  39 +-
           target/original-spoteezer-0.1.0.jar                | Bin 39074 -> 36814 bytes
           target/site/apidocs/allclasses-index.html          |  14 +-
           target/site/apidocs/allpackages-index.html         |   4 +-
           target/site/apidocs/help-doc.html                  |   4 +-
           target/site/apidocs/index-all.html                 |  26 +-
           target/site/apidocs/index.html                     |   4 +-
           target/site/apidocs/member-search-index.js         |   2 +-
           target/site/apidocs/musichub/business/Album.html   |   4 +-
           .../site/apidocs/musichub/business/AudioBook.html  |   4 +-
           .../apidocs/musichub/business/AudioElement.html    |   4 +-
           .../site/apidocs/musichub/business/Category.html   |   4 +-
           target/site/apidocs/musichub/business/Genre.html   |   4 +-
           .../site/apidocs/musichub/business/Language.html   |   4 +-
           .../site/apidocs/musichub/business/MusicHub.html   |  63 ++-
           .../musichub/business/NoAlbumFoundException.html   |   4 +-
           .../musichub/business/NoElementFoundException.html |   4 +-
           .../business/NoPlayListFoundException.html         |   4 +-
           .../site/apidocs/musichub/business/PlayList.html   |   4 +-
           target/site/apidocs/musichub/business/Song.html    |   4 +-
           .../apidocs/musichub/business/class-use/Album.html |   4 +-
           .../musichub/business/class-use/AudioBook.html     |   4 +-
           .../musichub/business/class-use/AudioElement.html  |   9 +-
           .../musichub/business/class-use/Category.html      |   4 +-
           .../apidocs/musichub/business/class-use/Genre.html |   4 +-
           .../musichub/business/class-use/Language.html      |   4 +-
           .../musichub/business/class-use/MusicHub.html      |   4 +-
           .../business/class-use/NoAlbumFoundException.html  |  23 +-
           .../class-use/NoElementFoundException.html         |   7 +-
           .../class-use/NoPlayListFoundException.html        |   9 +-
           .../musichub/business/class-use/PlayList.html      |   4 +-
           .../apidocs/musichub/business/class-use/Song.html  |   4 +-
           .../apidocs/musichub/business/package-summary.html |   4 +-
           .../apidocs/musichub/business/package-tree.html    |   4 +-
           .../apidocs/musichub/business/package-use.html     |  17 +-
           target/site/apidocs/musichub/main/Main.html        |   8 +-
           .../site/apidocs/musichub/main/class-use/Main.html |   4 +-
           .../apidocs/musichub/main/package-summary.html     |   4 +-
           .../site/apidocs/musichub/main/package-tree.html   |   4 +-
           target/site/apidocs/musichub/main/package-use.html |   4 +-
           target/site/apidocs/musichub/util/LogHandler.html  |   4 +-
           .../site/apidocs/musichub/util/PathValidation.html |   4 +-
           target/site/apidocs/musichub/util/Policy.html      | 183 ++++++++
           target/site/apidocs/musichub/util/XMLHandler.html  |   4 +-
           .../musichub/util/class-use/LogHandler.html        |   4 +-
           .../musichub/util/class-use/PathValidation.html    |   4 +-
           .../apidocs/musichub/util/class-use/Policy.html    |  65 +++
           .../musichub/util/class-use/XMLHandler.html        |   4 +-
           .../apidocs/musichub/util/package-summary.html     |  12 +-
           .../site/apidocs/musichub/util/package-tree.html   |   5 +-
           target/site/apidocs/musichub/util/package-use.html |   4 +-
           target/site/apidocs/overview-summary.html          |   4 +-
           target/site/apidocs/overview-tree.html             |   5 +-
           target/site/apidocs/serialized-form.html           |   4 +-
           target/site/apidocs/type-search-index.js           |   2 +-
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   8 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/AudioElement.html     |   2 +-
           .../musichub.business/AudioElement.java.html       | 162 +++----
           target/site/jacoco/musichub.business/MusicHub.html |   2 +-
           .../jacoco/musichub.business/MusicHub.java.html    | 482 +++++++++++----------
           .../jacoco/musichub.business/SortByAuthor.html     |   2 +-
           .../site/jacoco/musichub.business/SortByDate.html  |   2 +-
           .../site/jacoco/musichub.business/SortByGenre.html |   2 +-
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.html         |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 429 +++++++++---------
           target/site/jacoco/musichub.main/index.html        |   2 +-
           target/site/jacoco/musichub.main/index.source.html |   2 +-
           target/site/jacoco/musichub.util/Policy.html       |   2 +-
           target/site/jacoco/musichub.util/Policy.java.html  | 143 ++----
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           target/spoteezer-0.1.0-shaded.jar                  | Bin 374992 -> 372732 bytes
           target/spoteezer-0.1.0.jar                         | Bin 374992 -> 372732 bytes
           .../TEST-musichub.business.CategoryTest.xml        |   4 +-
           .../TEST-musichub.business.LanguageTest.xml        |   4 +-
           .../TEST-musichub.business.PlayListTest.xml        |   8 +-
           .../TEST-musichub.business.SongTest.xml            |  10 +-
           .../TEST-musichub.util.LogHandlerTest.xml          |  12 +-
           .../TEST-musichub.util.PathValidationTest.xml      |   6 +-
           .../TEST-musichub.util.XMLHandlerTest.xml          |   8 +-
           .../musichub.business.PlayListTest.txt             |   2 +-
           .../musichub.business.SongTest.txt                 |   2 +-
           .../musichub.util.LogHandlerTest.txt               |   2 +-
           .../musichub.util.PathValidationTest.txt           |   2 +-
           .../musichub.util.XMLHandlerTest.txt               |   2 +-
           100 files changed, 1192 insertions(+), 819 deletions(-)
           create mode 100644 target/site/apidocs/musichub/util/Policy.html
           create mode 100644 target/site/apidocs/musichub/util/class-use/Policy.html
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 7904af2..51a5d09 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -41,4 +41,8 @@
           [2021-06-28 20:32:31.447] INFO: Music stopped
           [2021-06-28 20:32:32.647] INFO: Music stopped
           [2021-06-28 20:32:43.836] INFO: Music started
          -[2021-06-28 20:32:52.768] INFO: Music stopped
          \ No newline at end of file
          +[2021-06-28 20:32:52.768] INFO: Music stopped
          +[2021-06-28 23:30:48.508] TEST: JUnit test
          +[2021-06-28 23:31:59.503] TEST: JUnit test
          +[2021-06-28 23:36:26.824] TEST: JUnit test
          +[2021-06-28 23:36:31.897] TEST: JUnit test
          \ No newline at end of file
          diff --git a/src/main/java/musichub/util/Policy.java b/src/main/java/musichub/util/Policy.java
          index ac067b4..01c7d20 100644
          --- a/src/main/java/musichub/util/Policy.java
          +++ b/src/main/java/musichub/util/Policy.java
          @@ -32,58 +32,10 @@ public final class Policy {
           
                   String termsAndConditions = """
                           Terms and Conditions
          -
                           In using this website you are deemed to have read and agreed to the following terms and conditions:
          -
          -                The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: "Client", “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. "The Company", “Ourselves”, “We” and "Us", refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.
          -
                           Privacy Statement
                           We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible
          -
          -                Confidentiality
          -                We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.
          -
          -                We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.
          -
          -
          -                Disclaimer
          -                Exclusions and Limitations\s
          -                The information on this web site is provided on an "as is" basis. To the fullest extent permitted by law, this Company:
          -                \uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and\s
          -                \uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages.\s
          -                This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected.\s
          -
          -
          -
          -                Cancellation Policy
          -                Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.
          -
          -                Termination of Agreements and Refunds Policy
          -                Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.
          -
          -                Availability\s
          -                Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.
          -
          -
          -                Copyright Notice\s
          -                Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application.\s
          -
          -                Communication
          -                We have several different e-mail addresses for different queries. These, & other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.
          -
          -                Force Majeure
          -                Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.
          -
          -                Waiver
          -                Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.
          -
          -                General
          -                The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.
          -
          -                Notification of Changes
          -                The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis
          -
          -                These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.   \s
          +                These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.   s
                           © Company Name 2021 All Rights Reserved
                           """;
           
          diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class
          index bb0f170..f46a913 100644
          Binary files a/target/classes/musichub/business/AudioElement.class and b/target/classes/musichub/business/AudioElement.class differ
          diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class
          index 42d7480..f3ea4cc 100644
          Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ
          diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class
          index e366c32..ac4474a 100644
          Binary files a/target/classes/musichub/business/SortByAuthor.class and b/target/classes/musichub/business/SortByAuthor.class differ
          diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class
          index 9d330cb..6892059 100644
          Binary files a/target/classes/musichub/business/SortByDate.class and b/target/classes/musichub/business/SortByDate.class differ
          diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class
          index 512232f..7cabb3e 100644
          Binary files a/target/classes/musichub/business/SortByGenre.class and b/target/classes/musichub/business/SortByGenre.class differ
          diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class
          index d1f8ea2..03d8fc5 100644
          Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ
          diff --git a/target/classes/musichub/util/Policy.class b/target/classes/musichub/util/Policy.class
          index 4bf6b23..a8c66c4 100644
          Binary files a/target/classes/musichub/util/Policy.class and b/target/classes/musichub/util/Policy.class differ
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index c71133e..34e3b31 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          index 7723699..54d0d1a 100644
          --- a/target/maven-javadoc-plugin-stale-data.txt
          +++ b/target/maven-javadoc-plugin-stale-data.txt
          @@ -39,28 +39,29 @@
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/Policy.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
           C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
           C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
           C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
          -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624793029572
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624793029575
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624793029464
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624793029599
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624793029596
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624793029553
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624793029620
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624793029579
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624793029576
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624793029597
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624793029548
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624793029577
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624793029602
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624793029605
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624793029489
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624793029601
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624793029580
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624793029578
          \ No newline at end of file
          +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624912572607
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624916173953
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624916173955
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624916173845
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624916173978
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624916173975
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624916173935
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624916173996
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624916173958
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624916173956
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624916173975
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624916173932
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624916173957
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624916173981
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624916173983
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624916173866
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624916173979
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624916173959
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624916173957
          \ No newline at end of file
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          index dee388f..96eb4fb 100644
          Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          index f526bdf..46cc044 100644
          --- a/target/site/apidocs/allclasses-index.html
          +++ b/target/site/apidocs/allclasses-index.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>All Classes (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="class index">
           <meta name="generator" content="javadoc/AllClassesIndexWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          @@ -96,10 +96,14 @@ loadScripts(document, 'script');</script>
           </div>
           <div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/Policy.html" title="class in musichub.util">Policy</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          +<div class="block">Class offering methods to prompt a policy agreement form to the user.</div>
          +</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
           </div>
           </div>
           </div>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          index 76d905a..e7eec7c 100644
          --- a/target/site/apidocs/allpackages-index.html
          +++ b/target/site/apidocs/allpackages-index.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>All Packages (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="package index">
           <meta name="generator" content="javadoc/AllPackagesIndexWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          index 98c4397..a2dc5e0 100644
          --- a/target/site/apidocs/help-doc.html
          +++ b/target/site/apidocs/help-doc.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>API Help (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="help">
           <meta name="generator" content="javadoc/HelpWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          index bb29e83..4154466 100644
          --- a/target/site/apidocs/index-all.html
          +++ b/target/site/apidocs/index-all.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Index (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="index">
           <meta name="generator" content="javadoc/IndexWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          @@ -182,6 +182,14 @@ loadScripts(document, 'script');</script>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Language.html#getLanguage()">getLanguage()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
           <dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getPlayListSongs(java.lang.String)">getPlayListSongs(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>
          +<div class="block">Method checking the songs contained in a chosen playlist and returning them if found.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getPlayListsTitles()">getPlayListsTitles()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>
          +<div class="block">Method getting a list of playlists</div>
          +</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongs()">getSongs()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongsRandomly()">getSongsRandomly()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          @@ -291,6 +299,14 @@ loadScripts(document, 'script');</script>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
           <dd>&nbsp;</dd>
          +<dt><a href="musichub/util/Policy.html" title="class in musichub.util"><span class="type-name-link">Policy</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>
          +<div class="block">Class offering methods to prompt a policy agreement form to the user.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/Policy.html#%3Cinit%3E()">Policy()</a></span> - Constructor for class musichub.util.<a href="musichub/util/Policy.html" title="class in musichub.util">Policy</a></dt>
          +<dd>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Genre.html#POP">POP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
           <dd>&nbsp;</dd>
           </dl>
          @@ -313,12 +329,18 @@ loadScripts(document, 'script');</script>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#savePlayLists()">savePlayLists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
           <dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#searchAudioElement()">searchAudioElement()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          +<dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setCategory(java.lang.String)">setCategory(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Song.html#setGenre(java.lang.String)">setGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setLanguage(java.lang.String)">setLanguage(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
           <dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/Policy.html#showTerm()">showTerm()</a></span> - Static method in class musichub.util.<a href="musichub/util/Policy.html" title="class in musichub.util">Policy</a></dt>
          +<dd>
          +<div class="block">Method prompting the whole policy agreement process</div>
          +</dd>
           <dt><a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          index e4f188e..4b86103 100644
          --- a/target/site/apidocs/index.html
          +++ b/target/site/apidocs/index.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Overview (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="package index">
           <meta name="generator" content="javadoc/PackageIndexWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          index f583be9..3f8b8cd 100644
          --- a/target/site/apidocs/member-search-index.js
          +++ b/target/site/apidocs/member-search-index.js
          @@ -1 +1 @@
          -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"MusicHub","l":"getPlayListSongs(String)","u":"getPlayListSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getPlayListsTitles()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.util","c":"Policy","l":"Policy()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"MusicHub","l":"searchAudioElement()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.util","c":"Policy","l":"showTerm()"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          index 1218e4a..05e3672 100644
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ b/target/site/apidocs/musichub/business/Album.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: Album">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          index 2947784..90aca57 100644
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/AudioBook.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: AudioBook">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          index 952130b..fc48e95 100644
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/AudioElement.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: AudioElement">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          index efdb113..81893ae 100644
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ b/target/site/apidocs/musichub/business/Category.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, enum: Category">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          index fb61007..47e52f0 100644
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ b/target/site/apidocs/musichub/business/Genre.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, enum: Genre">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          index de6d02c..9bf8df2 100644
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ b/target/site/apidocs/musichub/business/Language.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, enum: Language">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          index c9aa14b..b8a7d99 100644
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/MusicHub.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: MusicHub">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          @@ -175,6 +175,16 @@ loadScripts(document, 'script');</script>
           <div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
            <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
           <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getPlayListSongs(java.lang.String)">getPlayListSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method checking the songs contained in a chosen playlist and returning them if found.</div>
          +</div>
          +<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          +<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getPlayListsTitles()">getPlayListsTitles</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method getting a list of playlists</div>
          +</div>
           <div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
           <div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#playlists()">playlists</a></span>()</code></div>
           <div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          @@ -187,6 +197,9 @@ loadScripts(document, 'script');</script>
           <div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
           <div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#savePlayLists()">savePlayLists</a></span>()</code></div>
           <div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          +<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          +<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#searchAudioElement()">searchAudioElement</a></span>()</code></div>
          +<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
           </div>
           </div>
           </div>
          @@ -395,6 +408,52 @@ loadScripts(document, 'script');</script>
           </dl>
           </section>
           </li>
          +<li>
          +<section class="detail" id="searchAudioElement()">
          +<h3>searchAudioElement</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">searchAudioElement</span>()
          +                        throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          +<a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a>,
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          +<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          +<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          +<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getPlayListsTitles()">
          +<h3>getPlayListsTitles</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getPlayListsTitles</span>()</div>
          +<div class="block">Method getting a list of playlists</div>
          +<dl class="notes">
          +<dt>Returns:</dt>
          +<dd>a list of playlist titles</dd>
          +</dl>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="getPlayListSongs(java.lang.String)">
          +<h3>getPlayListSongs</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">getPlayListSongs</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          +                                    throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          +<div class="block">Method checking the songs contained in a chosen playlist and returning them if found.</div>
          +<dl class="notes">
          +<dt>Parameters:</dt>
          +<dd><code>playListTitle</code> - the title of a (chosen) playlist</dd>
          +<dt>Returns:</dt>
          +<dd>a list of songs from a playlist</dd>
          +<dt>Throws:</dt>
          +<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code> - if the chosen playlist doesn't exist</dd>
          +</dl>
          +</section>
          +</li>
           </ul>
           </section>
           </li>
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          index 8cd2100..074411d 100644
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: NoAlbumFoundException">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          index 41fa7a8..59f09c8 100644
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: NoElementFoundException">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          index 65ad902..c5cadd8 100644
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: NoPlayListFoundException">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          index a0bd02b..e61a1f5 100644
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ b/target/site/apidocs/musichub/business/PlayList.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: PlayList">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          index 2550898..25364f2 100644
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ b/target/site/apidocs/musichub/business/Song.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business, class: Song">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          index 846ce1e..04fb824 100644
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ b/target/site/apidocs/musichub/business/class-use/Album.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: Album">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          index ac2d207..4563de1 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: AudioBook">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          index 6721959..a522d81 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: AudioElement">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          @@ -89,6 +89,11 @@ loadScripts(document, 'script');</script>
           <div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
           <div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getPlayListSongs(java.lang.String)">getPlayListSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Method checking the songs contained in a chosen playlist and returning them if found.</div>
          +</div>
           </div>
           <div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
           <div class="summary-table three-column-summary">
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          index bf72525..a505a01 100644
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ b/target/site/apidocs/musichub/business/class-use/Category.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, enum: Category">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          index 45e4285..3b28e4b 100644
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ b/target/site/apidocs/musichub/business/class-use/Genre.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, enum: Genre">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          index 2641403..8eef0cd 100644
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ b/target/site/apidocs/musichub/business/class-use/Language.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, enum: Language">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          index 6001814..66f825c 100644
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: MusicHub">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          index ec4794b..4afe620 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: NoAlbumFoundException">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          @@ -60,6 +60,8 @@ loadScripts(document, 'script');</script>
           <div class="table-header col-last">Description</div>
           <div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="#musichub.main">musichub.main</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
           </div>
           <section class="class-uses">
           <ul class="block-list">
          @@ -85,6 +87,23 @@ loadScripts(document, 'script');</script>
           <div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
            <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#searchAudioElement()">searchAudioElement</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
          +<li>
          +<section class="detail" id="musichub.main">
          +<h2>Uses of <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a> in <a href="../../main/package-summary.html">musichub.main</a></h2>
          +<div class="caption"><span>Methods in <a href="../../main/package-summary.html">musichub.main</a> that throw <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          +<div class="summary-table three-column-summary">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><code>static void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">Main.</span><code><span class="member-name-link"><a href="../../main/Main.html#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
           </div>
           </section>
           </li>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          index 438ea7e..5a15a6e 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: NoElementFoundException">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          @@ -79,6 +79,9 @@ loadScripts(document, 'script');</script>
           <div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
            <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code>void</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#searchAudioElement()">searchAudioElement</a></span>()</code></div>
          +<div class="col-last even-row-color">&nbsp;</div>
           </div>
           </section>
           </li>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          index fc2e2e3..074b203 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: NoPlayListFoundException">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          @@ -78,6 +78,11 @@ loadScripts(document, 'script');</script>
           <div class="col-first odd-row-color"><code>void</code></div>
           <div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          +<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getPlayListSongs(java.lang.String)">getPlayListSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Method checking the songs contained in a chosen playlist and returning them if found.</div>
          +</div>
           </div>
           </section>
           </li>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          index bda55e0..d482eb3 100644
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: PlayList">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          index 3325f6e..8989a96 100644
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ b/target/site/apidocs/musichub/business/class-use/Song.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business, class: Song">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          index 6091b4c..687fe85 100644
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ b/target/site/apidocs/musichub/business/package-summary.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.business">
           <meta name="generator" content="javadoc/PackageWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          index 043e924..0577411 100644
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ b/target/site/apidocs/musichub/business/package-tree.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="tree: package: musichub.business">
           <meta name="generator" content="javadoc/PackageTreeWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          index 9e21dc4..fb82b92 100644
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ b/target/site/apidocs/musichub/business/package-use.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.business">
           <meta name="generator" content="javadoc/PackageUseWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          @@ -60,6 +60,8 @@ loadScripts(document, 'script');</script>
           <div class="table-header col-last">Description</div>
           <div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="#musichub.main">musichub.main</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
           </div>
           <section class="package-uses">
           <ul class="block-list">
          @@ -92,6 +94,17 @@ loadScripts(document, 'script');</script>
           </div>
           </section>
           </li>
          +<li>
          +<section class="detail" id="musichub.main">
          +<div class="caption"><span>Classes in <a href="package-summary.html">musichub.business</a> used by <a href="../main/package-summary.html">musichub.main</a></span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Class</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="class-use/NoAlbumFoundException.html#musichub.main">NoAlbumFoundException</a></div>
          +<div class="col-last even-row-color">&nbsp;</div>
          +</div>
          +</section>
          +</li>
           </ul>
           </section>
           </main>
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          index 689df96..8e747c6 100644
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ b/target/site/apidocs/musichub/main/Main.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.main, class: Main">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          @@ -149,12 +149,14 @@ loadScripts(document, 'script');</script>
           <div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">main</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</span>
                            throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
           <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          +<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a>,
          +<a href="../business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
           <dl class="notes">
           <dt>Throws:</dt>
           <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
           <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
           <dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          +<dd><code><a href="../business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
           </dl>
           </section>
           </li>
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          index 3510a5a..135db94 100644
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ b/target/site/apidocs/musichub/main/class-use/Main.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.main, class: Main">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          index 3173f29..3e7843a 100644
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ b/target/site/apidocs/musichub/main/package-summary.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.main">
           <meta name="generator" content="javadoc/PackageWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          index 28af7d3..b315db7 100644
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ b/target/site/apidocs/musichub/main/package-tree.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="tree: package: musichub.main">
           <meta name="generator" content="javadoc/PackageTreeWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          index 91940dd..e258c4a 100644
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ b/target/site/apidocs/musichub/main/package-use.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.main">
           <meta name="generator" content="javadoc/PackageUseWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/LogHandler.html b/target/site/apidocs/musichub/util/LogHandler.html
          index ef83ebd..fce5e8d 100644
          --- a/target/site/apidocs/musichub/util/LogHandler.html
          +++ b/target/site/apidocs/musichub/util/LogHandler.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>LogHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.util, class: LogHandler">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/PathValidation.html b/target/site/apidocs/musichub/util/PathValidation.html
          index fefddad..06d60fe 100644
          --- a/target/site/apidocs/musichub/util/PathValidation.html
          +++ b/target/site/apidocs/musichub/util/PathValidation.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>PathValidation (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.util, class: PathValidation">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/Policy.html b/target/site/apidocs/musichub/util/Policy.html
          new file mode 100644
          index 0000000..4cb02cb
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/Policy.html
          @@ -0,0 +1,183 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
          +<title>Policy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-28">
          +<meta name="description" content="declaration: package: musichub.util, class: Policy">
          +<meta name="generator" content="javadoc/ClassWriterImpl">
          +<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../script.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-declaration-page">
          +<script type="text/javascript">var evenRowColor = "even-row-color";
          +var oddRowColor = "odd-row-color";
          +var tableTab = "table-tab";
          +var activeTableTab = "active-table-tab";
          +var pathtoroot = "../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../index.html">Overview</a></li>
          +<li><a href="package-summary.html">Package</a></li>
          +<li class="nav-bar-cell1-rev">Class</li>
          +<li><a href="class-use/Policy.html">Use</a></li>
          +<li><a href="package-tree.html">Tree</a></li>
          +<li><a href="../../index-all.html">Index</a></li>
          +<li><a href="../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div>
          +<ul class="sub-nav-list">
          +<li>Summary:&nbsp;</li>
          +<li>Nested&nbsp;|&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.summary">Method</a></li>
          +</ul>
          +<ul class="sub-nav-list">
          +<li>Detail:&nbsp;</li>
          +<li>Field&nbsp;|&nbsp;</li>
          +<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          +<li><a href="#method.detail">Method</a></li>
          +</ul>
          +</div>
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<!-- ======== START OF CLASS DATA ======== -->
          +<div class="header">
          +<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          +<h1 title="Class Policy" class="title">Class Policy</h1>
          +</div>
          +<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          +<div class="inheritance">musichub.util.Policy</div>
          +</div>
          +<section class="description">
          +<hr>
          +<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">Policy</span>
          +<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          +<div class="block">Class offering methods to prompt a policy agreement form to the user.</div>
          +<dl class="notes">
          +<dt>Version:</dt>
          +<dd>1.0</dd>
          +<dt>Author:</dt>
          +<dd>Anthony BOULANT</dd>
          +</dl>
          +</section>
          +<section class="summary">
          +<ul class="summary-list">
          +<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          +<li>
          +<section class="constructor-summary" id="constructor.summary">
          +<h2>Constructor Summary</h2>
          +<div class="caption"><span>Constructors</span></div>
          +<div class="summary-table two-column-summary">
          +<div class="table-header col-first">Constructor</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">Policy</a></span>()</code></div>
          +<div class="col-last even-row-color">
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</div>
          +</div>
          +</section>
          +</li>
          +<!-- ========== METHOD SUMMARY =========== -->
          +<li>
          +<section class="method-summary" id="method.summary">
          +<h2>Method Summary</h2>
          +<div id="method-summary-table">
          +<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          +<div id="method-summary-table.tabpanel" role="tabpanel">
          +<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          +<div class="table-header col-first">Modifier and Type</div>
          +<div class="table-header col-second">Method</div>
          +<div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          +<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#showTerm()">showTerm</a></span>()</code></div>
          +<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          +<div class="block">Method prompting the whole policy agreement process</div>
          +</div>
          +</div>
          +</div>
          +</div>
          +<div class="inherited-list">
          +<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          +<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<section class="details">
          +<ul class="details-list">
          +<!-- ========= CONSTRUCTOR DETAIL ======== -->
          +<li>
          +<section class="constructor-details" id="constructor.detail">
          +<h2>Constructor Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="&lt;init&gt;()">
          +<h3>Policy</h3>
          +<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Policy</span>()</div>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +<dl class="notes">
          +<dt>Throws:</dt>
          +<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">AssertionError</a></code> - you can't instantiate this class</dd>
          +</dl>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +<!-- ============ METHOD DETAIL ========== -->
          +<li>
          +<section class="method-details" id="method.detail">
          +<h2>Method Details</h2>
          +<ul class="member-list">
          +<li>
          +<section class="detail" id="showTerm()">
          +<h3>showTerm</h3>
          +<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">showTerm</span>()</div>
          +<div class="block">Method prompting the whole policy agreement process</div>
          +</section>
          +</li>
          +</ul>
          +</section>
          +</li>
          +</ul>
          +</section>
          +<!-- ========= END OF CLASS DATA ========= -->
          +</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          index 7236da3..b2d5bac 100644
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/XMLHandler.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.util, class: XMLHandler">
           <meta name="generator" content="javadoc/ClassWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/class-use/LogHandler.html b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          index 990f0fd..506f390 100644
          --- a/target/site/apidocs/musichub/util/class-use/LogHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/LogHandler.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.util.LogHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.util, class: LogHandler">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/class-use/PathValidation.html b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          index 220526c..e41b131 100644
          --- a/target/site/apidocs/musichub/util/class-use/PathValidation.html
          +++ b/target/site/apidocs/musichub/util/class-use/PathValidation.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.util.PathValidation (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.util, class: PathValidation">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/class-use/Policy.html b/target/site/apidocs/musichub/util/class-use/Policy.html
          new file mode 100644
          index 0000000..ea71f0b
          --- /dev/null
          +++ b/target/site/apidocs/musichub/util/class-use/Policy.html
          @@ -0,0 +1,65 @@
          +<!DOCTYPE HTML>
          +<!-- NewPage -->
          +<html lang="fr">
          +<head>
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
          +<title>Uses of Class musichub.util.Policy (spoteezer 0.1.0 API)</title>
          +<meta name="viewport" content="width=device-width, initial-scale=1">
          +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          +<meta name="dc.created" content="2021-06-28">
          +<meta name="description" content="use: package: musichub.util, class: Policy">
          +<meta name="generator" content="javadoc/ClassUseWriter">
          +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          +<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          +<script type="text/javascript" src="../../../script.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          +<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          +</head>
          +<body class="class-use-page">
          +<script type="text/javascript">var pathtoroot = "../../../";
          +loadScripts(document, 'script');</script>
          +<noscript>
          +<div>JavaScript is disabled on your browser.</div>
          +</noscript>
          +<div class="flex-box">
          +<header role="banner" class="flex-header">
          +<nav role="navigation">
          +<!-- ========= START OF TOP NAVBAR ======= -->
          +<div class="top-nav" id="navbar.top">
          +<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          +<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          +<li><a href="../../../index.html">Overview</a></li>
          +<li><a href="../package-summary.html">Package</a></li>
          +<li><a href="../Policy.html" title="class in musichub.util">Class</a></li>
          +<li class="nav-bar-cell1-rev">Use</li>
          +<li><a href="../package-tree.html">Tree</a></li>
          +<li><a href="../../../index-all.html">Index</a></li>
          +<li><a href="../../../help-doc.html">Help</a></li>
          +</ul>
          +</div>
          +<div class="sub-nav">
          +<div class="nav-list-search"><label for="search">SEARCH:</label>
          +<input type="text" id="search" value="search" disabled="disabled">
          +<input type="reset" id="reset" value="reset" disabled="disabled">
          +</div>
          +</div>
          +<!-- ========= END OF TOP NAVBAR ========= -->
          +<span class="skip-nav" id="skip.navbar.top">
          +<!--   -->
          +</span></nav>
          +</header>
          +<div class="flex-content">
          +<main role="main">
          +<div class="header">
          +<h1 title="Uses of Class musichub.util.Policy" class="title">Uses of Class<br>musichub.util.Policy</h1>
          +</div>
          +No usage of musichub.util.Policy</main>
          +<footer role="contentinfo">
          +<hr>
          +<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          +</footer>
          +</div>
          +</div>
          +</body>
          +</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          index 7a70382..c373d88 100644
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.util, class: XMLHandler">
           <meta name="generator" content="javadoc/ClassUseWriter">
           <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          index f86937c..90a4118 100644
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ b/target/site/apidocs/musichub/util/package-summary.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="declaration: package: musichub.util">
           <meta name="generator" content="javadoc/PackageWriterImpl">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          @@ -71,8 +71,12 @@ loadScripts(document, 'script');</script>
           <div class="col-last odd-row-color">
           <div class="block">Class offering a path validation method.</div>
           </div>
          -<div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first even-row-color"><a href="Policy.html" title="class in musichub.util">Policy</a></div>
          +<div class="col-last even-row-color">
          +<div class="block">Class offering methods to prompt a policy agreement form to the user.</div>
          +</div>
          +<div class="col-first odd-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
           </div>
           </li>
           </ul>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          index ffec452..3975c7d 100644
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ b/target/site/apidocs/musichub/util/package-tree.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="tree: package: musichub.util">
           <meta name="generator" content="javadoc/PackageTreeWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          @@ -65,6 +65,7 @@ loadScripts(document, 'script');</script>
           <ul>
           <li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
           <li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          +<li class="circle">musichub.util.<a href="Policy.html" title="class in musichub.util"><span class="type-name-link">Policy</span></a></li>
           <li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
           </ul>
           </li>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          index 5b04593..29e9afd 100644
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ b/target/site/apidocs/musichub/util/package-use.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="use: package: musichub.util">
           <meta name="generator" content="javadoc/PackageUseWriter">
           <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          index 4cc33e6..e04109c 100644
          --- a/target/site/apidocs/overview-summary.html
          +++ b/target/site/apidocs/overview-summary.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>spoteezer 0.1.0 API</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="index redirect">
           <meta name="generator" content="javadoc/IndexRedirectWriter">
           <link rel="canonical" href="index.html">
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          index cdf90ae..fa638f1 100644
          --- a/target/site/apidocs/overview-tree.html
          +++ b/target/site/apidocs/overview-tree.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="class tree">
           <meta name="generator" content="javadoc/TreeWriter">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          @@ -77,6 +77,7 @@ loadScripts(document, 'script');</script>
           <li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
           <li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          +<li class="circle">musichub.util.<a href="musichub/util/Policy.html" title="class in musichub.util"><span class="type-name-link">Policy</span></a></li>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
           <ul>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          index 4f1d9d0..6403fa7 100644
          --- a/target/site/apidocs/serialized-form.html
          +++ b/target/site/apidocs/serialized-form.html
          @@ -2,11 +2,11 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sun Jun 27 13:23:48 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Mon Jun 28 23:36:13 CEST 2021 -->
           <title>Serialized Form (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-27">
          +<meta name="dc.created" content="2021-06-28">
           <meta name="description" content="serialized forms">
           <meta name="generator" content="javadoc/SerializedFormWriterImpl">
           <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          index 26dac6f..65bf426 100644
          --- a/target/site/apidocs/type-search-index.js
          +++ b/target/site/apidocs/type-search-index.js
          @@ -1 +1 @@
          -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.util","l":"Policy"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index b7992f7..dc1c55c 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 167 of 2 969</td><td class="ctr2">27 %</td><td class="bar">207 of 230</td><td class="ctr2">10 %</td><td class="ctr1">177</td><td class="ctr2">226</td><td class="ctr1">612</td><td class="ctr2">794</td><td class="ctr1">57</td><td class="ctr2">97</td><td class="ctr1">10</td><td class="ctr2">20</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="83" height="10" title="1 483" alt="1 483"/><img src="jacoco-resources/greenbar.gif" width="36" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">30 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="160" alt="160"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">10 %</td><td class="ctr1" id="f0">140</td><td class="ctr2" id="g0">178</td><td class="ctr1" id="h0">373</td><td class="ctr2" id="i0">513</td><td class="ctr1" id="j0">51</td><td class="ctr2" id="k0">82</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="625" alt="625"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="28" height="10" title="42" alt="42"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">31</td><td class="ctr2" id="g1">31</td><td class="ctr1" id="h1">215</td><td class="ctr2" id="i1">215</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="59" alt="59"/><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">71 %</td><td class="bar" id="d2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="5" alt="5"/><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">44 %</td><td class="ctr1" id="f2">6</td><td class="ctr2" id="g2">17</td><td class="ctr1" id="h2">24</td><td class="ctr2" id="i2">66</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k1">12</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">4</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 376 of 3 178</td><td class="ctr2">25 %</td><td class="bar">223 of 246</td><td class="ctr2">9 %</td><td class="ctr1">187</td><td class="ctr2">236</td><td class="ctr1">672</td><td class="ctr2">854</td><td class="ctr1">59</td><td class="ctr2">99</td><td class="ctr1">10</td><td class="ctr2">20</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="85" height="10" title="1 588" alt="1 588"/><img src="jacoco-resources/greenbar.gif" width="34" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">29 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="108" height="10" title="175" alt="175"/><img src="jacoco-resources/greenbar.gif" width="11" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">9 %</td><td class="ctr1" id="f0">149</td><td class="ctr2" id="g0">187</td><td class="ctr1" id="h0">393</td><td class="ctr2" id="i0">533</td><td class="ctr1" id="j0">53</td><td class="ctr2" id="k0">84</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="38" height="10" title="722" alt="722"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="26" height="10" title="43" alt="43"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">32</td><td class="ctr2" id="g1">32</td><td class="ctr1" id="h1">251</td><td class="ctr2" id="i1">251</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="66" alt="66"/><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">69 %</td><td class="bar" id="d2"><img src="jacoco-resources/redbar.gif" width="3" height="10" title="5" alt="5"/><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">44 %</td><td class="ctr1" id="f2">6</td><td class="ctr2" id="g2">17</td><td class="ctr1" id="h2">28</td><td class="ctr2" id="i2">70</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k1">12</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">4</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 59fcb45..2e5066f 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-7357f010</span></td><td>27 juin 2021, 22:23:27</td><td>27 juin 2021, 22:23:27</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-7357f010</span></td><td>27 juin 2021, 22:23:27</td><td>27 juin 2021, 22:23:27</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-811f3cc5</span></td><td>28 juin 2021, 23:30:47</td><td>28 juin 2021, 23:30:48</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-b70e9563</span></td><td>28 juin 2021, 23:31:58</td><td>28 juin 2021, 23:31:59</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-a94600a7</span></td><td>28 juin 2021, 23:36:26</td><td>28 juin 2021, 23:36:27</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-cbfb49a8</span></td><td>28 juin 2021, 23:36:31</td><td>28 juin 2021, 23:36:32</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>f7fee30268ca924b</code></td></tr><tr><td><span class="el_class">musichub.business.AudioElement</span></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 555d233..7b39bb6 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -2,13 +2,13 @@ GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_
           spoteezer,musichub.util,PathValidation,0,39,0,4,0,10,0,4,0,2
           spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
           spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
          -spoteezer,musichub.util,Policy,53,0,5,0,20,0,6,0,3,0
          +spoteezer,musichub.util,Policy,60,0,5,0,24,0,6,0,3,0
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Language,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
          -spoteezer,musichub.business,MusicHub,874,0,124,0,209,0,85,0,23,0
          +spoteezer,musichub.business,MusicHub,973,0,140,0,228,0,95,0,25,0
           spoteezer,musichub.business,Category,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
          @@ -17,5 +17,5 @@ spoteezer,musichub.business,AudioBook,117,47,8,2,27,12,12,5,4,5
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
          -spoteezer,musichub.business,AudioElement,85,181,9,2,30,42,11,5,4,5
          -spoteezer,musichub.main,Main,625,0,42,0,215,0,31,0,3,0
          +spoteezer,musichub.business,AudioElement,91,181,8,2,31,42,10,5,4,5
          +spoteezer,musichub.main,Main,722,0,43,0,251,0,32,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index e10770f..30a884a 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><sessioninfo id="DESKTOP-M4INQND-7357f010" start="1624825407091" dump="1624825407773"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/Policy" sourcefilename="Policy.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="showTerm" desc="()V" line="27"><counter type="INSTRUCTION" missed="39" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAgreement" desc="()V" line="128"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Policy.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="27" mi="2" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="5" ci="0" mb="0" cb="0"/><line nr="109" mi="4" ci="0" mb="0" cb="0"/><line nr="111" mi="4" ci="0" mb="2" cb="0"/><line nr="112" mi="4" ci="0" mb="3" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="125" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="59" covered="151"/><counter type="BRANCH" missed="5" covered="4"/><counter type="LINE" missed="24" covered="42"/><counter type="COMPLEXITY" missed="6" covered="11"/><counter type="METHOD" missed="3" covered="9"/><counter type="CLASS" missed="1" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="searchAudioElement" desc="()V" line="344"><counter type="INSTRUCTION" missed="71" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="874" covered="0"/><counter type="BRANCH" missed="124" covered="0"/><counter type="LINE" missed="209" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="23" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><line nr="344" mi="5" ci="0" mb="0" cb="0"/><line nr="345" mi="3" ci="0" mb="0" cb="0"/><line nr="346" mi="5" ci="0" mb="0" cb="0"/><line nr="347" mi="4" ci="0" mb="0" cb="0"/><line nr="348" mi="11" ci="0" mb="2" cb="0"/><line nr="349" mi="14" ci="0" mb="4" cb="0"/><line nr="350" mi="4" ci="0" mb="0" cb="0"/><line nr="351" mi="3" ci="0" mb="0" cb="0"/><line nr="353" mi="1" ci="0" mb="0" cb="0"/><line nr="355" mi="3" ci="0" mb="2" cb="0"/><line nr="356" mi="5" ci="0" mb="0" cb="0"/><line nr="358" mi="4" ci="0" mb="2" cb="0"/><line nr="359" mi="8" ci="0" mb="0" cb="0"/><line nr="361" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="901" covered="0"/><counter type="BRANCH" missed="124" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="91" covered="0"/><counter type="METHOD" missed="29" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1483" covered="651"/><counter type="BRANCH" missed="160" covered="19"/><counter type="LINE" missed="373" covered="140"/><counter type="COMPLEXITY" missed="140" covered="38"/><counter type="METHOD" missed="51" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="16"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="19"><counter type="INSTRUCTION" missed="579" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="276"><counter type="INSTRUCTION" missed="43" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="16" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="4" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="5" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="2" cb="0"/><line nr="33" mi="4" ci="0" mb="2" cb="0"/><line nr="34" mi="4" ci="0" mb="16" cb="0"/><line nr="36" mi="2" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="4" ci="0" mb="0" cb="0"/><line nr="44" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="3" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="1" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="3" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="76" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="1" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="3" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="3" ci="0" mb="2" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="101" mi="3" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="1" ci="0" mb="0" cb="0"/><line nr="107" mi="9" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="10" ci="0" mb="2" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="1" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="1" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="3" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="4" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="8" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="3" ci="0" mb="0" cb="0"/><line nr="131" mi="10" ci="0" mb="2" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="1" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="1" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="140" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="2" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="148" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="3" ci="0" mb="2" cb="0"/><line nr="150" mi="4" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="155" mi="4" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="157" mi="4" ci="0" mb="0" cb="0"/><line nr="158" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="1" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="1" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="4" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="10" ci="0" mb="0" cb="0"/><line nr="179" mi="3" ci="0" mb="0" cb="0"/><line nr="180" mi="3" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="10" ci="0" mb="2" cb="0"/><line nr="183" mi="1" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="1" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="3" ci="0" mb="2" cb="0"/><line nr="192" mi="4" ci="0" mb="0" cb="0"/><line nr="193" mi="4" ci="0" mb="0" cb="0"/><line nr="194" mi="1" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="197" mi="5" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="0" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="2" cb="0"/><line nr="203" mi="4" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="5" ci="0" mb="2" cb="0"/><line nr="207" mi="3" ci="0" mb="0" cb="0"/><line nr="208" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="4" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="4" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="3" ci="0" mb="0" cb="0"/><line nr="217" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="1" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="0" cb="0"/><line nr="221" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="225" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="2" cb="0"/><line nr="227" mi="4" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="234" mi="4" ci="0" mb="0" cb="0"/><line nr="235" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="3" ci="0" mb="0" cb="0"/><line nr="237" mi="1" ci="0" mb="0" cb="0"/><line nr="238" mi="3" ci="0" mb="0" cb="0"/><line nr="239" mi="1" ci="0" mb="0" cb="0"/><line nr="242" mi="2" ci="0" mb="0" cb="0"/><line nr="243" mi="2" ci="0" mb="0" cb="0"/><line nr="244" mi="2" ci="0" mb="0" cb="0"/><line nr="245" mi="3" ci="0" mb="0" cb="0"/><line nr="246" mi="1" ci="0" mb="0" cb="0"/><line nr="247" mi="3" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="2" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="255" mi="4" ci="0" mb="0" cb="0"/><line nr="257" mi="1" ci="0" mb="0" cb="0"/><line nr="258" mi="5" ci="0" mb="0" cb="0"/><line nr="259" mi="2" ci="0" mb="0" cb="0"/><line nr="260" mi="1" ci="0" mb="0" cb="0"/><line nr="263" mi="1" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="269" mi="1" ci="0" mb="0" cb="0"/><line nr="272" mi="2" ci="0" mb="0" cb="0"/><line nr="273" mi="1" ci="0" mb="0" cb="0"/><line nr="276" mi="3" ci="0" mb="0" cb="0"/><line nr="277" mi="3" ci="0" mb="0" cb="0"/><line nr="278" mi="3" ci="0" mb="0" cb="0"/><line nr="279" mi="3" ci="0" mb="0" cb="0"/><line nr="280" mi="3" ci="0" mb="0" cb="0"/><line nr="281" mi="3" ci="0" mb="0" cb="0"/><line nr="282" mi="3" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="0" cb="0"/><line nr="284" mi="3" ci="0" mb="0" cb="0"/><line nr="285" mi="3" ci="0" mb="0" cb="0"/><line nr="286" mi="3" ci="0" mb="0" cb="0"/><line nr="287" mi="3" ci="0" mb="0" cb="0"/><line nr="288" mi="3" ci="0" mb="0" cb="0"/><line nr="289" mi="3" ci="0" mb="0" cb="0"/><line nr="290" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="625" covered="0"/><counter type="BRANCH" missed="42" covered="0"/><counter type="LINE" missed="215" covered="0"/><counter type="COMPLEXITY" missed="31" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2167" covered="802"/><counter type="BRANCH" missed="207" covered="23"/><counter type="LINE" missed="612" covered="182"/><counter type="COMPLEXITY" missed="177" covered="49"/><counter type="METHOD" missed="57" covered="40"/><counter type="CLASS" missed="10" covered="10"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><sessioninfo id="DESKTOP-M4INQND-7357f010" start="1624825407091" dump="1624825407773"/><sessioninfo id="DESKTOP-M4INQND-811f3cc5" start="1624915847905" dump="1624915848700"/><sessioninfo id="DESKTOP-M4INQND-b70e9563" start="1624915918971" dump="1624915919702"/><sessioninfo id="DESKTOP-M4INQND-a94600a7" start="1624916186303" dump="1624916187008"/><sessioninfo id="DESKTOP-M4INQND-cbfb49a8" start="1624916191408" dump="1624916192082"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/Policy" sourcefilename="Policy.java"><method name="&lt;init&gt;" desc="()V" line="22"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="showTerm" desc="()V" line="33"><counter type="INSTRUCTION" missed="46" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="19" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAgreement" desc="()V" line="73"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="60" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Policy.java"><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="5" ci="0" mb="0" cb="0"/><line nr="44" mi="4" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="2" cb="0"/><line nr="47" mi="4" ci="0" mb="3" cb="0"/><line nr="48" mi="3" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="2" ci="0" mb="0" cb="0"/><line nr="64" mi="1" ci="0" mb="0" cb="0"/><line nr="65" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="60" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="66" covered="151"/><counter type="BRANCH" missed="5" covered="4"/><counter type="LINE" missed="28" covered="42"/><counter type="COMPLEXITY" missed="6" covered="11"/><counter type="METHOD" missed="3" covered="9"/><counter type="CLASS" missed="1" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="28"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="14"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="16"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="40"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="52"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="56"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="60"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="65"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="80"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="84"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="88"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="92"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="100"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="112"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="134"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="157"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="186"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="217"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="235"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="253"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="281"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="297"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="313"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="334"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="searchAudioElement" desc="()V" line="343"><counter type="INSTRUCTION" missed="71" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getPlayListsTitles" desc="()Ljava/lang/String;" line="369"><counter type="INSTRUCTION" missed="26" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getPlayListSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="385"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="33"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="973" covered="0"/><counter type="BRANCH" missed="140" covered="0"/><counter type="LINE" missed="228" covered="0"/><counter type="COMPLEXITY" missed="95" covered="0"/><counter type="METHOD" missed="25" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="20"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="22"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="20"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="28"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="36"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="55"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="71"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="95"><counter type="INSTRUCTION" missed="74" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="91" covered="181"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="31" covered="42"/><counter type="COMPLEXITY" missed="10" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="14" mi="3" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="6" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="6" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="2" ci="0" mb="0" cb="0"/><line nr="43" mi="5" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="5" ci="0" mb="0" cb="0"/><line nr="57" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="5" ci="0" mb="0" cb="0"/><line nr="61" mi="1" ci="0" mb="0" cb="0"/><line nr="65" mi="2" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="11" ci="0" mb="2" cb="0"/><line nr="68" mi="5" ci="0" mb="2" cb="0"/><line nr="69" mi="2" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="2" ci="0" mb="2" cb="0"/><line nr="75" mi="5" ci="0" mb="0" cb="0"/><line nr="76" mi="8" ci="0" mb="2" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="6" ci="0" mb="0" cb="0"/><line nr="94" mi="11" ci="0" mb="2" cb="0"/><line nr="95" mi="8" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="100" mi="4" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="11" ci="0" mb="2" cb="0"/><line nr="103" mi="4" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="0" cb="0"/><line nr="105" mi="5" ci="0" mb="0" cb="0"/><line nr="106" mi="10" ci="0" mb="2" cb="0"/><line nr="107" mi="8" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="2" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="114" mi="11" ci="0" mb="2" cb="0"/><line nr="115" mi="5" ci="0" mb="2" cb="0"/><line nr="116" mi="2" ci="0" mb="0" cb="0"/><line nr="117" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="2" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="10" ci="0" mb="2" cb="0"/><line nr="124" mi="12" ci="0" mb="2" cb="0"/><line nr="125" mi="3" ci="0" mb="2" cb="0"/><line nr="126" mi="9" ci="0" mb="2" cb="0"/><line nr="128" mi="1" ci="0" mb="0" cb="0"/><line nr="129" mi="2" ci="0" mb="0" cb="0"/><line nr="134" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="11" ci="0" mb="2" cb="0"/><line nr="137" mi="5" ci="0" mb="2" cb="0"/><line nr="138" mi="2" ci="0" mb="0" cb="0"/><line nr="139" mi="1" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="7" ci="0" mb="2" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="10" ci="0" mb="2" cb="0"/><line nr="146" mi="12" ci="0" mb="2" cb="0"/><line nr="147" mi="3" ci="0" mb="2" cb="0"/><line nr="148" mi="10" ci="0" mb="2" cb="0"/><line nr="150" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="5" ci="0" mb="0" cb="0"/><line nr="152" mi="2" ci="0" mb="0" cb="0"/><line nr="157" mi="2" ci="0" mb="0" cb="0"/><line nr="159" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="9" ci="0" mb="2" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="6" ci="0" mb="0" cb="0"/><line nr="163" mi="2" ci="0" mb="0" cb="0"/><line nr="164" mi="1" ci="0" mb="0" cb="0"/><line nr="168" mi="2" ci="0" mb="2" cb="0"/><line nr="169" mi="2" ci="0" mb="0" cb="0"/><line nr="170" mi="11" ci="0" mb="2" cb="0"/><line nr="171" mi="5" ci="0" mb="2" cb="0"/><line nr="172" mi="2" ci="0" mb="0" cb="0"/><line nr="173" mi="1" ci="0" mb="0" cb="0"/><line nr="175" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="2" ci="0" mb="2" cb="0"/><line nr="177" mi="4" ci="0" mb="0" cb="0"/><line nr="179" mi="7" ci="0" mb="0" cb="0"/><line nr="180" mi="6" ci="0" mb="0" cb="0"/><line nr="181" mi="7" ci="0" mb="0" cb="0"/><line nr="183" mi="1" ci="0" mb="0" cb="0"/><line nr="186" mi="2" ci="0" mb="0" cb="0"/><line nr="188" mi="2" ci="0" mb="0" cb="0"/><line nr="190" mi="9" ci="0" mb="2" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="6" ci="0" mb="0" cb="0"/><line nr="193" mi="2" ci="0" mb="0" cb="0"/><line nr="194" mi="1" ci="0" mb="0" cb="0"/><line nr="198" mi="2" ci="0" mb="2" cb="0"/><line nr="199" mi="2" ci="0" mb="0" cb="0"/><line nr="200" mi="11" ci="0" mb="2" cb="0"/><line nr="201" mi="5" ci="0" mb="2" cb="0"/><line nr="202" mi="2" ci="0" mb="0" cb="0"/><line nr="203" mi="1" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="2" ci="0" mb="2" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="209" mi="7" ci="0" mb="0" cb="0"/><line nr="210" mi="6" ci="0" mb="0" cb="0"/><line nr="212" mi="7" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="5" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="2" cb="0"/><line nr="220" mi="8" ci="0" mb="2" cb="0"/><line nr="221" mi="6" ci="0" mb="2" cb="0"/><line nr="222" mi="5" ci="0" mb="0" cb="0"/><line nr="223" mi="5" ci="0" mb="2" cb="0"/><line nr="225" mi="6" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="228" mi="1" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="5" ci="0" mb="0" cb="0"/><line nr="236" mi="3" ci="0" mb="2" cb="0"/><line nr="238" mi="8" ci="0" mb="2" cb="0"/><line nr="239" mi="6" ci="0" mb="2" cb="0"/><line nr="240" mi="5" ci="0" mb="0" cb="0"/><line nr="241" mi="5" ci="0" mb="2" cb="0"/><line nr="243" mi="6" ci="0" mb="0" cb="0"/><line nr="244" mi="1" ci="0" mb="0" cb="0"/><line nr="245" mi="3" ci="0" mb="0" cb="0"/><line nr="246" mi="1" ci="0" mb="0" cb="0"/><line nr="250" mi="1" ci="0" mb="0" cb="0"/><line nr="253" mi="5" ci="0" mb="0" cb="0"/><line nr="254" mi="3" ci="0" mb="2" cb="0"/><line nr="256" mi="8" ci="0" mb="2" cb="0"/><line nr="257" mi="6" ci="0" mb="2" cb="0"/><line nr="258" mi="5" ci="0" mb="0" cb="0"/><line nr="259" mi="5" ci="0" mb="2" cb="0"/><line nr="261" mi="5" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="1" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="1" ci="0" mb="0" cb="0"/><line nr="267" mi="5" ci="0" mb="2" cb="0"/><line nr="269" mi="5" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="1" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="1" ci="0" mb="0" cb="0"/><line nr="277" mi="1" ci="0" mb="0" cb="0"/><line nr="281" mi="4" ci="0" mb="0" cb="0"/><line nr="282" mi="3" ci="0" mb="2" cb="0"/><line nr="285" mi="4" ci="0" mb="0" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="289" mi="6" ci="0" mb="2" cb="0"/><line nr="290" mi="4" ci="0" mb="0" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="1" ci="0" mb="0" cb="0"/><line nr="293" mi="5" ci="0" mb="0" cb="0"/><line nr="294" mi="1" ci="0" mb="0" cb="0"/><line nr="297" mi="4" ci="0" mb="0" cb="0"/><line nr="298" mi="3" ci="0" mb="2" cb="0"/><line nr="301" mi="4" ci="0" mb="0" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="305" mi="6" ci="0" mb="2" cb="0"/><line nr="306" mi="4" ci="0" mb="0" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="1" ci="0" mb="0" cb="0"/><line nr="309" mi="5" ci="0" mb="0" cb="0"/><line nr="310" mi="1" ci="0" mb="0" cb="0"/><line nr="313" mi="4" ci="0" mb="0" cb="0"/><line nr="314" mi="3" ci="0" mb="2" cb="0"/><line nr="317" mi="4" ci="0" mb="0" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="321" mi="11" ci="0" mb="2" cb="0"/><line nr="323" mi="3" ci="0" mb="2" cb="0"/><line nr="324" mi="4" ci="0" mb="0" cb="0"/><line nr="326" mi="3" ci="0" mb="2" cb="0"/><line nr="327" mi="4" ci="0" mb="0" cb="0"/><line nr="329" mi="1" ci="0" mb="0" cb="0"/><line nr="330" mi="5" ci="0" mb="0" cb="0"/><line nr="331" mi="1" ci="0" mb="0" cb="0"/><line nr="334" mi="10" ci="0" mb="2" cb="0"/><line nr="335" mi="5" ci="0" mb="2" cb="0"/><line nr="336" mi="2" ci="0" mb="0" cb="0"/><line nr="338" mi="1" ci="0" mb="0" cb="0"/><line nr="340" mi="1" ci="0" mb="0" cb="0"/><line nr="343" mi="5" ci="0" mb="0" cb="0"/><line nr="344" mi="3" ci="0" mb="0" cb="0"/><line nr="345" mi="5" ci="0" mb="0" cb="0"/><line nr="346" mi="4" ci="0" mb="0" cb="0"/><line nr="347" mi="11" ci="0" mb="2" cb="0"/><line nr="348" mi="14" ci="0" mb="4" cb="0"/><line nr="349" mi="4" ci="0" mb="0" cb="0"/><line nr="350" mi="3" ci="0" mb="0" cb="0"/><line nr="352" mi="1" ci="0" mb="0" cb="0"/><line nr="354" mi="3" ci="0" mb="2" cb="0"/><line nr="355" mi="5" ci="0" mb="0" cb="0"/><line nr="357" mi="4" ci="0" mb="2" cb="0"/><line nr="358" mi="8" ci="0" mb="0" cb="0"/><line nr="360" mi="1" ci="0" mb="0" cb="0"/><line nr="369" mi="4" ci="0" mb="0" cb="0"/><line nr="371" mi="11" ci="0" mb="2" cb="0"/><line nr="372" mi="8" ci="0" mb="0" cb="0"/><line nr="373" mi="3" ci="0" mb="0" cb="0"/><line nr="385" mi="2" ci="0" mb="0" cb="0"/><line nr="386" mi="4" ci="0" mb="0" cb="0"/><line nr="387" mi="11" ci="0" mb="2" cb="0"/><line nr="388" mi="5" ci="0" mb="2" cb="0"/><line nr="389" mi="2" ci="0" mb="0" cb="0"/><line nr="390" mi="1" ci="0" mb="0" cb="0"/><line nr="392" mi="1" ci="0" mb="0" cb="0"/><line nr="393" mi="7" ci="0" mb="2" cb="0"/><line nr="395" mi="3" ci="0" mb="0" cb="0"/><line nr="396" mi="10" ci="0" mb="2" cb="0"/><line nr="397" mi="12" ci="0" mb="2" cb="0"/><line nr="398" mi="3" ci="0" mb="2" cb="0"/><line nr="399" mi="9" ci="0" mb="2" cb="0"/><line nr="401" mi="1" ci="0" mb="0" cb="0"/><line nr="402" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="1000" covered="0"/><counter type="BRANCH" missed="140" covered="0"/><counter type="LINE" missed="234" covered="0"/><counter type="COMPLEXITY" missed="101" covered="0"/><counter type="METHOD" missed="31" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="20" mi="0" ci="2" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="3" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="4" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="3" mb="0" cb="0"/><line nr="32" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="36" mi="0" ci="2" mb="0" cb="0"/><line nr="38" mi="0" ci="8" mb="0" cb="0"/><line nr="39" mi="0" ci="8" mb="0" cb="0"/><line nr="40" mi="0" ci="9" mb="0" cb="0"/><line nr="41" mi="0" ci="8" mb="0" cb="0"/><line nr="42" mi="0" ci="2" mb="0" cb="0"/><line nr="44" mi="0" ci="7" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="0" ci="1" mb="0" cb="0"/><line nr="48" mi="0" ci="5" mb="2" cb="2"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="52" mi="0" ci="1" mb="0" cb="0"/><line nr="55" mi="3" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="0" ci="10" mb="0" cb="0"/><line nr="71" mi="0" ci="4" mb="0" cb="0"/><line nr="72" mi="0" ci="7" mb="0" cb="0"/><line nr="73" mi="0" ci="4" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="9" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="8" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="7" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="1" mb="0" cb="0"/><line nr="95" mi="5" ci="0" mb="0" cb="0"/><line nr="97" mi="6" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="102" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="8" ci="0" mb="4" cb="0"/><line nr="111" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="2" ci="0" mb="0" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="1" ci="0" mb="0" cb="0"/><line nr="116" mi="2" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="91" covered="181"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="31" covered="42"/><counter type="COMPLEXITY" missed="10" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1588" covered="651"/><counter type="BRANCH" missed="175" covered="19"/><counter type="LINE" missed="393" covered="140"/><counter type="COMPLEXITY" missed="149" covered="38"/><counter type="METHOD" missed="53" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="16"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="19"><counter type="INSTRUCTION" missed="673" covered="0"/><counter type="BRANCH" missed="43" covered="0"/><counter type="LINE" missed="234" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="318"><counter type="INSTRUCTION" missed="46" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="722" covered="0"/><counter type="BRANCH" missed="43" covered="0"/><counter type="LINE" missed="251" covered="0"/><counter type="COMPLEXITY" missed="32" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="16" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="4" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="5" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="2" cb="0"/><line nr="33" mi="4" ci="0" mb="2" cb="0"/><line nr="34" mi="4" ci="0" mb="17" cb="0"/><line nr="36" mi="2" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="4" ci="0" mb="0" cb="0"/><line nr="44" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="3" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="5" ci="0" mb="0" cb="0"/><line nr="59" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="65" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="3" ci="0" mb="0" cb="0"/><line nr="73" mi="4" ci="0" mb="0" cb="0"/><line nr="74" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="3" ci="0" mb="0" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="3" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="3" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="3" ci="0" mb="0" cb="0"/><line nr="100" mi="4" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="102" mi="2" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="1" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="2" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="9" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="10" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="1" ci="0" mb="0" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="133" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="0" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="8" ci="0" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="148" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="3" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="3" ci="0" mb="2" cb="0"/><line nr="158" mi="4" ci="0" mb="0" cb="0"/><line nr="159" mi="7" ci="0" mb="2" cb="0"/><line nr="160" mi="1" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="2" cb="0"/><line nr="166" mi="4" ci="0" mb="0" cb="0"/><line nr="167" mi="4" ci="0" mb="0" cb="0"/><line nr="168" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="4" ci="0" mb="0" cb="0"/><line nr="172" mi="1" ci="0" mb="0" cb="0"/><line nr="173" mi="4" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="1" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="1" ci="0" mb="0" cb="0"/><line nr="182" mi="3" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="3" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="3" ci="0" mb="0" cb="0"/><line nr="195" mi="10" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="197" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="0" cb="0"/><line nr="200" mi="10" ci="0" mb="2" cb="0"/><line nr="201" mi="1" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="0" cb="0"/><line nr="203" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="3" ci="0" mb="0" cb="0"/><line nr="208" mi="3" ci="0" mb="0" cb="0"/><line nr="209" mi="3" ci="0" mb="2" cb="0"/><line nr="210" mi="4" ci="0" mb="0" cb="0"/><line nr="211" mi="4" ci="0" mb="0" cb="0"/><line nr="212" mi="1" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="3" ci="0" mb="0" cb="0"/><line nr="215" mi="5" ci="0" mb="0" cb="0"/><line nr="216" mi="3" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="4" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="225" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="4" ci="0" mb="0" cb="0"/><line nr="231" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="3" ci="0" mb="0" cb="0"/><line nr="235" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="3" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="0" cb="0"/><line nr="238" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="3" ci="0" mb="0" cb="0"/><line nr="240" mi="1" ci="0" mb="0" cb="0"/><line nr="243" mi="3" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="3" ci="0" mb="2" cb="0"/><line nr="246" mi="4" ci="0" mb="0" cb="0"/><line nr="247" mi="4" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="3" ci="0" mb="0" cb="0"/><line nr="252" mi="1" ci="0" mb="0" cb="0"/><line nr="253" mi="4" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="0" cb="0"/><line nr="257" mi="1" ci="0" mb="0" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="1" ci="0" mb="0" cb="0"/><line nr="262" mi="2" ci="0" mb="0" cb="0"/><line nr="263" mi="2" ci="0" mb="0" cb="0"/><line nr="264" mi="2" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="2" ci="0" mb="0" cb="0"/><line nr="275" mi="1" ci="0" mb="0" cb="0"/><line nr="276" mi="4" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="279" mi="3" ci="0" mb="0" cb="0"/><line nr="280" mi="5" ci="0" mb="0" cb="0"/><line nr="281" mi="2" ci="0" mb="0" cb="0"/><line nr="282" mi="1" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="0" cb="0"/><line nr="284" mi="1" ci="0" mb="0" cb="0"/><line nr="287" mi="1" ci="0" mb="0" cb="0"/><line nr="288" mi="3" ci="0" mb="0" cb="0"/><line nr="289" mi="3" ci="0" mb="0" cb="0"/><line nr="290" mi="1" ci="0" mb="0" cb="0"/><line nr="293" mi="3" ci="0" mb="0" cb="0"/><line nr="294" mi="4" ci="0" mb="0" cb="0"/><line nr="296" mi="3" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="5" ci="0" mb="0" cb="0"/><line nr="300" mi="3" ci="0" mb="0" cb="0"/><line nr="301" mi="4" ci="0" mb="0" cb="0"/><line nr="302" mi="1" ci="0" mb="0" cb="0"/><line nr="303" mi="3" ci="0" mb="0" cb="0"/><line nr="304" mi="5" ci="0" mb="0" cb="0"/><line nr="305" mi="1" ci="0" mb="0" cb="0"/><line nr="306" mi="1" ci="0" mb="0" cb="0"/><line nr="307" mi="3" ci="0" mb="0" cb="0"/><line nr="308" mi="1" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="2" ci="0" mb="0" cb="0"/><line nr="315" mi="1" ci="0" mb="0" cb="0"/><line nr="318" mi="3" ci="0" mb="0" cb="0"/><line nr="319" mi="3" ci="0" mb="0" cb="0"/><line nr="320" mi="3" ci="0" mb="0" cb="0"/><line nr="321" mi="3" ci="0" mb="0" cb="0"/><line nr="322" mi="3" ci="0" mb="0" cb="0"/><line nr="323" mi="3" ci="0" mb="0" cb="0"/><line nr="324" mi="3" ci="0" mb="0" cb="0"/><line nr="325" mi="3" ci="0" mb="0" cb="0"/><line nr="326" mi="3" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="0" cb="0"/><line nr="328" mi="3" ci="0" mb="0" cb="0"/><line nr="329" mi="3" ci="0" mb="0" cb="0"/><line nr="330" mi="3" ci="0" mb="0" cb="0"/><line nr="331" mi="3" ci="0" mb="0" cb="0"/><line nr="332" mi="3" ci="0" mb="0" cb="0"/><line nr="333" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="722" covered="0"/><counter type="BRANCH" missed="43" covered="0"/><counter type="LINE" missed="251" covered="0"/><counter type="COMPLEXITY" missed="32" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="722" covered="0"/><counter type="BRANCH" missed="43" covered="0"/><counter type="LINE" missed="251" covered="0"/><counter type="COMPLEXITY" missed="32" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2376" covered="802"/><counter type="BRANCH" missed="223" covered="23"/><counter type="LINE" missed="672" covered="182"/><counter type="COMPLEXITY" missed="187" covered="49"/><counter type="METHOD" missed="59" covered="40"/><counter type="CLASS" missed="10" covered="10"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.html b/target/site/jacoco/musichub.business/AudioElement.html
          index 18f7368..6498736 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">85 of 266</td><td class="ctr2">68 %</td><td class="bar">9 of 11</td><td class="ctr2">18 %</td><td class="ctr1">11</td><td class="ctr2">16</td><td class="ctr1">30</td><td class="ctr2">72</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="83" height="10" title="55" alt="55"/></td><td class="ctr2" id="c4">87 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">91 of 272</td><td class="ctr2">66 %</td><td class="bar">8 of 10</td><td class="ctr2">20 %</td><td class="ctr1">10</td><td class="ctr2">15</td><td class="ctr1">31</td><td class="ctr2">73</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a7"><a href="AudioElement.java.html#L95" class="el_method">manageAudioElement()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="74" alt="74"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L36" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="83" height="10" title="55" alt="55"/></td><td class="ctr2" id="c4">87 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L55" class="el_method">getUUID()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L59" class="el_method">getArtist()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L63" class="el_method">getTitle()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="AudioElement.java.html#L71" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L20" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L28" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L67" class="el_method">toString()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.java.html b/target/site/jacoco/musichub.business/AudioElement.java.html
          index 7863e1a..34bbc3b 100644
          --- a/target/site/jacoco/musichub.business/AudioElement.java.html
          +++ b/target/site/jacoco/musichub.business/AudioElement.java.html
          @@ -1,19 +1,15 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">AudioElement.java</span></div><h1>AudioElement.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          +import musichub.util.LogHandler;
           import org.w3c.dom.Document;
           import org.w3c.dom.Element;
           
          +import javax.sound.sampled.*;
           import java.io.File;
           import java.io.IOException;
           import java.util.Scanner;
           import java.util.UUID;
           
          -import javax.sound.sampled.AudioInputStream;
          -import javax.sound.sampled.AudioSystem;
          -import javax.sound.sampled.Clip;
          -import javax.sound.sampled.LineUnavailableException;
          -import javax.sound.sampled.UnsupportedAudioFileException;
          -
           public abstract class AudioElement {
               protected String title;
               protected String artist;
          @@ -21,109 +17,113 @@ public abstract class AudioElement {
               protected UUID uuid;
               protected String content;
           
          -<span class="fc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          -<span class="fc" id="L25">        this.title = title;</span>
          -<span class="fc" id="L26">        this.artist = artist;</span>
          -<span class="fc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
          -<span class="fc" id="L28">        this.uuid = UUID.fromString(id);</span>
          -<span class="fc" id="L29">        this.content = content;</span>
          -<span class="fc" id="L30">    }</span>
          -
          -<span class="fc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          -<span class="fc" id="L33">        this.title = title;</span>
          -<span class="fc" id="L34">        this.artist = artist;</span>
          -<span class="fc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
          -<span class="fc" id="L36">        this.content = content;</span>
          -<span class="fc" id="L37">        this.uuid = UUID.randomUUID();</span>
          -<span class="fc" id="L38">    }</span>
          -
          -<span class="fc" id="L40">    public AudioElement(Element xmlElement) {</span>
          +<span class="fc" id="L20">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          +<span class="fc" id="L21">        this.title = title;</span>
          +<span class="fc" id="L22">        this.artist = artist;</span>
          +<span class="fc" id="L23">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="fc" id="L24">        this.uuid = UUID.fromString(id);</span>
          +<span class="fc" id="L25">        this.content = content;</span>
          +<span class="fc" id="L26">    }</span>
          +
          +<span class="fc" id="L28">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          +<span class="fc" id="L29">        this.title = title;</span>
          +<span class="fc" id="L30">        this.artist = artist;</span>
          +<span class="fc" id="L31">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="fc" id="L32">        this.content = content;</span>
          +<span class="fc" id="L33">        this.uuid = UUID.randomUUID();</span>
          +<span class="fc" id="L34">    }</span>
          +
          +<span class="fc" id="L36">    public AudioElement(Element xmlElement) {</span>
                   {
          -<span class="fc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          -<span class="fc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          -<span class="fc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          -<span class="fc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          -<span class="fc" id="L46">            String uuid = null;</span>
          +<span class="fc" id="L38">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L39">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L40">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          +<span class="fc" id="L41">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          +<span class="fc" id="L42">            String uuid = null;</span>
                       try {
          -<span class="fc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          -<span class="nc" id="L49">            } catch (Exception ex) {</span>
          -<span class="nc" id="L50">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
          -<span class="fc" id="L51">            }</span>
          -<span class="pc bpc" id="L52" title="2 of 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          -<span class="nc" id="L53">                this.uuid = UUID.randomUUID();</span>
          -<span class="fc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
          +<span class="fc" id="L44">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L45">            } catch (Exception ex) {</span>
          +<span class="nc" id="L46">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
          +<span class="fc" id="L47">            }</span>
          +<span class="pc bpc" id="L48" title="2 of 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L49">                this.uuid = UUID.randomUUID();</span>
          +<span class="fc" id="L50">            else this.uuid = UUID.fromString(uuid);</span>
                   }
          -<span class="fc" id="L56">    }</span>
          +<span class="fc" id="L52">    }</span>
           
               public UUID getUUID() {
          -<span class="nc" id="L59">        return this.uuid;</span>
          +<span class="nc" id="L55">        return this.uuid;</span>
               }
           
               public String getArtist() {
          -<span class="nc" id="L63">        return this.artist;</span>
          +<span class="nc" id="L59">        return this.artist;</span>
               }
           
               public String getTitle() {
          -<span class="nc" id="L67">        return this.title;</span>
          +<span class="nc" id="L63">        return this.title;</span>
               }
           
               public String toString() {
          -<span class="fc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
          +<span class="fc" id="L67">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
               }
           
               public void createXMLElement(Document document, Element parentElement) {
          -<span class="fc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          -<span class="fc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
          -<span class="fc" id="L77">        parentElement.appendChild(nameElement);</span>
          +<span class="fc" id="L71">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="fc" id="L72">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="fc" id="L73">        parentElement.appendChild(nameElement);</span>
           
          -<span class="fc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          -<span class="fc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
          -<span class="fc" id="L81">        parentElement.appendChild(artistElement);</span>
          +<span class="fc" id="L75">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="fc" id="L76">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="fc" id="L77">        parentElement.appendChild(artistElement);</span>
           
          -<span class="fc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          -<span class="fc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          -<span class="fc" id="L85">        parentElement.appendChild(lengthElement);</span>
          +<span class="fc" id="L79">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          +<span class="fc" id="L80">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="fc" id="L81">        parentElement.appendChild(lengthElement);</span>
           
          -<span class="fc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          -<span class="fc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          -<span class="fc" id="L89">        parentElement.appendChild(UUIDElement);</span>
          +<span class="fc" id="L83">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="fc" id="L84">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="fc" id="L85">        parentElement.appendChild(UUIDElement);</span>
           
          -<span class="fc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          -<span class="fc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
          -<span class="fc" id="L93">        parentElement.appendChild(contentElement);</span>
          +<span class="fc" id="L87">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          +<span class="fc" id="L88">        contentElement.appendChild(document.createTextNode(content));</span>
          +<span class="fc" id="L89">        parentElement.appendChild(contentElement);</span>
           
          -<span class="fc" id="L95">    }</span>
          +<span class="fc" id="L91">    }</span>
               
               public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
               	
          -<span class="nc" id="L99">    	Scanner scanner = new Scanner(System.in); </span>
          +<span class="nc" id="L95">    	Scanner scanner = new Scanner(System.in); </span>
               	
          -<span class="nc" id="L101">    	File file = new File(this.content);</span>
          -<span class="nc" id="L102">    	AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);</span>
          -<span class="nc" id="L103">    	Clip clip = AudioSystem.getClip();</span>
          -<span class="nc" id="L104">    	clip.open(audioStream);</span>
          +<span class="nc" id="L97">    	File file = new File(this.content);</span>
          +<span class="nc" id="L98">    	AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);</span>
          +<span class="nc" id="L99">    	Clip clip = AudioSystem.getClip();</span>
          +<span class="nc" id="L100">    	clip.open(audioStream);</span>
               	
          -<span class="nc" id="L106">    	String action = &quot;&quot;;</span>
          +<span class="nc" id="L102">    	String action = &quot;&quot;;</span>
               			
          -<span class="nc bnc" id="L108" title="All 2 branches missed.">    	while(!action.equals(&quot;Q&quot;)) {</span>
          -<span class="nc" id="L109">    		System.out.println(&quot;P = Play \b S = Stop \b R = Reset \b Q = Quit&quot;);</span>
          -<span class="nc" id="L110">    		System.out.println(&quot;Enter your choice&quot;);</span>
          -<span class="nc" id="L111">    		action = scanner.next();</span>
          -<span class="nc" id="L112">        	action = action.toUpperCase();</span>
          -        	
          -<span class="nc bnc" id="L114" title="All 5 branches missed.">        	switch(action) {</span>
          -<span class="nc" id="L115">        		case &quot;S&quot; : clip.stop();</span>
          -<span class="nc" id="L116">        		break;</span>
          -<span class="nc" id="L117">        		case &quot;P&quot; : clip.start();</span>
          -<span class="nc" id="L118">        		break;</span>
          -<span class="nc" id="L119">        		case &quot;R&quot; : clip.setMicrosecondPosition(0);</span>
          -<span class="nc" id="L120">        		break;</span>
          -<span class="nc" id="L121">        		case &quot;Q&quot; : clip.stop();</span>
          -<span class="nc" id="L122">        		break;</span>
          -<span class="nc" id="L123">        		default : System.out.println(&quot;try again&quot;);</span>
          -        	}
          -<span class="nc" id="L125">        	System.out.println(&quot;You stoped the Audio element&quot;);</span>
          -    	}
          +<span class="nc bnc" id="L104" title="All 2 branches missed.">    	while(!action.equals(&quot;Q&quot;)) {</span>
          +<span class="nc" id="L105">            System.out.println(&quot;P = Play \b S = Stop \b R = Reset \b Q = Quit&quot;);</span>
          +<span class="nc" id="L106">            System.out.println(&quot;Enter your choice&quot;);</span>
          +<span class="nc" id="L107">            action = scanner.next();</span>
          +<span class="nc" id="L108">            action = action.toUpperCase();</span>
          +
          +<span class="nc bnc" id="L110" title="All 4 branches missed.">            switch (action) {</span>
          +<span class="nc" id="L111">                case &quot;S&quot;, &quot;Q&quot; -&gt; {</span>
          +<span class="nc" id="L112">                    clip.stop();</span>
          +<span class="nc" id="L113">                    LogHandler.write(&quot;Music stopped&quot;, &quot;INFO&quot;);</span>
          +                }
          +<span class="nc" id="L115">                case &quot;P&quot; -&gt; {</span>
          +<span class="nc" id="L116">                    clip.start();</span>
          +<span class="nc" id="L117">                    LogHandler.write(&quot;Music started&quot;, &quot;INFO&quot;);</span>
          +                }
          +<span class="nc" id="L119">                case &quot;R&quot; -&gt; {</span>
          +<span class="nc" id="L120">                    clip.setMicrosecondPosition(0);</span>
          +<span class="nc" id="L121">                    LogHandler.write(&quot;Music reseted&quot;, &quot;INFO&quot;);</span>
          +                }
          +<span class="nc" id="L123">                default -&gt; System.out.println(&quot;try again&quot;);</span>
          +            }
          +<span class="nc" id="L125">            System.out.println(&quot;You stopped the Audio element&quot;);</span>
          +        }
               	
           <span class="nc" id="L128">    	clip.close();</span>
               
          diff --git a/target/site/jacoco/musichub.business/MusicHub.html b/target/site/jacoco/musichub.business/MusicHub.html
          index 4ed5db0..43c8490 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">874 of 874</td><td class="ctr2">0 %</td><td class="bar">124 of 124</td><td class="ctr2">0 %</td><td class="ctr1">85</td><td class="ctr2">85</td><td class="ctr1">209</td><td class="ctr2">209</td><td class="ctr1">23</td><td class="ctr2">23</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L158" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f2">7</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L187" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L135" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L113" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L344" class="el_method">searchAudioElement()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="71" alt="71"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h5">14</td><td class="ctr2" id="i5">14</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L254" class="el_method">loadElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L101" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f10">4</td><td class="ctr2" id="g10">4</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L314" class="el_method">saveElements()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f6">5</td><td class="ctr2" id="g6">5</td><td class="ctr1" id="h6">12</td><td class="ctr2" id="i6">12</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L218" class="el_method">loadAlbums()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">11</td><td class="ctr2" id="i7">11</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L236" class="el_method">loadPlaylists()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L66" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f9">5</td><td class="ctr2" id="g9">5</td><td class="ctr1" id="h9">11</td><td class="ctr2" id="i9">11</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L282" class="el_method">saveAlbums()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f11">3</td><td class="ctr2" id="g11">3</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L298" class="el_method">savePlayLists()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h11">10</td><td class="ctr2" id="i11">10</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L93" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d14"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f14">2</td><td class="ctr2" id="g14">2</td><td class="ctr1" id="h14">5</td><td class="ctr2" id="i14">5</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L41" class="el_method">MusicHub()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h13">9</td><td class="ctr2" id="i13">9</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L335" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e14">0 %</td><td class="ctr1" id="f13">3</td><td class="ctr2" id="g13">3</td><td class="ctr1" id="h15">5</td><td class="ctr2" id="i15">5</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a22"><a href="MusicHub.java.html#L34" class="el_method">static {...}</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">4</td><td class="ctr2" id="i16">4</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L53" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L57" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L61" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">2</td><td class="ctr2" id="i19">2</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L81" class="el_method">albums()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L85" class="el_method">playlists()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L89" class="el_method">elements()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c22">0 %</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">973 of 973</td><td class="ctr2">0 %</td><td class="bar">140 of 140</td><td class="ctr2">0 %</td><td class="ctr1">95</td><td class="ctr2">95</td><td class="ctr1">228</td><td class="ctr2">228</td><td class="ctr1">25</td><td class="ctr2">25</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L157" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L186" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f4">7</td><td class="ctr2" id="g4">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L134" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L112" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L385" class="el_method">getPlayListSongs(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">8</td><td class="ctr2" id="g2">8</td><td class="ctr1" id="h5">15</td><td class="ctr2" id="i5">15</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a23"><a href="MusicHub.java.html#L343" class="el_method">searchAudioElement()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="71" alt="71"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">6</td><td class="ctr2" id="g5">6</td><td class="ctr1" id="h6">14</td><td class="ctr2" id="i6">14</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L253" class="el_method">loadElements()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f6">6</td><td class="ctr2" id="g6">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L100" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f11">4</td><td class="ctr2" id="g11">4</td><td class="ctr1" id="h13">9</td><td class="ctr2" id="i13">9</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L313" class="el_method">saveElements()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">12</td><td class="ctr2" id="i7">12</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L217" class="el_method">loadAlbums()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L235" class="el_method">loadPlaylists()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f9">5</td><td class="ctr2" id="g9">5</td><td class="ctr1" id="h9">11</td><td class="ctr2" id="i9">11</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L65" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f10">5</td><td class="ctr2" id="g10">5</td><td class="ctr1" id="h10">11</td><td class="ctr2" id="i10">11</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L281" class="el_method">saveAlbums()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h11">10</td><td class="ctr2" id="i11">10</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a22"><a href="MusicHub.java.html#L297" class="el_method">savePlayLists()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f13">3</td><td class="ctr2" id="g13">3</td><td class="ctr1" id="h12">10</td><td class="ctr2" id="i12">10</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L92" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d15"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e14">0 %</td><td class="ctr1" id="f15">2</td><td class="ctr2" id="g15">2</td><td class="ctr1" id="h15">5</td><td class="ctr2" id="i15">5</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L40" class="el_method">MusicHub()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h14">9</td><td class="ctr2" id="i14">9</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L369" class="el_method">getPlayListsTitles()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="26" alt="26"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e15">0 %</td><td class="ctr1" id="f16">2</td><td class="ctr2" id="g16">2</td><td class="ctr1" id="h17">4</td><td class="ctr2" id="i17">4</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L334" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d14"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e16">0 %</td><td class="ctr1" id="f14">3</td><td class="ctr2" id="g14">3</td><td class="ctr1" id="h16">5</td><td class="ctr2" id="i16">5</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a24"><a href="MusicHub.java.html#L33" class="el_method">static {...}</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">4</td><td class="ctr2" id="i18">4</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L52" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">2</td><td class="ctr2" id="i19">2</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L56" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">2</td><td class="ctr2" id="i20">2</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L60" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">2</td><td class="ctr2" id="i21">2</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L80" class="el_method">albums()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c22">0 %</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L84" class="el_method">playlists()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c23">0 %</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">1</td><td class="ctr2" id="i23">1</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L88" class="el_method">elements()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c24">0 %</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">1</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          index ec5e661..deb88a0 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.java.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -6,359 +6,401 @@ import org.w3c.dom.Element;
           import org.w3c.dom.Node;
           import org.w3c.dom.NodeList;
           
          -import java.io.IOException;
          -import java.util.*;
          -
           import javax.sound.sampled.LineUnavailableException;
           import javax.sound.sampled.UnsupportedAudioFileException;
          +import java.io.IOException;
          +import java.util.*;
           
          -<span class="nc" id="L15">class SortByDate implements Comparator&lt;Album&gt; {</span>
          +<span class="nc" id="L14">class SortByDate implements Comparator&lt;Album&gt; {</span>
               public int compare(Album a1, Album a2) {
          -<span class="nc" id="L17">        return a1.getDate().compareTo(a2.getDate());</span>
          +<span class="nc" id="L16">        return a1.getDate().compareTo(a2.getDate());</span>
               }
           }
           
          -<span class="nc" id="L21">class SortByGenre implements Comparator&lt;Song&gt; {</span>
          +<span class="nc" id="L20">class SortByGenre implements Comparator&lt;Song&gt; {</span>
               public int compare(Song s1, Song s2) {
          -<span class="nc" id="L23">        return s1.getGenre().compareTo(s2.getGenre());</span>
          +<span class="nc" id="L22">        return s1.getGenre().compareTo(s2.getGenre());</span>
               }
           }
           
          -<span class="nc" id="L27">class SortByAuthor implements Comparator&lt;AudioElement&gt; {</span>
          +<span class="nc" id="L26">class SortByAuthor implements Comparator&lt;AudioElement&gt; {</span>
               public int compare(AudioElement e1, AudioElement e2) {
          -<span class="nc" id="L29">        return e1.getArtist().compareTo(e2.getArtist());</span>
          +<span class="nc" id="L28">        return e1.getArtist().compareTo(e2.getArtist());</span>
               }
           }
           
           public class MusicHub {
          -<span class="nc" id="L34">    public static final String DIR = System.getProperty(&quot;user.dir&quot;);</span>
          -<span class="nc" id="L35">    public static final String ALBUMS_FILE_PATH = DIR + &quot;/files/albums.xml&quot;;</span>
          -<span class="nc" id="L36">    public static final String PLAYLISTS_FILE_PATH = DIR + &quot;/files/playlists.xml&quot;;</span>
          -<span class="nc" id="L37">    public static final String ELEMENTS_FILE_PATH = DIR + &quot;/files/elements.xml&quot;;</span>
          +<span class="nc" id="L33">    public static final String DIR = System.getProperty(&quot;user.dir&quot;);</span>
          +<span class="nc" id="L34">    public static final String ALBUMS_FILE_PATH = DIR + &quot;/files/albums.xml&quot;;</span>
          +<span class="nc" id="L35">    public static final String PLAYLISTS_FILE_PATH = DIR + &quot;/files/playlists.xml&quot;;</span>
          +<span class="nc" id="L36">    public static final String ELEMENTS_FILE_PATH = DIR + &quot;/files/elements.xml&quot;;</span>
               private final List&lt;Album&gt; albums;
               private final List&lt;PlayList&gt; playlists;
               private final List&lt;AudioElement&gt; elements;
          -<span class="nc" id="L41">    private final XMLHandler xmlHandler = new XMLHandler();</span>
          +<span class="nc" id="L40">    private final XMLHandler xmlHandler = new XMLHandler();</span>
           
          -<span class="nc" id="L43">    public MusicHub() {</span>
          -<span class="nc" id="L44">        albums = new LinkedList&lt;&gt;();</span>
          -<span class="nc" id="L45">        playlists = new LinkedList&lt;&gt;();</span>
          -<span class="nc" id="L46">        elements = new LinkedList&lt;&gt;();</span>
          -<span class="nc" id="L47">        this.loadElements();</span>
          -<span class="nc" id="L48">        this.loadAlbums();</span>
          -<span class="nc" id="L49">        this.loadPlaylists();</span>
          -<span class="nc" id="L50">    }</span>
          +<span class="nc" id="L42">    public MusicHub() {</span>
          +<span class="nc" id="L43">        albums = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L44">        playlists = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L45">        elements = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L46">        this.loadElements();</span>
          +<span class="nc" id="L47">        this.loadAlbums();</span>
          +<span class="nc" id="L48">        this.loadPlaylists();</span>
          +<span class="nc" id="L49">    }</span>
           
               public void addElement(AudioElement element) {
          -<span class="nc" id="L53">        elements.add(element);</span>
          -<span class="nc" id="L54">    }</span>
          +<span class="nc" id="L52">        elements.add(element);</span>
          +<span class="nc" id="L53">    }</span>
           
               public void addAlbum(Album album) {
          -<span class="nc" id="L57">        albums.add(album);</span>
          -<span class="nc" id="L58">    }</span>
          +<span class="nc" id="L56">        albums.add(album);</span>
          +<span class="nc" id="L57">    }</span>
           
               public void addPlaylist(PlayList playlist) {
          -<span class="nc" id="L61">        playlists.add(playlist);</span>
          -<span class="nc" id="L62">    }</span>
          +<span class="nc" id="L60">        playlists.add(playlist);</span>
          +<span class="nc" id="L61">    }</span>
           
               public void deletePlayList(String playListTitle) throws NoPlayListFoundException {
           
          -<span class="nc" id="L66">        PlayList thePlayList = null;</span>
          -<span class="nc" id="L67">        boolean result = false;</span>
          -<span class="nc bnc" id="L68" title="All 2 branches missed.">        for (PlayList pl : playlists) {</span>
          -<span class="nc bnc" id="L69" title="All 2 branches missed.">            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {</span>
          -<span class="nc" id="L70">                thePlayList = pl;</span>
          -<span class="nc" id="L71">                break;</span>
          +<span class="nc" id="L65">        PlayList thePlayList = null;</span>
          +<span class="nc" id="L66">        boolean result = false;</span>
          +<span class="nc bnc" id="L67" title="All 2 branches missed.">        for (PlayList pl : playlists) {</span>
          +<span class="nc bnc" id="L68" title="All 2 branches missed.">            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L69">                thePlayList = pl;</span>
          +<span class="nc" id="L70">                break;</span>
                       }
          -<span class="nc" id="L73">        }</span>
          +<span class="nc" id="L72">        }</span>
           
          -<span class="nc bnc" id="L75" title="All 2 branches missed.">        if (thePlayList != null)</span>
          -<span class="nc" id="L76">            result = playlists.remove(thePlayList);</span>
          -<span class="nc bnc" id="L77" title="All 2 branches missed.">        if (!result) throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          -<span class="nc" id="L78">    }</span>
          +<span class="nc bnc" id="L74" title="All 2 branches missed.">        if (thePlayList != null)</span>
          +<span class="nc" id="L75">            result = playlists.remove(thePlayList);</span>
          +<span class="nc bnc" id="L76" title="All 2 branches missed.">        if (!result) throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L77">    }</span>
           
               public Iterator&lt;Album&gt; albums() {
          -<span class="nc" id="L81">        return albums.listIterator();</span>
          +<span class="nc" id="L80">        return albums.listIterator();</span>
               }
           
               public Iterator&lt;PlayList&gt; playlists() {
          -<span class="nc" id="L85">        return playlists.listIterator();</span>
          +<span class="nc" id="L84">        return playlists.listIterator();</span>
               }
           
               public Iterator&lt;AudioElement&gt; elements() {
          -<span class="nc" id="L89">        return elements.listIterator();</span>
          +<span class="nc" id="L88">        return elements.listIterator();</span>
               }
           
               public String getAlbumsTitlesSortedByDate() {
          -<span class="nc" id="L93">        StringBuilder titleList = new StringBuilder();</span>
          -<span class="nc" id="L94">        albums.sort(new SortByDate());</span>
          -<span class="nc bnc" id="L95" title="All 2 branches missed.">        for (Album al : albums)</span>
          -<span class="nc" id="L96">            titleList.append(al.getTitle()).append(&quot;\n&quot;);</span>
          -<span class="nc" id="L97">        return titleList.toString();</span>
          +<span class="nc" id="L92">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L93">        albums.sort(new SortByDate());</span>
          +<span class="nc bnc" id="L94" title="All 2 branches missed.">        for (Album al : albums)</span>
          +<span class="nc" id="L95">            titleList.append(al.getTitle()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L96">        return titleList.toString();</span>
               }
           
               public String getAudiobooksTitlesSortedByAuthor() {
          -<span class="nc" id="L101">        StringBuilder titleList = new StringBuilder();</span>
          -<span class="nc" id="L102">        List&lt;AudioElement&gt; audioBookList = new ArrayList&lt;&gt;();</span>
          -<span class="nc bnc" id="L103" title="All 2 branches missed.">        for (AudioElement ae : elements)</span>
          -<span class="nc bnc" id="L104" title="All 2 branches missed.">            if (ae instanceof AudioBook)</span>
          -<span class="nc" id="L105">                audioBookList.add(ae);</span>
          -<span class="nc" id="L106">        audioBookList.sort(new SortByAuthor());</span>
          -<span class="nc bnc" id="L107" title="All 2 branches missed.">        for (AudioElement ab : audioBookList)</span>
          -<span class="nc" id="L108">            titleList.append(ab.getArtist()).append(&quot;\n&quot;);</span>
          -<span class="nc" id="L109">        return titleList.toString();</span>
          +<span class="nc" id="L100">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L101">        List&lt;AudioElement&gt; audioBookList = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L102" title="All 2 branches missed.">        for (AudioElement ae : elements)</span>
          +<span class="nc bnc" id="L103" title="All 2 branches missed.">            if (ae instanceof AudioBook)</span>
          +<span class="nc" id="L104">                audioBookList.add(ae);</span>
          +<span class="nc" id="L105">        audioBookList.sort(new SortByAuthor());</span>
          +<span class="nc bnc" id="L106" title="All 2 branches missed.">        for (AudioElement ab : audioBookList)</span>
          +<span class="nc" id="L107">            titleList.append(ab.getArtist()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L108">        return titleList.toString();</span>
               }
           
               public List&lt;AudioElement&gt; getAlbumSongs(String albumTitle) throws NoAlbumFoundException {
          -<span class="nc" id="L113">        Album theAlbum = null;</span>
          -<span class="nc" id="L114">        ArrayList&lt;AudioElement&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          -<span class="nc bnc" id="L115" title="All 2 branches missed.">        for (Album al : albums) {</span>
          -<span class="nc bnc" id="L116" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          -<span class="nc" id="L117">                theAlbum = al;</span>
          -<span class="nc" id="L118">                break;</span>
          +<span class="nc" id="L112">        Album theAlbum = null;</span>
          +<span class="nc" id="L113">        ArrayList&lt;AudioElement&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L114" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L115" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L116">                theAlbum = al;</span>
          +<span class="nc" id="L117">                break;</span>
                       }
          -<span class="nc" id="L120">        }</span>
          -<span class="nc bnc" id="L121" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          -
          -<span class="nc" id="L123">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          -<span class="nc bnc" id="L124" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          -<span class="nc bnc" id="L125" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          -<span class="nc bnc" id="L126" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          -<span class="nc bnc" id="L127" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add(el);</span>
          +<span class="nc" id="L119">        }</span>
          +<span class="nc bnc" id="L120" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L122">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L123" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L124" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L126" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add(el);</span>
                           }
          -<span class="nc" id="L129">            }</span>
          -<span class="nc" id="L130">        return songsInAlbum;</span>
          +<span class="nc" id="L128">            }</span>
          +<span class="nc" id="L129">        return songsInAlbum;</span>
           
               }
           
               public List&lt;Song&gt; getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException {
          -<span class="nc" id="L135">        Album theAlbum = null;</span>
          -<span class="nc" id="L136">        ArrayList&lt;Song&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          -<span class="nc bnc" id="L137" title="All 2 branches missed.">        for (Album al : albums) {</span>
          -<span class="nc bnc" id="L138" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          -<span class="nc" id="L139">                theAlbum = al;</span>
          -<span class="nc" id="L140">                break;</span>
          +<span class="nc" id="L134">        Album theAlbum = null;</span>
          +<span class="nc" id="L135">        ArrayList&lt;Song&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L136" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L138">                theAlbum = al;</span>
          +<span class="nc" id="L139">                break;</span>
                       }
          -<span class="nc" id="L142">        }</span>
          -<span class="nc bnc" id="L143" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          -
          -<span class="nc" id="L145">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          -<span class="nc bnc" id="L146" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          -<span class="nc bnc" id="L147" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          -<span class="nc bnc" id="L148" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          -<span class="nc bnc" id="L149" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add((Song) el);</span>
          +<span class="nc" id="L141">        }</span>
          +<span class="nc bnc" id="L142" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L144">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L145" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L147" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L148" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add((Song) el);</span>
                           }
          -<span class="nc" id="L151">            }</span>
          -<span class="nc" id="L152">        songsInAlbum.sort(new SortByGenre());</span>
          -<span class="nc" id="L153">        return songsInAlbum;</span>
          +<span class="nc" id="L150">            }</span>
          +<span class="nc" id="L151">        songsInAlbum.sort(new SortByGenre());</span>
          +<span class="nc" id="L152">        return songsInAlbum;</span>
           
               }
           
               public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException {
          -<span class="nc" id="L158">        Album theAlbum = null;</span>
          +<span class="nc" id="L157">        Album theAlbum = null;</span>
                   int i;
          -<span class="nc" id="L160">        boolean found = false;</span>
          -<span class="nc bnc" id="L161" title="All 2 branches missed.">        for (i = 0; i &lt; albums.size(); i++) {</span>
          -<span class="nc bnc" id="L162" title="All 2 branches missed.">            if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) {</span>
          -<span class="nc" id="L163">                theAlbum = albums.get(i);</span>
          -<span class="nc" id="L164">                found = true;</span>
          -<span class="nc" id="L165">                break;</span>
          +<span class="nc" id="L159">        boolean found = false;</span>
          +<span class="nc bnc" id="L160" title="All 2 branches missed.">        for (i = 0; i &lt; albums.size(); i++) {</span>
          +<span class="nc bnc" id="L161" title="All 2 branches missed.">            if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L162">                theAlbum = albums.get(i);</span>
          +<span class="nc" id="L163">                found = true;</span>
          +<span class="nc" id="L164">                break;</span>
                       }
                   }
           
          -<span class="nc bnc" id="L169" title="All 2 branches missed.">        if (found) {</span>
          -<span class="nc" id="L170">            AudioElement theElement = null;</span>
          -<span class="nc bnc" id="L171" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          -<span class="nc bnc" id="L172" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          -<span class="nc" id="L173">                    theElement = ae;</span>
          -<span class="nc" id="L174">                    break;</span>
          +<span class="nc bnc" id="L168" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L169">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L170" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L171" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L172">                    theElement = ae;</span>
          +<span class="nc" id="L173">                    break;</span>
                           }
          -<span class="nc" id="L176">            }</span>
          -<span class="nc bnc" id="L177" title="All 2 branches missed.">            if (theElement != null) {</span>
          -<span class="nc" id="L178">                theAlbum.addSong(theElement.getUUID());</span>
          +<span class="nc" id="L175">            }</span>
          +<span class="nc bnc" id="L176" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L177">                theAlbum.addSong(theElement.getUUID());</span>
                           //replace the album in the list
          -<span class="nc" id="L180">                albums.set(i, theAlbum);</span>
          -<span class="nc" id="L181">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          -<span class="nc" id="L182">        } else throw new NoAlbumFoundException(&quot;Album &quot; + albumTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L179">                albums.set(i, theAlbum);</span>
          +<span class="nc" id="L180">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L181">        } else throw new NoAlbumFoundException(&quot;Album &quot; + albumTitle + &quot; not found!&quot;);</span>
           
          -<span class="nc" id="L184">    }</span>
          +<span class="nc" id="L183">    }</span>
           
               public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException {
          -<span class="nc" id="L187">        PlayList thePlaylist = null;</span>
          +<span class="nc" id="L186">        PlayList thePlaylist = null;</span>
                   int i;
          -<span class="nc" id="L189">        boolean found = false;</span>
          +<span class="nc" id="L188">        boolean found = false;</span>
           
          -<span class="nc bnc" id="L191" title="All 2 branches missed.">        for (i = 0; i &lt; playlists.size(); i++) {</span>
          -<span class="nc bnc" id="L192" title="All 2 branches missed.">            if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) {</span>
          -<span class="nc" id="L193">                thePlaylist = playlists.get(i);</span>
          -<span class="nc" id="L194">                found = true;</span>
          -<span class="nc" id="L195">                break;</span>
          +<span class="nc bnc" id="L190" title="All 2 branches missed.">        for (i = 0; i &lt; playlists.size(); i++) {</span>
          +<span class="nc bnc" id="L191" title="All 2 branches missed.">            if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L192">                thePlaylist = playlists.get(i);</span>
          +<span class="nc" id="L193">                found = true;</span>
          +<span class="nc" id="L194">                break;</span>
                       }
                   }
           
          -<span class="nc bnc" id="L199" title="All 2 branches missed.">        if (found) {</span>
          -<span class="nc" id="L200">            AudioElement theElement = null;</span>
          -<span class="nc bnc" id="L201" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          -<span class="nc bnc" id="L202" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          -<span class="nc" id="L203">                    theElement = ae;</span>
          -<span class="nc" id="L204">                    break;</span>
          +<span class="nc bnc" id="L198" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L199">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L200" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L201" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L202">                    theElement = ae;</span>
          +<span class="nc" id="L203">                    break;</span>
                           }
          -<span class="nc" id="L206">            }</span>
          -<span class="nc bnc" id="L207" title="All 2 branches missed.">            if (theElement != null) {</span>
          -<span class="nc" id="L208">                thePlaylist.addElement(theElement.getUUID());</span>
          +<span class="nc" id="L205">            }</span>
          +<span class="nc bnc" id="L206" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L207">                thePlaylist.addElement(theElement.getUUID());</span>
                           //replace the album in the list
          -<span class="nc" id="L210">                playlists.set(i, thePlaylist);</span>
          -<span class="nc" id="L211">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L209">                playlists.set(i, thePlaylist);</span>
          +<span class="nc" id="L210">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
           
          -<span class="nc" id="L213">        } else throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L212">        } else throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
           
          -<span class="nc" id="L215">    }</span>
          +<span class="nc" id="L214">    }</span>
           
               private void loadAlbums() {
          -<span class="nc" id="L218">        NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH);</span>
          -<span class="nc bnc" id="L219" title="All 2 branches missed.">        if (albumNodes == null) return;</span>
          +<span class="nc" id="L217">        NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH);</span>
          +<span class="nc bnc" id="L218" title="All 2 branches missed.">        if (albumNodes == null) return;</span>
           
          -<span class="nc bnc" id="L221" title="All 2 branches missed.">        for (int i = 0; i &lt; albumNodes.getLength(); i++) {</span>
          -<span class="nc bnc" id="L222" title="All 2 branches missed.">            if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          -<span class="nc" id="L223">                Element albumElement = (Element) albumNodes.item(i);</span>
          -<span class="nc bnc" id="L224" title="All 2 branches missed.">                if (albumElement.getNodeName().equals(&quot;album&quot;)) {</span>
          +<span class="nc bnc" id="L220" title="All 2 branches missed.">        for (int i = 0; i &lt; albumNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L221" title="All 2 branches missed.">            if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L222">                Element albumElement = (Element) albumNodes.item(i);</span>
          +<span class="nc bnc" id="L223" title="All 2 branches missed.">                if (albumElement.getNodeName().equals(&quot;album&quot;)) {</span>
                               try {
          -<span class="nc" id="L226">                        this.addAlbum(new Album(albumElement));</span>
          -<span class="nc" id="L227">                    } catch (Exception ex) {</span>
          -<span class="nc" id="L228">                        System.out.println(&quot;Something is wrong with the XML album element&quot;);</span>
          -<span class="nc" id="L229">                    }</span>
          +<span class="nc" id="L225">                        this.addAlbum(new Album(albumElement));</span>
          +<span class="nc" id="L226">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L227">                        System.out.println(&quot;Something is wrong with the XML album element&quot;);</span>
          +<span class="nc" id="L228">                    }</span>
                           }
                       }
                   }
          -<span class="nc" id="L233">    }</span>
          +<span class="nc" id="L232">    }</span>
           
               private void loadPlaylists() {
          -<span class="nc" id="L236">        NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH);</span>
          -<span class="nc bnc" id="L237" title="All 2 branches missed.">        if (playlistNodes == null) return;</span>
          +<span class="nc" id="L235">        NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L236" title="All 2 branches missed.">        if (playlistNodes == null) return;</span>
           
          -<span class="nc bnc" id="L239" title="All 2 branches missed.">        for (int i = 0; i &lt; playlistNodes.getLength(); i++) {</span>
          -<span class="nc bnc" id="L240" title="All 2 branches missed.">            if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          -<span class="nc" id="L241">                Element playlistElement = (Element) playlistNodes.item(i);</span>
          -<span class="nc bnc" id="L242" title="All 2 branches missed.">                if (playlistElement.getNodeName().equals(&quot;playlist&quot;)) {</span>
          +<span class="nc bnc" id="L238" title="All 2 branches missed.">        for (int i = 0; i &lt; playlistNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L239" title="All 2 branches missed.">            if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L240">                Element playlistElement = (Element) playlistNodes.item(i);</span>
          +<span class="nc bnc" id="L241" title="All 2 branches missed.">                if (playlistElement.getNodeName().equals(&quot;playlist&quot;)) {</span>
                               try {
          -<span class="nc" id="L244">                        this.addPlaylist(new PlayList(playlistElement));</span>
          -<span class="nc" id="L245">                    } catch (Exception ex) {</span>
          -<span class="nc" id="L246">                        System.out.println(&quot;Something is wrong with the XML playlist element&quot;);</span>
          -<span class="nc" id="L247">                    }</span>
          +<span class="nc" id="L243">                        this.addPlaylist(new PlayList(playlistElement));</span>
          +<span class="nc" id="L244">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L245">                        System.out.println(&quot;Something is wrong with the XML playlist element&quot;);</span>
          +<span class="nc" id="L246">                    }</span>
                           }
                       }
                   }
          -<span class="nc" id="L251">    }</span>
          +<span class="nc" id="L250">    }</span>
           
               private void loadElements() {
          -<span class="nc" id="L254">        NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);</span>
          -<span class="nc bnc" id="L255" title="All 2 branches missed.">        if (audioelementsNodes == null) return;</span>
          +<span class="nc" id="L253">        NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L254" title="All 2 branches missed.">        if (audioelementsNodes == null) return;</span>
           
          -<span class="nc bnc" id="L257" title="All 2 branches missed.">        for (int i = 0; i &lt; audioelementsNodes.getLength(); i++) {</span>
          -<span class="nc bnc" id="L258" title="All 2 branches missed.">            if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          -<span class="nc" id="L259">                Element audioElement = (Element) audioelementsNodes.item(i);</span>
          -<span class="nc bnc" id="L260" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;song&quot;)) {</span>
          +<span class="nc bnc" id="L256" title="All 2 branches missed.">        for (int i = 0; i &lt; audioelementsNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L257" title="All 2 branches missed.">            if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L258">                Element audioElement = (Element) audioelementsNodes.item(i);</span>
          +<span class="nc bnc" id="L259" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;song&quot;)) {</span>
                               try {
          -<span class="nc" id="L262">                        AudioElement newSong = new Song(audioElement);</span>
          -<span class="nc" id="L263">                        this.addElement(newSong);</span>
          -<span class="nc" id="L264">                    } catch (Exception ex) {</span>
          -<span class="nc" id="L265">                        System.out.println(&quot;Something is wrong with the XML song element&quot;);</span>
          -<span class="nc" id="L266">                    }</span>
          +<span class="nc" id="L261">                        AudioElement newSong = new Song(audioElement);</span>
          +<span class="nc" id="L262">                        this.addElement(newSong);</span>
          +<span class="nc" id="L263">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L264">                        System.out.println(&quot;Something is wrong with the XML song element&quot;);</span>
          +<span class="nc" id="L265">                    }</span>
                           }
          -<span class="nc bnc" id="L268" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;audiobook&quot;)) {</span>
          +<span class="nc bnc" id="L267" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;audiobook&quot;)) {</span>
                               try {
          -<span class="nc" id="L270">                        AudioElement newAudioBook = new AudioBook(audioElement);</span>
          -<span class="nc" id="L271">                        this.addElement(newAudioBook);</span>
          -<span class="nc" id="L272">                    } catch (Exception ex) {</span>
          -<span class="nc" id="L273">                        System.out.println(&quot;Something is wrong with the XML audiobook element&quot;);</span>
          -<span class="nc" id="L274">                    }</span>
          +<span class="nc" id="L269">                        AudioElement newAudioBook = new AudioBook(audioElement);</span>
          +<span class="nc" id="L270">                        this.addElement(newAudioBook);</span>
          +<span class="nc" id="L271">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L272">                        System.out.println(&quot;Something is wrong with the XML audiobook element&quot;);</span>
          +<span class="nc" id="L273">                    }</span>
                           }
                       }
                   }
          -<span class="nc" id="L278">    }</span>
          +<span class="nc" id="L277">    }</span>
           
           
               public void saveAlbums() {
          -<span class="nc" id="L282">        Document document = xmlHandler.createXMLDocument();</span>
          -<span class="nc bnc" id="L283" title="All 2 branches missed.">        if (document == null) return;</span>
          +<span class="nc" id="L281">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L282" title="All 2 branches missed.">        if (document == null) return;</span>
           
                   // root element
          -<span class="nc" id="L286">        Element root = document.createElement(&quot;albums&quot;);</span>
          -<span class="nc" id="L287">        document.appendChild(root);</span>
          +<span class="nc" id="L285">        Element root = document.createElement(&quot;albums&quot;);</span>
          +<span class="nc" id="L286">        document.appendChild(root);</span>
           
                   //save all albums
          -<span class="nc bnc" id="L290" title="All 2 branches missed.">        for (Iterator&lt;Album&gt; albumsIter = this.albums(); albumsIter.hasNext(); ) {</span>
          -<span class="nc" id="L291">            Album currentAlbum = albumsIter.next();</span>
          -<span class="nc" id="L292">            currentAlbum.createXMLElement(document, root);</span>
          -<span class="nc" id="L293">        }</span>
          -<span class="nc" id="L294">        xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH);</span>
          -<span class="nc" id="L295">    }</span>
          +<span class="nc bnc" id="L289" title="All 2 branches missed.">        for (Iterator&lt;Album&gt; albumsIter = this.albums(); albumsIter.hasNext(); ) {</span>
          +<span class="nc" id="L290">            Album currentAlbum = albumsIter.next();</span>
          +<span class="nc" id="L291">            currentAlbum.createXMLElement(document, root);</span>
          +<span class="nc" id="L292">        }</span>
          +<span class="nc" id="L293">        xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH);</span>
          +<span class="nc" id="L294">    }</span>
           
               public void savePlayLists() {
          -<span class="nc" id="L298">        Document document = xmlHandler.createXMLDocument();</span>
          -<span class="nc bnc" id="L299" title="All 2 branches missed.">        if (document == null) return;</span>
          +<span class="nc" id="L297">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L298" title="All 2 branches missed.">        if (document == null) return;</span>
           
                   // root element
          -<span class="nc" id="L302">        Element root = document.createElement(&quot;playlists&quot;);</span>
          -<span class="nc" id="L303">        document.appendChild(root);</span>
          +<span class="nc" id="L301">        Element root = document.createElement(&quot;playlists&quot;);</span>
          +<span class="nc" id="L302">        document.appendChild(root);</span>
           
                   //save all playlists
          -<span class="nc bnc" id="L306" title="All 2 branches missed.">        for (Iterator&lt;PlayList&gt; playlistsIter = this.playlists(); playlistsIter.hasNext(); ) {</span>
          -<span class="nc" id="L307">            PlayList currentPlayList = playlistsIter.next();</span>
          -<span class="nc" id="L308">            currentPlayList.createXMLElement(document, root);</span>
          -<span class="nc" id="L309">        }</span>
          -<span class="nc" id="L310">        xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH);</span>
          -<span class="nc" id="L311">    }</span>
          +<span class="nc bnc" id="L305" title="All 2 branches missed.">        for (Iterator&lt;PlayList&gt; playlistsIter = this.playlists(); playlistsIter.hasNext(); ) {</span>
          +<span class="nc" id="L306">            PlayList currentPlayList = playlistsIter.next();</span>
          +<span class="nc" id="L307">            currentPlayList.createXMLElement(document, root);</span>
          +<span class="nc" id="L308">        }</span>
          +<span class="nc" id="L309">        xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH);</span>
          +<span class="nc" id="L310">    }</span>
           
               public void saveElements() {
          -<span class="nc" id="L314">        Document document = xmlHandler.createXMLDocument();</span>
          -<span class="nc bnc" id="L315" title="All 2 branches missed.">        if (document == null) return;</span>
          +<span class="nc" id="L313">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L314" title="All 2 branches missed.">        if (document == null) return;</span>
           
                   // root element
          -<span class="nc" id="L318">        Element root = document.createElement(&quot;elements&quot;);</span>
          -<span class="nc" id="L319">        document.appendChild(root);</span>
          +<span class="nc" id="L317">        Element root = document.createElement(&quot;elements&quot;);</span>
          +<span class="nc" id="L318">        document.appendChild(root);</span>
           
                   //save all AudioElements
          -<span class="nc bnc" id="L322" title="All 2 branches missed.">        for (AudioElement currentElement : elements) {</span>
          +<span class="nc bnc" id="L321" title="All 2 branches missed.">        for (AudioElement currentElement : elements) {</span>
           
          -<span class="nc bnc" id="L324" title="All 2 branches missed.">            if (currentElement instanceof Song) {</span>
          -<span class="nc" id="L325">                currentElement.createXMLElement(document, root);</span>
          +<span class="nc bnc" id="L323" title="All 2 branches missed.">            if (currentElement instanceof Song) {</span>
          +<span class="nc" id="L324">                currentElement.createXMLElement(document, root);</span>
                       }
          -<span class="nc bnc" id="L327" title="All 2 branches missed.">            if (currentElement instanceof AudioBook) {</span>
          -<span class="nc" id="L328">                currentElement.createXMLElement(document, root);</span>
          +<span class="nc bnc" id="L326" title="All 2 branches missed.">            if (currentElement instanceof AudioBook) {</span>
          +<span class="nc" id="L327">                currentElement.createXMLElement(document, root);</span>
                       }
          -<span class="nc" id="L330">        }</span>
          -<span class="nc" id="L331">        xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);</span>
          -<span class="nc" id="L332">    }</span>
          +<span class="nc" id="L329">        }</span>
          +<span class="nc" id="L330">        xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);</span>
          +<span class="nc" id="L331">    }</span>
               
               public void getAudioElement(List&lt;AudioElement&gt; audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException {
          -<span class="nc bnc" id="L335" title="All 2 branches missed.">        for (AudioElement el : audios) {</span>
          -<span class="nc bnc" id="L336" title="All 2 branches missed.">            if (el.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          -<span class="nc" id="L337">                el.manageAudioElement();</span>
          +<span class="nc bnc" id="L334" title="All 2 branches missed.">        for (AudioElement el : audios) {</span>
          +<span class="nc bnc" id="L335" title="All 2 branches missed.">            if (el.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L336">                el.manageAudioElement();</span>
                       }
          -<span class="nc" id="L339">        }</span>
          +<span class="nc" id="L338">        }</span>
           
          -<span class="nc" id="L341">    }</span>
          +<span class="nc" id="L340">    }</span>
           
               public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException, NoElementFoundException {
          -<span class="nc" id="L344">        Scanner scanner = new Scanner(System.in);</span>
          -<span class="nc" id="L345">        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);</span>
          -<span class="nc" id="L346">        String word = scanner.next().toLowerCase(Locale.ROOT);</span>
          -<span class="nc" id="L347">        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();</span>
          -<span class="nc bnc" id="L348" title="All 2 branches missed.">        for(AudioElement el : elements){</span>
          -<span class="nc bnc" id="L349" title="All 4 branches missed.">            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){</span>
          -<span class="nc" id="L350">                searchResult.add(el);</span>
          -<span class="nc" id="L351">                System.out.println(el);</span>
          +<span class="nc" id="L343">        Scanner scanner = new Scanner(System.in);</span>
          +<span class="nc" id="L344">        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);</span>
          +<span class="nc" id="L345">        String word = scanner.next().toLowerCase(Locale.ROOT);</span>
          +<span class="nc" id="L346">        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L347" title="All 2 branches missed.">        for(AudioElement el : elements){</span>
          +<span class="nc bnc" id="L348" title="All 4 branches missed.">            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){</span>
          +<span class="nc" id="L349">                searchResult.add(el);</span>
          +<span class="nc" id="L350">                System.out.println(el);</span>
                       }
          -<span class="nc" id="L353">        }</span>
          +<span class="nc" id="L352">        }</span>
           
          -<span class="nc bnc" id="L355" title="All 2 branches missed.">        if(searchResult.isEmpty()){</span>
          -<span class="nc" id="L356">            throw new NoElementFoundException(&quot;Any result for your search&quot;);</span>
          +<span class="nc bnc" id="L354" title="All 2 branches missed.">        if (searchResult.isEmpty()) {</span>
          +<span class="nc" id="L355">            throw new NoElementFoundException(&quot;Any result for your search&quot;);</span>
                   }
          -<span class="nc bnc" id="L358" title="All 2 branches missed.">        if (searchResult.size()==1){</span>
          -<span class="nc" id="L359">            this.getAudioElement(searchResult, searchResult.get(0).getTitle());</span>
          +<span class="nc bnc" id="L357" title="All 2 branches missed.">        if (searchResult.size() == 1) {</span>
          +<span class="nc" id="L358">            this.getAudioElement(searchResult, searchResult.get(0).getTitle());</span>
                   }
          -<span class="nc" id="L361">    }</span>
          +<span class="nc" id="L360">    }</span>
          +
          +    /**
          +     * Method getting a list of playlists
          +     *
          +     * @return a list of playlist titles
          +     * @author Anthony BOULANT
          +     */
          +    public String getPlayListsTitles() {
          +<span class="nc" id="L369">        StringBuilder titleList = new StringBuilder();</span>
          +
          +<span class="nc bnc" id="L371" title="All 2 branches missed.">        for (PlayList pl : playlists)</span>
          +<span class="nc" id="L372">            titleList.append(pl.getTitle()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L373">        return titleList.toString();</span>
          +    }
           
          +    /**
          +     * Method checking the songs contained in a chosen playlist and returning them if found.
          +     *
          +     * @param playListTitle the title of a (chosen) playlist
          +     * @return a list of songs from a playlist
          +     * @throws NoPlayListFoundException if the chosen playlist doesn't exist
          +     * @author Anthony BOULANT
          +     */
          +    public List&lt;AudioElement&gt; getPlayListSongs(String playListTitle) throws NoPlayListFoundException {
          +<span class="nc" id="L385">        PlayList thePlayList = null;</span>
          +<span class="nc" id="L386">        ArrayList&lt;AudioElement&gt; songsInPlayList = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L387" title="All 2 branches missed.">        for (PlayList pl : playlists) {</span>
          +<span class="nc bnc" id="L388" title="All 2 branches missed.">            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L389">                thePlayList = pl;</span>
          +<span class="nc" id="L390">                break;</span>
          +            }
          +<span class="nc" id="L392">        }</span>
          +<span class="nc bnc" id="L393" title="All 2 branches missed.">        if (thePlayList == null) throw new NoPlayListFoundException(&quot;No playlist with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L395">        List&lt;UUID&gt; songIDs = thePlayList.getElements();</span>
          +<span class="nc bnc" id="L396" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L397" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L398" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L399" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInPlayList.add(el);</span>
          +                }
          +<span class="nc" id="L401">            }</span>
          +<span class="nc" id="L402">        return songsInPlayList;</span>
          +
          +    }
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByAuthor.html b/target/site/jacoco/musichub.business/SortByAuthor.html
          index 851cdce..b762715 100644
          --- a/target/site/jacoco/musichub.business/SortByAuthor.html
          +++ b/target/site/jacoco/musichub.business/SortByAuthor.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByAuthor</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByAuthor</span></div><h1>SortByAuthor</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L29" class="el_method">compare(AudioElement, AudioElement)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L27" class="el_method">SortByAuthor()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByAuthor</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByAuthor</span></div><h1>SortByAuthor</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L28" class="el_method">compare(AudioElement, AudioElement)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L26" class="el_method">SortByAuthor()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByDate.html b/target/site/jacoco/musichub.business/SortByDate.html
          index 8f4b2f7..6f9a099 100644
          --- a/target/site/jacoco/musichub.business/SortByDate.html
          +++ b/target/site/jacoco/musichub.business/SortByDate.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByDate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByDate</span></div><h1>SortByDate</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L17" class="el_method">compare(Album, Album)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L15" class="el_method">SortByDate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByDate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByDate</span></div><h1>SortByDate</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L16" class="el_method">compare(Album, Album)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L14" class="el_method">SortByDate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByGenre.html b/target/site/jacoco/musichub.business/SortByGenre.html
          index 6dd6e7d..d89caea 100644
          --- a/target/site/jacoco/musichub.business/SortByGenre.html
          +++ b/target/site/jacoco/musichub.business/SortByGenre.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByGenre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByGenre</span></div><h1>SortByGenre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L23" class="el_method">compare(Song, Song)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L21" class="el_method">SortByGenre()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByGenre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByGenre</span></div><h1>SortByGenre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L22" class="el_method">compare(Song, Song)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L20" class="el_method">SortByGenre()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index f7cd669..2f40e82 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 483 of 2 134</td><td class="ctr2">30 %</td><td class="bar">160 of 179</td><td class="ctr2">10 %</td><td class="ctr1">140</td><td class="ctr2">178</td><td class="ctr1">373</td><td class="ctr2">513</td><td class="ctr1">51</td><td class="ctr2">82</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="874" alt="874"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="124" alt="124"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">209</td><td class="ctr2" id="i0">209</td><td class="ctr1" id="j0">23</td><td class="ctr2" id="k0">23</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="14" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 588 of 2 239</td><td class="ctr2">29 %</td><td class="bar">175 of 194</td><td class="ctr2">9 %</td><td class="ctr1">149</td><td class="ctr2">187</td><td class="ctr1">393</td><td class="ctr2">533</td><td class="ctr1">53</td><td class="ctr2">84</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="973" alt="973"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="140" alt="140"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">95</td><td class="ctr2" id="g0">95</td><td class="ctr1" id="h0">228</td><td class="ctr2" id="i0">228</td><td class="ctr1" id="j0">25</td><td class="ctr2" id="k0">25</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="91" alt="91"/><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">66 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">20 %</td><td class="ctr1" id="f3">10</td><td class="ctr2" id="g3">15</td><td class="ctr1" id="h2">31</td><td class="ctr2" id="i2">73</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 15d2893..8bc89c8 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 483 of 2 134</td><td class="ctr2">30 %</td><td class="bar">160 of 179</td><td class="ctr2">10 %</td><td class="ctr1">140</td><td class="ctr2">178</td><td class="ctr1">373</td><td class="ctr2">513</td><td class="ctr1">51</td><td class="ctr2">82</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="901" alt="901"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="124" alt="124"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">91</td><td class="ctr2" id="g0">91</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">29</td><td class="ctr2" id="k0">29</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 588 of 2 239</td><td class="ctr2">29 %</td><td class="bar">175 of 194</td><td class="ctr2">9 %</td><td class="ctr1">149</td><td class="ctr2">187</td><td class="ctr1">393</td><td class="ctr2">533</td><td class="ctr1">53</td><td class="ctr2">84</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="1 000" alt="1 000"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="140" alt="140"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">101</td><td class="ctr2" id="g0">101</td><td class="ctr1" id="h0">234</td><td class="ctr2" id="i0">234</td><td class="ctr1" id="j0">31</td><td class="ctr2" id="k0">31</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="91" alt="91"/><img src="../jacoco-resources/greenbar.gif" width="21" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">66 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">20 %</td><td class="ctr1" id="f3">10</td><td class="ctr2" id="g3">15</td><td class="ctr1" id="h2">31</td><td class="ctr2" id="i2">73</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          index 3666c2b..f24445f 100644
          --- a/target/site/jacoco/musichub.main/Main.html
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L19" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="579" alt="579"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L276" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="43" alt="43"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">15</td><td class="ctr2" id="i1">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L16" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">722 of 722</td><td class="ctr2">0 %</td><td class="bar">43 of 43</td><td class="ctr2">0 %</td><td class="ctr1">32</td><td class="ctr2">32</td><td class="ctr1">251</td><td class="ctr2">251</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L19" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="673" alt="673"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="43" alt="43"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">234</td><td class="ctr2" id="i0">234</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L318" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="46" alt="46"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L16" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index 121cc55..d2b3fb0 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -31,7 +31,7 @@ import static musichub.util.Policy.showTerm;
           <span class="nc bnc" id="L31" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
           
           <span class="nc bnc" id="L33" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -<span class="nc bnc" id="L34" title="All 16 branches missed.">            switch (choice.charAt(0)) {</span>
          +<span class="nc bnc" id="L34" title="All 17 branches missed.">            switch (choice.charAt(0)) {</span>
                           case 'q': //added the option directly in the switch instead of the loop
           <span class="nc" id="L36">                    System.exit(0);</span>
                           case 'h':
          @@ -54,240 +54,283 @@ import static musichub.util.Policy.showTerm;
           <span class="nc" id="L54">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
           <span class="nc" id="L55">                        System.out.println(songs);</span>
           <span class="nc" id="L56">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L57">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L58">                    }</span>
          -<span class="nc" id="L59">                    printAvailableCommands();</span>
          -<span class="nc" id="L60">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L61">                    break;</span>
          +<span class="nc" id="L57">                        LogHandler.write(&quot;No album found with the requested title&quot;, &quot;WARNING&quot;);</span>
          +<span class="nc" id="L58">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L59">                    }</span>
          +<span class="nc" id="L60">                    printAvailableCommands();</span>
          +<span class="nc" id="L61">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L62">                    break;</span>
                           case 'd':
                               //songs of an album
          -<span class="nc" id="L64">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L65">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L65">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L66">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
           
          -<span class="nc" id="L67">                    albumTitle = scan.nextLine();</span>
          +<span class="nc" id="L68">                    albumTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L69">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L70">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L71">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L72">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L73">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L74">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L75">                    }</span>
          -<span class="nc" id="L76">                    printAvailableCommands();</span>
          -<span class="nc" id="L77">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L78">                    break;</span>
          +<span class="nc" id="L70">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L71">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L72">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L73">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L74">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L75">                        LogHandler.write(&quot;No album found with the requested title&quot;, &quot;WARNING&quot;);</span>
          +<span class="nc" id="L76">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L77">                    }</span>
          +<span class="nc" id="L78">                    printAvailableCommands();</span>
          +<span class="nc" id="L79">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L80">                    break;</span>
                           case 'u':
                               //audiobooks ordered by author
          -<span class="nc" id="L81">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L82">                    printAvailableCommands();</span>
          -<span class="nc" id="L83">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L84">                    break;</span>
          +<span class="nc" id="L83">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L84">                    printAvailableCommands();</span>
          +<span class="nc" id="L85">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L86">                    break;</span>
                           case 'c':
                               // add a new song
          -<span class="nc" id="L87">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L88">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L89">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L90">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L91">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L92">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L93">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L94">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -<span class="nc" id="L95">                    int length = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L89">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L91">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L92">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L93">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L94">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L95">                    String artist = scan.nextLine();</span>
           
          -<span class="nc" id="L97">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc" id="L98">                    String content = scan.nextLine();</span>
          -<span class="nc bnc" id="L99" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L100">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          -<span class="nc" id="L101">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          -<span class="nc" id="L102">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          -<span class="nc" id="L103">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L104">                        break;</span>
          +                    int length;
          +                    try {
          +<span class="nc" id="L99">                        System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L100">                        length = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L101">                    } catch (NumberFormatException ex) {</span>
          +<span class="nc" id="L102">                        String logMsg = &quot;You've not provided a number for the length.&quot;;</span>
          +<span class="nc" id="L103">                        LogHandler.write(logMsg, &quot;ERROR&quot;); //write a line in the log file</span>
          +<span class="nc" id="L104">                        System.err.println(logMsg);</span>
          +<span class="nc" id="L105">                        System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L106">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L107">                        break;</span>
          +<span class="nc" id="L108">                    }</span>
          +
          +<span class="nc" id="L110">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L111">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L112" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L113">                        String logMsg = &quot;The music file cannot be found with the path you've provided or the extension is not .wav&quot;;</span>
          +<span class="nc" id="L114">                        LogHandler.write(logMsg, &quot;ERROR&quot;); //write a line in the log file</span>
          +<span class="nc" id="L115">                        System.err.println(logMsg);</span>
          +<span class="nc" id="L116">                        System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L117">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L118">                        break;</span>
                               }
           
          -<span class="nc" id="L107">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L108">                    theHub.addElement(s);</span>
          -<span class="nc" id="L109">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc" id="L110">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc bnc" id="L111" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L112">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L113">                    printAvailableCommands();</span>
          -<span class="nc" id="L114">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L115">                    break;</span>
          +<span class="nc" id="L121">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L122">                    theHub.addElement(s);</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L124">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L126">                    LogHandler.write(&quot;Song successfully created&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L127">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L128">                    printAvailableCommands();</span>
          +<span class="nc" id="L129">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L130">                    break;</span>
                           case 'a':
                               // add a new album
          -<span class="nc" id="L118">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L119">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L120">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L121">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L122">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L123">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L124">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L125">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L126">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L127">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L128">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L129">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc" id="L130">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc bnc" id="L131" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L132">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L133">                    printAvailableCommands();</span>
          -<span class="nc" id="L134">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L135">                    break;</span>
          +<span class="nc" id="L133">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L134">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L135">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L136">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L137">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L138">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L139">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L140">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L141">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L142">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L143">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L144">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L145">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L147">                    LogHandler.write(&quot;Album successfully created&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L148">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L149">                    printAvailableCommands();</span>
          +<span class="nc" id="L150">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L151">                    break;</span>
                           case '+':
                               //add a song to an album:
          -<span class="nc" id="L138">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L139">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc" id="L140">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc bnc" id="L141" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          -<span class="nc" id="L142">                        AudioElement ae = itae.next();</span>
          -<span class="nc bnc" id="L143" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L144">                    }</span>
          -<span class="nc" id="L145">                    String songTitle = scan.nextLine();</span>
          +<span class="nc" id="L154">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L155">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L156">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L157" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L158">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L159" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L160">                    }</span>
          +<span class="nc" id="L161">                    String songTitle = scan.nextLine();</span>
           
          -<span class="nc" id="L147">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc" id="L148">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc bnc" id="L149" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L150">                        Album al = ait.next();</span>
          -<span class="nc" id="L151">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L152">                    }</span>
          -<span class="nc" id="L153">                    String titleAlbum = scan.nextLine();</span>
          +<span class="nc" id="L163">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L164">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L165" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L166">                        Album al = ait.next();</span>
          +<span class="nc" id="L167">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L168">                    }</span>
          +<span class="nc" id="L169">                    String titleAlbum = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L155">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L156">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L157">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L158">                    }</span>
          -<span class="nc" id="L159">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L160">                    printAvailableCommands();</span>
          -<span class="nc" id="L161">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L162">                    break;</span>
          +<span class="nc" id="L171">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L172">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L173">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L174">                    }</span>
          +<span class="nc" id="L175">                    LogHandler.write(&quot;Song successfully added to the album&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L176">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L177">                    printAvailableCommands();</span>
          +<span class="nc" id="L178">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L179">                    break;</span>
                           case 'l':
                               // add a new audiobook
          -<span class="nc" id="L165">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L166">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L167">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L168">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L169">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L170">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L171">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L172">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L173">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L174">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L175">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L176">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L177">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L178">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L179">                    theHub.addElement(b);</span>
          -<span class="nc" id="L180">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc" id="L181">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc bnc" id="L182" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L183">                    printAvailableCommands();</span>
          -<span class="nc" id="L184">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L185">                    break;</span>
          +<span class="nc" id="L182">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L183">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L184">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L185">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L186">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L187">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L188">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L189">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L190">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L191">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L192">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L193">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L194">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L195">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L196">                    theHub.addElement(b);</span>
          +<span class="nc" id="L197">                    LogHandler.write(&quot;Audiobook successfully created&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L198">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L199">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L200" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L201">                    printAvailableCommands();</span>
          +<span class="nc" id="L202">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L203">                    break;</span>
                           case 'p':
                               //create a new playlist from existing elements
          -<span class="nc" id="L188">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L189">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc" id="L190">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc bnc" id="L191" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L192">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L193">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L194">                    }</span>
          -<span class="nc" id="L195">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L196">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L197">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L198">                    theHub.addPlaylist(pl);</span>
          -<span class="nc" id="L199">                    System.out.println(&quot;Available elements: &quot;);</span>
          +<span class="nc" id="L206">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L207">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L208">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L209" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L210">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L211">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L212">                    }</span>
          +<span class="nc" id="L213">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L214">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L215">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L216">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L217">                    System.out.println(&quot;Available elements: &quot;);</span>
           
          -<span class="nc" id="L201">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc bnc" id="L202" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L203">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L204">                        System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L205">                    }</span>
          -<span class="nc bnc" id="L206" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L207">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -<span class="nc" id="L208">                        String elementTitle = scan.nextLine();</span>
          +<span class="nc" id="L219">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L220" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L221">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L222">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L223">                    }</span>
          +<span class="nc bnc" id="L224" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L225">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L226">                        String elementTitle = scan.nextLine();</span>
                                   try {
          -<span class="nc" id="L210">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L211">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L212">                            System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L213">                        }</span>
          +<span class="nc" id="L228">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L229">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L230">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L231">                        }</span>
           
          -<span class="nc" id="L215">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L216">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L217">                    }</span>
          -<span class="nc" id="L218">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L219">                    printAvailableCommands();</span>
          -<span class="nc" id="L220">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L221">                    break;</span>
          +<span class="nc" id="L233">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L234">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L235">                    }</span>
          +<span class="nc" id="L236">                    LogHandler.write(&quot;Playlist successfully created&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L237">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L238">                    printAvailableCommands();</span>
          +<span class="nc" id="L239">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L240">                    break;</span>
                           case '-':
                               //delete a playlist
          -<span class="nc" id="L224">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc" id="L225">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc bnc" id="L226" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L227">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L228">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L229">                    }</span>
          -<span class="nc" id="L230">                    String plTitle = scan.nextLine();</span>
          +<span class="nc" id="L243">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L244">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L245" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L246">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L247">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L248">                    }</span>
          +<span class="nc" id="L249">                    String plTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L232">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L233">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L234">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L235">                    }</span>
          -<span class="nc" id="L236">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L237">                    printAvailableCommands();</span>
          -<span class="nc" id="L238">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L239">                    break;</span>
          +<span class="nc" id="L251">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L252">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L253">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L254">                    }</span>
          +<span class="nc" id="L255">                    LogHandler.write(&quot;Playlist successfully deleted&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L256">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L257">                    printAvailableCommands();</span>
          +<span class="nc" id="L258">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L259">                    break;</span>
                           case 's':
                               //save elements, albums, playlists
          -<span class="nc" id="L242">                    theHub.saveElements();</span>
          -<span class="nc" id="L243">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L244">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L245">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L246">                    printAvailableCommands();</span>
          -<span class="nc" id="L247">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L248">                    break;</span>
          +<span class="nc" id="L262">                    theHub.saveElements();</span>
          +<span class="nc" id="L263">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L264">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L265">                    LogHandler.write(&quot;Elements, albums and playlists successfully saved&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L266">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L267">                    printAvailableCommands();</span>
          +<span class="nc" id="L268">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L269">                    break;</span>
                           case 'r':
                               //search a music
                               try {
          -<span class="nc" id="L252">                        theHub.searchAudioElement();</span>
          +<span class="nc" id="L273">                        theHub.searchAudioElement();</span>
                               }
          -<span class="nc" id="L254">                    catch (NoElementFoundException e){</span>
          -<span class="nc" id="L255">                        System.err.println(e.getMessage());</span>
          +<span class="nc" id="L275">                    catch (NoElementFoundException e){</span>
          +<span class="nc" id="L276">                        System.err.println(e.getMessage());</span>
                               }
          -<span class="nc" id="L257">                    catch (java.io.FileNotFoundException e){</span>
          -<span class="nc" id="L258">                        System.err.println(e.getMessage()+&quot; Please create a file with the extension .wav inside the song folder at root of the app&quot;);</span>
          -<span class="nc" id="L259">                    }</span>
          -<span class="nc" id="L260">                    printAvailableCommands();</span>
          +<span class="nc" id="L278">                    catch (java.io.FileNotFoundException e){</span>
          +<span class="nc" id="L279">                        LogHandler.write(&quot;Please create a file with the extension .wav inside the song folder at root of the app&quot;, &quot;ERROR&quot;);</span>
          +<span class="nc" id="L280">                        System.err.println(e.getMessage() + &quot; Please create a file with the extension .wav inside the song folder at root of the app&quot;);</span>
          +<span class="nc" id="L281">                    }</span>
          +<span class="nc" id="L282">                    printAvailableCommands();</span>
          +<span class="nc" id="L283">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L284">                    break;</span>
                           case 'o':
                               //consult the app logs
          -<span class="nc" id="L263">                    LogHandler.read();</span>
          -<span class="nc" id="L264">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          -<span class="nc" id="L265">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L266">                    break;</span>
          +<span class="nc" id="L287">                    LogHandler.read();</span>
          +<span class="nc" id="L288">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L289">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L290">                    break;</span>
          +                case 'm':
          +                    //songs of a playlist
          +<span class="nc" id="L293">                    System.out.println(&quot;Songs of a playlist will be displayed; enter the playlist name, available playlists are:&quot;);</span>
          +<span class="nc" id="L294">                    System.out.println(theHub.getPlayListsTitles());</span>
          +
          +<span class="nc" id="L296">                    playListTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L298">                        List&lt;AudioElement&gt; songs = theHub.getPlayListSongs(playListTitle);</span>
          +<span class="nc" id="L299">                        System.out.println(theHub.getPlayListSongs(playListTitle));</span>
          +<span class="nc" id="L300">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L301">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L302">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L303">                        LogHandler.write(&quot;No playlist found with the requested title&quot;, &quot;WARNING&quot;);</span>
          +<span class="nc" id="L304">                        System.out.println(&quot;No playlist found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L305">                    }</span>
          +<span class="nc" id="L306">                    printAvailableCommands();</span>
          +<span class="nc" id="L307">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L308">                    break;</span>
                           default:
           
          -<span class="nc" id="L269">                    break;</span>
          +<span class="nc" id="L311">                    break;</span>
                       }
                   }
          -<span class="nc" id="L272">        scan.close();</span>
          -<span class="nc" id="L273">    }</span>
          +<span class="nc" id="L314">        scan.close();</span>
          +<span class="nc" id="L315">    }</span>
           
               private static void printAvailableCommands() {
          -<span class="nc" id="L276">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L277">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L278">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L279">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L280">        System.out.println(&quot;r: search audio elements&quot;);</span>
          -<span class="nc" id="L281">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L282">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L283">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L284">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -<span class="nc" id="L285">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          -<span class="nc" id="L286">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          -<span class="nc" id="L287">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          -<span class="nc" id="L288">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          -<span class="nc" id="L289">        System.out.println(&quot;q: quit program&quot;);</span>
          -<span class="nc" id="L290">    }</span>
          +<span class="nc" id="L318">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L319">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L320">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L321">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L322">        System.out.println(&quot;r: search audio elements&quot;);</span>
          +<span class="nc" id="L323">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L324">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L325">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L326">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L327">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L328">        System.out.println(&quot;m: display songs of a playlist&quot;);</span>
          +<span class="nc" id="L329">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L330">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L331">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          +<span class="nc" id="L332">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L333">    }</span>
           
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          index cd2b4c7..9101830 100644
          --- a/target/site/jacoco/musichub.main/index.html
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="625" alt="625"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">31</td><td class="ctr2" id="g0">31</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">722 of 722</td><td class="ctr2">0 %</td><td class="bar">43 of 43</td><td class="ctr2">0 %</td><td class="ctr1">32</td><td class="ctr2">32</td><td class="ctr1">251</td><td class="ctr2">251</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="722" alt="722"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="43" alt="43"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">32</td><td class="ctr2" id="g0">32</td><td class="ctr1" id="h0">251</td><td class="ctr2" id="i0">251</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          index 60b6575..a2635d9 100644
          --- a/target/site/jacoco/musichub.main/index.source.html
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">625 of 625</td><td class="ctr2">0 %</td><td class="bar">42 of 42</td><td class="ctr2">0 %</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">215</td><td class="ctr2">215</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="625" alt="625"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">31</td><td class="ctr2" id="g0">31</td><td class="ctr1" id="h0">215</td><td class="ctr2" id="i0">215</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">722 of 722</td><td class="ctr2">0 %</td><td class="bar">43 of 43</td><td class="ctr2">0 %</td><td class="ctr1">32</td><td class="ctr2">32</td><td class="ctr1">251</td><td class="ctr2">251</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="722" alt="722"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="43" alt="43"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">32</td><td class="ctr2" id="g0">32</td><td class="ctr1" id="h0">251</td><td class="ctr2" id="i0">251</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/Policy.html b/target/site/jacoco/musichub.util/Policy.html
          index 11ce779..e87278e 100644
          --- a/target/site/jacoco/musichub.util/Policy.html
          +++ b/target/site/jacoco/musichub.util/Policy.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Policy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">Policy</span></div><h1>Policy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">53 of 53</td><td class="ctr2">0 %</td><td class="bar">5 of 5</td><td class="ctr2">0 %</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">20</td><td class="ctr2">20</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html#L27" class="el_method">showTerm()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="39" alt="39"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">15</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Policy.java.html#L21" class="el_method">Policy()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Policy.java.html#L128" class="el_method">printAgreement()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Policy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">Policy</span></div><h1>Policy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">60 of 60</td><td class="ctr2">0 %</td><td class="bar">5 of 5</td><td class="ctr2">0 %</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">24</td><td class="ctr2">24</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html#L33" class="el_method">showTerm()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">19</td><td class="ctr2" id="i0">19</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Policy.java.html#L22" class="el_method">Policy()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Policy.java.html#L73" class="el_method">printAgreement()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/Policy.java.html b/target/site/jacoco/musichub.util/Policy.java.html
          index 2eeb294..9739279 100644
          --- a/target/site/jacoco/musichub.util/Policy.java.html
          +++ b/target/site/jacoco/musichub.util/Policy.java.html
          @@ -1,9 +1,10 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Policy.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">Policy.java</span></div><h1>Policy.java</h1><pre class="source lang-java linenums">package musichub.util;
           
          +import java.io.IOException;
           import java.util.Scanner;
           
           /**
          - * Class ...
          + * Class offering methods to prompt a policy agreement form to the user.
            *
            * @author Anthony BOULANT
            * @version 1.0
          @@ -18,115 +19,59 @@ public final class Policy {
                * @author Anthony BOULANT
                */
           
          -<span class="nc" id="L21">    public Policy() {</span>
          -<span class="nc" id="L22">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +<span class="nc" id="L22">    public Policy() {</span>
          +<span class="nc" id="L23">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
               }
           
          +    /**
          +     * Method prompting the whole policy agreement process
          +     *
          +     * @author Anthony BOULANT
          +     */
               public static void showTerm() {
           
          -<span class="nc" id="L27">        String termsAndConditions = &quot;Terms and Conditions\n&quot; +</span>
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;In using this website you are deemed to have read and agreed to the following terms and conditions:\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and any or all Agreements: \&quot;Client\&quot;, “You” and “Your” refers to you, the person accessing this website and accepting the Company’s terms and conditions. \&quot;The Company\&quot;, “Ourselves”, “We” and \&quot;Us\&quot;, refers to our Company. “Party”, “Parties”, or “Us”, refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services/products, in accordance with and subject to, prevailing English Law. Any use of the above terminology or other words in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and therefore as referring to same.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Privacy Statement\n&quot; +
          -                &quot;We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Confidentiality\n&quot; +
          -                &quot;We are registered under the Data Protection Act 1998 and as such, any information concerning the Client and their respective Client Records may be passed to third parties. However, Client records are regarded as confidential and therefore will not be divulged to any third party, other than if legally required to do so to the appropriate authorities. Clients have the right to request sight of, and copies of any and all Client Records we keep, on the proviso that we are given reasonable notice of such a request. Clients are requested to retain copies of any literature issued in relation to the provision of our services. Where appropriate, we shall issue Client’s with appropriate written information, handouts or copies of records as part of an agreed contract, for the benefit of both parties.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;We will not sell, share, or rent your personal information to any third party or use your e-mail address for unsolicited mail. Any emails sent by this Company will only be in connection with the provision of agreed services and products.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Disclaimer\n&quot; +
          -                &quot;Exclusions and Limitations \n&quot; +
          -                &quot;The information on this web site is provided on an \&quot;as is\&quot; basis. To the fullest extent permitted by law, this Company:\n&quot; +
          -                &quot;\uF0A7\texcludes all representations and warranties relating to this website and its contents or which is or may be provided by any affiliates or any other third party, including in relation to any inaccuracies or omissions in this website and/or the Company’s literature; and \n&quot; +
          -                &quot;\uF0A7\texcludes all liability for damages arising out of or in connection with your use of this website. This includes, without limitation, direct loss, loss of business or profits (whether or not the loss of such profits was foreseeable, arose in the normal course of things or you have advised this Company of the possibility of such potential loss), damage caused to your computer, computer software, systems and programs and the data thereon or any other direct or indirect, consequential and incidental damages. \n&quot; +
          -                &quot;This Company does not however exclude liability for death or personal injury caused by its negligence. The above exclusions and limitations apply only to the extent permitted by law. None of your statutory rights as a consumer are affected. \n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Cancellation Policy\n&quot; +
          -                &quot;Minimum 24 hours’ notice of cancellation required. Notification for instance, in person, via email, mobile phone ‘text message’ and/or fax, or any other means will be accepted subject to confirmation in writing. We reserve the right to levy a £30 charge to cover any subsequent administrative expenses.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Termination of Agreements and Refunds Policy\n&quot; +
          -                &quot;Both the Client and we have the right to terminate any Services Agreement for any reason, including the ending of services that are already underway. No refunds shall be offered, where a Service is deemed to have begun and is, for all intents and purposes, underway. Any monies that have been paid to us which constitute payment in respect of the provision of unused Services, shall be refunded.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Availability \n&quot; +
          -                &quot;Unless otherwise stated, the services featured on this website are only available in France, or in relation to postings from France. All advertising is intended solely for the France market. You are solely responsible for evaluating the fitness for a particular purpose of any downloads, programs and text available through this site. Redistribution or republication of any part of this site or its content is prohibited, including such by framing or other similar or any other means, without the express written consent of the Company. The Company does not warrant that the service from this site will be uninterrupted, timely or error free, although it is provided to the best ability. By using this service you thereby indemnify this Company, its employees, agents and affiliates against any loss or damage, in whatever manner, howsoever caused.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Copyright Notice \n&quot; +
          -                &quot;Copyright and other relevant intellectual property rights exists on all text relating to the Company’s services and the full content of this application. \n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Communication\n&quot; +
          -                &quot;We have several different e-mail addresses for different queries. These, &amp; other contact information, can be found on our Contact Us link on our website or via Company literature or via the Company’s stated telephone, facsimile or mobile telephone numbers.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Force Majeure\n&quot; +
          -                &quot;Neither party shall be liable to the other for any failure to perform any obligation under any Agreement which is due to an event beyond the control of such party including but not limited to any Act of God, terrorism, war, Political insurgence, insurrection, riot, civil unrest, act of civil or military authority, uprising, earthquake, flood or any other natural or manmade eventuality outside of our control, which causes the termination of an agreement or contract entered into, nor which could have been reasonably foreseen. Any Party affected by such event shall forthwith inform the other Party of the same and shall use all reasonable endeavours to comply with the terms and conditions of any Agreement contained herein.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Waiver\n&quot; +
          -                &quot;Failure of either Party to insist upon strict performance of any provision of this or any Agreement or the failure of either Party to exercise any right or remedy to which it, he or they are entitled hereunder shall not constitute a waiver thereof and shall not cause a diminution of the obligations under this or any Agreement. No waiver of any of the provisions of this or any Agreement shall be effective unless it is expressly stated to be such and signed by both Parties.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;General\n&quot; +
          -                &quot;The laws of France govern these terms and conditions. By accessing this application, you consent to these terms and conditions and to the exclusive jurisdiction of the English courts in all disputes arising out of such access. If any of these terms are deemed invalid or unenforceable for any reason (including, but not limited to the exclusions and limitations set out above), then the invalid or unenforceable provision will be severed from these terms and the remaining terms will continue to apply. Failure of the Company to enforce any of the provisions set out in these Terms and Conditions and any Agreement, or failure to exercise any option to terminate, shall not be construed as waiver of such provisions and shall not affect the validity of these Terms and Conditions or of any Agreement or any part thereof, or the right thereafter to enforce each and every provision. These Terms and Conditions shall not be amended, modified, varied or supplemented except in writing and signed by duly authorised representatives of the Company.\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;Notification of Changes\n&quot; +
          -                &quot;The Company reserves the right to change these conditions from time to time as it sees fit and your continued use of the site will signify your acceptance of any adjustment to these terms. If there are any changes to our privacy policy, we will announce that these changes have been made on our home page and on other key pages on our site. If there are any changes in how we use our site customers’ Personally Identifiable Information, notification by e-mail or postal mail will be made to those affected by this change. Any changes to our privacy policy will be posted on our web site 30 days prior to these changes taking place. You are therefore advised to re-read this statement on a regular basis\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.    \n&quot; +
          -                &quot;© Company Name 2021 All Rights Reserved\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot; +
          -                &quot;\n&quot;;
          +<span class="nc" id="L33">        String termsAndConditions = &quot;&quot;&quot;</span>
          +                Terms and Conditions
          +                In using this website you are deemed to have read and agreed to the following terms and conditions:
          +                Privacy Statement
          +                We are committed to protecting your privacy. Authorized employees within the company on a need to know basis only use any information collected from individual customers. We constantly review our systems and data to ensure the best possible service to our customers. Parliament has created specific offences for unauthorised actions against computer systems and data. We will investigate any such actions with a view to prosecuting and/or taking civil proceedings to recover damages against those responsible
          +                These terms and conditions form part of the Agreement between the Client and ourselves. Your accessing of this website and/or undertaking of a booking or Agreement indicates your understanding, agreement to and acceptance, of the Disclaimer Notice and the full Terms and Conditions contained herein. Your statutory Consumer Rights are unaffected.   s
          +                © Company Name 2021 All Rights Reserved
          +                &quot;&quot;&quot;;
           
          -<span class="nc" id="L107">        printAgreement();</span>
          -<span class="nc" id="L108">        Scanner scan = new Scanner(System.in);</span>
          -<span class="nc" id="L109">        String choice = scan.nextLine().toLowerCase();</span>
          +<span class="nc" id="L42">        printAgreement();</span>
          +<span class="nc" id="L43">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L44">        String choice = scan.nextLine().toLowerCase();</span>
           
          -<span class="nc bnc" id="L111" title="All 2 branches missed.">        while (!choice.equals(&quot;y&quot;)) {</span>
          -<span class="nc bnc" id="L112" title="All 3 branches missed.">            switch (choice.charAt(0)) {</span>
          -<span class="nc" id="L113">                case 'n' -&gt; System.exit(0);</span>
          -<span class="nc" id="L114">                case 'r' -&gt; {</span>
          -<span class="nc" id="L115">                    System.out.println(termsAndConditions);</span>
          -<span class="nc" id="L116">                    printAgreement();</span>
          -<span class="nc" id="L117">                    choice = scan.nextLine().toLowerCase();</span>
          +<span class="nc bnc" id="L46" title="All 2 branches missed.">        while (!choice.equals(&quot;y&quot;)) {</span>
          +<span class="nc bnc" id="L47" title="All 3 branches missed.">            switch (choice.charAt(0)) {</span>
          +<span class="nc" id="L48">                case 'n' -&gt; System.exit(0);</span>
          +<span class="nc" id="L49">                case 'r' -&gt; {</span>
          +<span class="nc" id="L50">                    System.out.println(termsAndConditions);</span>
          +<span class="nc" id="L51">                    printAgreement();</span>
          +<span class="nc" id="L52">                    choice = scan.nextLine().toLowerCase();</span>
                           }
          -<span class="nc" id="L119">                default -&gt; {</span>
          -<span class="nc" id="L120">                    printAgreement();</span>
          -<span class="nc" id="L121">                    choice = scan.nextLine().toLowerCase();</span>
          +<span class="nc" id="L54">                default -&gt; {</span>
          +<span class="nc" id="L55">                    printAgreement();</span>
          +<span class="nc" id="L56">                    choice = scan.nextLine().toLowerCase();</span>
                           }
                       }
                   }
          -<span class="nc" id="L125">    }</span>
          +        try {
          +<span class="nc" id="L61">            LogHandler.write(&quot;Terms accepted by the user.&quot;, &quot;INFO&quot;);</span>
          +<span class="nc" id="L62">        } catch (IOException e) {</span>
          +<span class="nc" id="L63">            e.printStackTrace();</span>
          +<span class="nc" id="L64">        }</span>
          +<span class="nc" id="L65">    }</span>
           
          +    /**
          +     * Method printing the commands the user can use.
          +     *
          +     * @author Anthony BOULANT
          +     */
               private static void printAgreement() {
          -<span class="nc" id="L128">        System.out.println(&quot;By using our app, do you accept our Terms and Conditions ?&quot;);</span>
          -<span class="nc" id="L129">        System.out.println(&quot;[YES : y    NO :  n    READ : r]&quot;);</span>
          -<span class="nc" id="L130">    }</span>
          +<span class="nc" id="L73">        System.out.println(&quot;By using our app, do you accept our Terms and Conditions ?&quot;);</span>
          +<span class="nc" id="L74">        System.out.println(&quot;[YES : y    NO :  n    READ : r]&quot;);</span>
          +<span class="nc" id="L75">    }</span>
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 936c84a..59a15e9 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 210</td><td class="ctr2">71 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">24</td><td class="ctr2">66</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.html" class="el_class">Policy</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="53" alt="53"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">66 of 217</td><td class="ctr2">69 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">28</td><td class="ctr2">70</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.html" class="el_class">Policy</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="60" alt="60"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i1">24</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index b7009ee..f534830 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 210</td><td class="ctr2">71 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">24</td><td class="ctr2">66</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html" class="el_source">Policy.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="53" alt="53"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">66 of 217</td><td class="ctr2">69 %</td><td class="bar">5 of 9</td><td class="ctr2">44 %</td><td class="ctr1">6</td><td class="ctr2">17</td><td class="ctr1">28</td><td class="ctr2">70</td><td class="ctr1">3</td><td class="ctr2">12</td><td class="ctr1">1</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="Policy.java.html" class="el_source">Policy.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="60" alt="60"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i1">24</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a3"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">11</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="65" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="96" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">2</td><td class="ctr1" id="l3">0</td><td class="ctr2" id="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0-shaded.jar b/target/spoteezer-0.1.0-shaded.jar
          index 4c8e6af..424434b 100644
          Binary files a/target/spoteezer-0.1.0-shaded.jar and b/target/spoteezer-0.1.0-shaded.jar differ
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index 4c8e6af..424434b 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          index bb2ca30..e925716 100644
          --- a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          index 5ebb15c..62f74fc 100644
          --- a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          index dde9373..5c92f89 100644
          --- a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.018" tests="5" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.019" tests="5" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -56,7 +56,7 @@
               <property name="java.class.version" value="60.0"/>
             </properties>
             <testcase name="testGetTitle" classname="musichub.business.PlayListTest" time="0.002"/>
          -  <testcase name="testPlaylistClass" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testPlaylistClass" classname="musichub.business.PlayListTest" time="0"/>
             <testcase name="testPlaylistClassXML" classname="musichub.business.PlayListTest" time="0.006"/>
             <testcase name="testCreateXMLElement" classname="musichub.business.PlayListTest" time="0"/>
             <testcase name="testGetElements" classname="musichub.business.PlayListTest" time="0.001"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.SongTest.xml b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          index 2bfbc93..4623ab2 100644
          --- a/target/surefire-reports/TEST-musichub.business.SongTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.019" tests="6" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.013" tests="6" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,9 +55,9 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0.005"/>
          +  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0"/>
             <testcase name="testToString" classname="musichub.business.SongTest" time="0.006"/>
          -  <testcase name="testSongClassXML" classname="musichub.business.SongTest" time="0.002"/>
          +  <testcase name="testSongClassXML" classname="musichub.business.SongTest" time="0.001"/>
             <testcase name="testCreateXMLElement" classname="musichub.business.SongTest" time="0"/>
             <testcase name="testSongClass" classname="musichub.business.SongTest" time="0"/>
             <testcase name="testSetGenre" classname="musichub.business.SongTest" time="0"/>
          diff --git a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          index b5707c9..303888b 100644
          --- a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.LogHandlerTest" time="0.023" tests="3" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.LogHandlerTest" time="0.075" tests="3" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,7 +55,7 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testLogHandlerClass" classname="musichub.util.LogHandlerTest" time="0"/>
          -  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0.002"/>
          -  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.018"/>
          +  <testcase name="testLogHandlerClass" classname="musichub.util.LogHandlerTest" time="0.001"/>
          +  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0"/>
          +  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.071"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          index 10ec3d9..2ed37c9 100644
          --- a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.PathValidationTest" time="0.001" tests="2" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.PathValidationTest" time="0.002" tests="2" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          diff --git a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          index 3022713..6ee5744 100644
          --- a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          +++ b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          @@ -1,5 +1,5 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.119" tests="2" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.094" tests="2" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
               <property name="sun.cpu.isalist" value="amd64"/>
          @@ -15,7 +15,7 @@
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
               <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564 2021-06-27T22-23-26_881-jvmRun1 surefire7843695504690115096tmp surefire_04088083116107885099tmp"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303 2021-06-28T23-36-31_184-jvmRun1 surefire14735445854373430078tmp surefire_017738082907736466932tmp"/>
               <property name="jdk.debug" value="release"/>
               <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          @@ -30,7 +30,7 @@
               <property name="line.separator" value="&#10;"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
               <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire9308943938457390564\surefirebooter14738086644009111251.jar"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire12987402337600427303\surefirebooter13413967179469073364.jar"/>
               <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
               <property name="java.runtime.version" value="16.0.1+9-24"/>
          @@ -55,6 +55,6 @@
               <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
          -  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.118"/>
          +  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.093"/>
             <testcase name="testCreateXML" classname="musichub.util.XMLHandlerTest" time="0"/>
           </testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.PlayListTest.txt b/target/surefire-reports/musichub.business.PlayListTest.txt
          index c738c60..7109820 100644
          --- a/target/surefire-reports/musichub.business.PlayListTest.txt
          +++ b/target/surefire-reports/musichub.business.PlayListTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.business.PlayListTest
           -------------------------------------------------------------------------------
          -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 s - in musichub.business.PlayListTest
          +Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.PlayListTest
          diff --git a/target/surefire-reports/musichub.business.SongTest.txt b/target/surefire-reports/musichub.business.SongTest.txt
          index 4e87759..b940dd9 100644
          --- a/target/surefire-reports/musichub.business.SongTest.txt
          +++ b/target/surefire-reports/musichub.business.SongTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.business.SongTest
           -------------------------------------------------------------------------------
          -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.SongTest
          +Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 s - in musichub.business.SongTest
          diff --git a/target/surefire-reports/musichub.util.LogHandlerTest.txt b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          index 14d9938..520c865 100644
          --- a/target/surefire-reports/musichub.util.LogHandlerTest.txt
          +++ b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.util.LogHandlerTest
           -------------------------------------------------------------------------------
          -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 s - in musichub.util.LogHandlerTest
          +Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 s - in musichub.util.LogHandlerTest
          diff --git a/target/surefire-reports/musichub.util.PathValidationTest.txt b/target/surefire-reports/musichub.util.PathValidationTest.txt
          index 39ffd40..73b70d5 100644
          --- a/target/surefire-reports/musichub.util.PathValidationTest.txt
          +++ b/target/surefire-reports/musichub.util.PathValidationTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.util.PathValidationTest
           -------------------------------------------------------------------------------
          -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in musichub.util.PathValidationTest
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s - in musichub.util.PathValidationTest
          diff --git a/target/surefire-reports/musichub.util.XMLHandlerTest.txt b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          index 8938cdc..975dc3e 100644
          --- a/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          +++ b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          @@ -1,4 +1,4 @@
           -------------------------------------------------------------------------------
           Test set: musichub.util.XMLHandlerTest
           -------------------------------------------------------------------------------
          -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.119 s - in musichub.util.XMLHandlerTest
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.094 s - in musichub.util.XMLHandlerTest
          -- 
          cgit v1.2.3