diff --git a/.classpath b/.classpath index 58a9ee2332b4b2a398cc8d2f134cef942ed850a3..59247f47227c286c12f6e5c9a0493fb5298da668 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 0000000000000000000000000000000000000000..8cb4e5f7b31d80a356e8b0f99c23a01e38d967ef --- /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 b5070f8cdc6bf8e65d07ef64e0b14172e887f785..2f096cfa6339192e21f54a7a089f9ec57a208c93 100644 --- a/src/fxKirjalista/KirjalistaGUIController.java +++ b/src/fxKirjalista/KirjalistaGUIController.java @@ -61,6 +61,7 @@ public class KirjalistaGUIController implements Initializable { } + /** * Kirjan muokkaus */