From e968fa2be1fd87bc5b48eeeb63d561615c8e6bb7 Mon Sep 17 00:00:00 2001 From: tornhale <hannes.lt.tornberg@student.jyu.fi> Date: Tue, 4 Mar 2025 17:38:20 +0200 Subject: [PATCH] GenreRelaatio-luokan tekeminen aloitettu. Haku- ja poisto-ominaisuudet valmiita --- .classpath | 1 + src/Kirjalista/GenreRelaatio.java | 69 +++++++++++++++++++ src/fxKirjalista/KirjalistaGUIController.java | 1 + 3 files changed, 71 insertions(+) create mode 100644 src/Kirjalista/GenreRelaatio.java diff --git a/.classpath b/.classpath index 58a9ee2..59247f4 100644 --- a/.classpath +++ b/.classpath @@ -9,5 +9,6 @@ <classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ohj2"/> <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/> + <classpathentry kind="lib" path="C:/Users/omistaja/Ohjelmointi/Java-projektit/Jarreja/Tietorakenne.jar"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/src/Kirjalista/GenreRelaatio.java b/src/Kirjalista/GenreRelaatio.java new file mode 100644 index 0000000..8cb4e5f --- /dev/null +++ b/src/Kirjalista/GenreRelaatio.java @@ -0,0 +1,69 @@ +package Kirjalista; + +import java.util.ArrayList; + +import tietorakenne.LinkattuLista; + +/** + * Genren ja kirjan välinen relaatio + * - pitää kirjaa liimatuista genreistä ja kirjoista + * - palauttaa kirjojen id:t genren id:n perusteella + * - palauttaa genrejen id:t kirjan id:n perusteella + * - lukee ja kirjoittaa tiedostoon + */ +public class GenreRelaatio { + private LinkattuLista<KirjanGenre> alkiot = new LinkattuLista<KirjanGenre>(); + + /** + * Lisää listaan alkion + * @param alkio Alkio, joka lisätään listaan + */ + public void lisaa(KirjanGenre alkio) { + alkiot.lisaa(alkio); + } + + + /** + * Palauttaa ArrayListin kirjojen id:istä, joilla on tietty genreid + * esim. palauttaa kaikkien kirjojen id:t, joiden genre on fantasia + * @param genreId Genren id, jonka perusteella haetaan kirjojen id:itä + * @return Kaikkien niiden kirjojen id:t, joiden genren id on genreId + */ + public ArrayList<Integer> haeKirjat(int genreId) { + ArrayList<Integer> kirjojenIdt = new ArrayList<Integer>(); + for (int i = 0; i < alkiot.length(); i++) { + KirjanGenre alkio = alkiot.getByIndex(i); + if (alkio.getGenreId() == genreId) { + kirjojenIdt.add(alkio.getKirjaId()); + } + } + return kirjojenIdt; + } + + + /** + * Palauttaa ArrayListin genrejen id:istä, joilla on tietty kirjaid + * eli toisin sanoen palauttaa tietyn kirjan kaikkien genrejen id:t + * @param kirjaId Kirjan id, jonka perusteella haetaan genrejen id:itä + * @return Kaikkien niiden genrejen id:t, joiden kirjan id on kirjaId + */ + public ArrayList<Integer> haeGenret(int kirjaId) { + ArrayList<Integer> genrejenIdt = new ArrayList<Integer>(); + for (int i = 0; i < alkiot.length(); i++) { + KirjanGenre alkio = alkiot.getByIndex(i); + if (alkio.getKirjaId() == kirjaId) { + genrejenIdt.add(alkio.getGenreId()); + } + } + return genrejenIdt; + } + + + /** + * Poistaa alkion annetussa indeksipaikassa + * @param indeksi Indeksipaikka, josta alkio poistetaan + */ + public void poista(int indeksi) { + alkiot.poista(indeksi); + } +} diff --git a/src/fxKirjalista/KirjalistaGUIController.java b/src/fxKirjalista/KirjalistaGUIController.java index b5070f8..2f096cf 100644 --- a/src/fxKirjalista/KirjalistaGUIController.java +++ b/src/fxKirjalista/KirjalistaGUIController.java @@ -61,6 +61,7 @@ public class KirjalistaGUIController implements Initializable { } + /** * Kirjan muokkaus */ -- GitLab