...
Deze indelingstrategie moet voor elke ronde uitgevoerd worden, maar alleen als de resultaten van de vorige match al duidelijk is. Als het voor JaVaFo onmogelijk is om een ronde te genereren (aantal spelers/2 > aantal rondes) of het maximaal aantal rondes in de competitionDTO wordt overschreden gooit de API een RuntimeException.
Patterns
Strategy pattern
TODO
Layered architecture
TODO
MVC pattern
TODO
USECASE 9 - Gegevens publiceren op website
...
Bij het maken van de inputstring is de spacing van alle waardes erg belangrijk, waarvoor "inflate" functies zijn gemaakt. Deze functies voegen white space (' ') tekens toe, tot de input string gelijk is aan de lengte die voor dat stuk nodig is. Bij nummers wordt inflate left gebruikt (want 0-9 moeten op de meest rechtse plaats staan, en moeten naar links uitbreiden) en bij letters wordt inflate right gebruikt (want het eerste teken moet zo links mogelijk staan en naar rechts uitbreiden).
SQLite Connection Provider
Om verbinding te maken met de database is ervoor gekozen gebruik te maken van Hibernate en JPA. Dit heeft als voordeel dat er later in de levensduur van de applicatie gemakkelijk van database provider kan worden gewisseld indien dit gewenst is. Voor de applicatie wordt nu gebruik gemaakt van SQLite als de database provider, omdat het een lokaal bestand betreft en dus geen hosting-kosten met zich meebrengt, en toch een SQL database is die makkelijk naar een MySQL server kan worden overgezet indien dit later gewenst is. Een later ondervonden nadeel van SQLite is dat foreign key constraints niet standaard worden toegepast als er verbinding wordt gemaakt met de database. Hierdoor kunnen we geen gebruik maken van de default hibernate connection provider. Als oplossing hebben we ervoor gekozen een custom connection provider te maken, speciaal voor gebruik met SQLite.
Deze connection provider doet twee dingen:
- Hij zet zodra het programma gestart wordt de foreign keys aan binnen de SQLite database, zodat de database naar behoren kan werken.
- Hij laadt de locatie van de database in via een aangemaakt .properties bestand. Omdat de database een lokaal bestand is, gepaard met de wens van UVS om de locatie van de database aan te kunnen passen, is er geen vaste locatie waar het bestand staat. De locatie wordt dus in dit .properties bestand opgeslagen en door de custom connection provider opgehaald wanneer het programma opgestart wordt.
Bibliografie
- Wikipedia contributors. (2024, 29 mei). Elo rating system. Wikipedia. Geraadpleegd op 31 mei 2024, van https://en.wikipedia.org/wiki/Elo_rating_system#Mathematical_details
- Kraus, C. (2015, August 10). Format of TRF (tournament report file) player section. https://www.fide.com/FIDE/handbook/C04Annex2_TRF16.pdf
...