From 8015edfa85fefe2bcd1f0badaef48ab228ecef8f Mon Sep 17 00:00:00 2001
From: Lahtinen Konsta Aleksi <konsta.a.lahtinen@student.jyu.fi>
Date: Thu, 27 Mar 2025 12:27:05 +0200
Subject: [PATCH] oma taulukko

---
 Ohj2HT/src/Luokat/Kalenteri.java              | 11 ++++-
 Ohj2HT/src/Luokat/Reissut.java                | 46 ++-----------------
 Ohj2HT/src/Luokat/Saaliit.java                | 36 +++++++++++++++
 Ohj2HT/src/Luokat/test/ReissutTest.java       | 12 +++--
 Ohj2HT/src/fxKaljoja/KalojaGUIController.java | 12 ++---
 .../LisaaReissuGUIController.java             |  2 +-
 6 files changed, 65 insertions(+), 54 deletions(-)

diff --git a/Ohj2HT/src/Luokat/Kalenteri.java b/Ohj2HT/src/Luokat/Kalenteri.java
index 58aad01..6bdece0 100644
--- a/Ohj2HT/src/Luokat/Kalenteri.java
+++ b/Ohj2HT/src/Luokat/Kalenteri.java
@@ -20,7 +20,14 @@ public class Kalenteri {
         lajit = new Tulkki(dir + "/../lajit.dat");
         vieheTulkki = new Tulkki(dir + "/../vieheTyypit.dat");
         kokoTulkki = new Tulkki(dir + "/../koot.dat");
-        this.reissut = new Reissut(lajit,kokoTulkki, vieheTulkki);
+
+        this.saaliit = new Saaliit(10);
+        TiedostonHiplailija t = new TiedostonHiplailija(System.getProperty("user.dir") + "/../saaliit.dat");
+        for (String s : t.lueRivit()) {
+            Saalis saaliis = new Saalis(s, lajit, vieheTulkki, kokoTulkki);
+            saaliit.lisaa(saaliis);
+        }
+        this.reissut = new Reissut(saaliit);
         reissut.sort();
         vieheLaskuri = new Laskuri(dir +"/../vieheLaskuri.dat",vieheTulkki);
         kalaLaskuri = new Laskuri(dir +"/../kalaLaskuri.dat",lajit);
@@ -44,6 +51,8 @@ public class Kalenteri {
 
     public Tulkki getKokoTulkki() { return kokoTulkki;  }
 
+    public Saaliit getSaaliit() { return saaliit;}
+
     public boolean tallenna(int aluksi, int reissumaara) {
         TiedostonHiplailija reissu = new TiedostonHiplailija(System.getProperty("user.dir") + "/../reissut.dat");
         TiedostonHiplailija saalis = new TiedostonHiplailija(System.getProperty("user.dir")+ "/../saaliit.dat");
diff --git a/Ohj2HT/src/Luokat/Reissut.java b/Ohj2HT/src/Luokat/Reissut.java
index 1f65f56..83f0f90 100644
--- a/Ohj2HT/src/Luokat/Reissut.java
+++ b/Ohj2HT/src/Luokat/Reissut.java
@@ -16,30 +16,19 @@ public class Reissut {
 	/**
 	 * muodostaja
 	 */
-	public Reissut(Tulkki lajit, Tulkki koot, Tulkki vieheet) {
+	public Reissut(Saaliit saaliit) {
 		this.reissut = new ArrayList<>();
-		luoReissut(lajit, koot,vieheet);
+		luoReissut(saaliit);
 	}
 
-	private List<Saalis> luoSaaliit(Tulkki lajit, Tulkki koot, Tulkki vieheet) {
-		TiedostonHiplailija t = new TiedostonHiplailija(System.getProperty("user.dir") + "/../saaliit.dat");
-		List<Saalis> saaliit = new ArrayList<Saalis>();
-		List<String> tiedot = t.lueRivit();
-		t.sulje();
-		for (String s : tiedot) {
-			Saalis saalis = new Saalis(s, lajit, vieheet, koot);
-			saaliit.add(saalis);
-		}
-		return saaliit;
-	}
 	
-	private void luoReissut(Tulkki lajit, Tulkki koot, Tulkki vieheet) {
+	private void luoReissut(Saaliit saaliit) {
 		TiedostonHiplailija t = new TiedostonHiplailija(System.getProperty("user.dir") + "/../reissut.dat");
-		List<Saalis> saaliit = luoSaaliit(lajit, koot, vieheet); //Kaikki saaliit
+		List<Saalis> saaliitList = saaliit.getSaaliitList(); //Kaikki saaliit
 		for (String s : t.lueRivit()) {
 			Reissu a = new Reissu(s);
 			List<Saalis> apuri = new ArrayList<>(); // Tässä luodaan tietyn reissun saaliiden lista
-			for (Saalis saalis : saaliit) {
+			for (Saalis saalis : saaliitList) {
 				if (saalis.getReissunTagi() == a.getTag()) {
 					apuri.add(saalis);
 				}
@@ -145,32 +134,7 @@ public class Reissut {
 	* </pre>
 	*/
 	    // Testi
-	    public static void main(String[] args) {
-			Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat");
-			Tulkki vieheTulkki = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat");
-			Tulkki kokoTulkki = new Tulkki(System.getProperty("user.dir") + "/../koot.dat");
-
-			Reissut reissut = new Reissut(lajit, kokoTulkki, vieheTulkki);
-			Reissu t0 = new Reissu( Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false);
-	        Reissu t1 = new Reissu( Reissu.sToDate("12.12.2023"), "jk", "sade" , new ArrayList<>(), false);
-	        Reissu t2 = new Reissu( Reissu.sToDate("12.12.1223"), "sk", "aurinko", new ArrayList<>(), false );
-	        Reissu t3 = new Reissu( Reissu.sToDate("12.12.2323"), "ka", "pilvi", new ArrayList<>(), false);
 
-	        reissut.lisaaListaan(t1); reissut.lisaaListaan(t2); reissut.lisaaListaan(t3); reissut.lisaaListaan(t0);
-	        
-	        
-	        for (Reissu t: reissut.getReissut()) {
-        		System.out.println("ennen " + t.getPvmString());
-        	}
-	        
-	        reissut.sort();
-	        	
-	        	for (Reissu t: reissut.getReissut()) {
-	        		System.out.println("jälkeen " + t.getPvmString());
-	        	}
-	        	
-	       
-	    }
 	//todo:
 	//tallenna()
 	    
diff --git a/Ohj2HT/src/Luokat/Saaliit.java b/Ohj2HT/src/Luokat/Saaliit.java
index 40c9fb9..6e3fe73 100644
--- a/Ohj2HT/src/Luokat/Saaliit.java
+++ b/Ohj2HT/src/Luokat/Saaliit.java
@@ -1,15 +1,34 @@
 package Luokat;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 public class Saaliit {
     private Saalis[] saaliit;
     private int koko;
     private int index = 0;
 
+
+    /**
+     * muodostaja tyjhään taulukkoon
+     * @param koko kuinka suuri
+     */
     public Saaliit(int koko) {
         this.koko = koko;
         this.saaliit = new Saalis[koko];
     }
 
+
+    /**
+     * lisää saaliin olioon
+     * @param saalis olio joka lisätään
+     *@example <pre name="test">
+     *  Saaliit saaliit = new Saaliit(2);
+     * Saalis s = new Saalis("iso", "ahven", "lippa", "sininen");
+     * saaliit.lisaa(s);
+     * </pre>
+     */
     public void lisaa(Saalis saalis) {
         if (index == koko){
             kasvataTaulukkoa();
@@ -22,6 +41,9 @@ public class Saaliit {
         }
     }
 
+    /**
+     * Kasvattaa taulukon eli siis lue uuden
+     */
     private void kasvataTaulukkoa() {
         Saalis[] taulukko = new Saalis[koko +10];
         for (int i = 0; i < koko; i++){
@@ -31,6 +53,10 @@ public class Saaliit {
 
     }
 
+    public Saalis getSaalis(int index) {
+        return saaliit[index];
+    }
+
     public static void main(String[] args){
         Saaliit saaliit = new Saaliit(2);
         Saalis s = new Saalis("iso", "ahven", "lippa", "sininen");
@@ -40,4 +66,14 @@ public class Saaliit {
         Saalis s3 = new Saalis("iso", "kuha", "lippa", "hopea");
         saaliit.lisaa(s3);
     }
+
+    public List<Saalis> getSaaliitList() {
+        List<Saalis> saaliitList = new ArrayList<>();
+        for (Saalis saalis : saaliit){
+            if (saalis != null){
+                saaliitList.add(saalis);
+            }
+        }
+        return saaliitList;
+    }
 }
diff --git a/Ohj2HT/src/Luokat/test/ReissutTest.java b/Ohj2HT/src/Luokat/test/ReissutTest.java
index 5bc320d..ee7e190 100644
--- a/Ohj2HT/src/Luokat/test/ReissutTest.java
+++ b/Ohj2HT/src/Luokat/test/ReissutTest.java
@@ -19,18 +19,20 @@ import static Luokat.Reissut.*;
  *
  */
 @SuppressWarnings({ "all" })
-public class ReissutTest {
-
+public class ReissutTest {}
 
+/**
+ *
+ */
 
   // Generated by ComTest BEGIN
-  /** testMain113 */
+  /** testMain113
   @Test
   public void testMain113() {    // Reissut: 113
     Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat"); 
     Tulkki viehe = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat"); 
     Tulkki koko = new Tulkki(System.getProperty("user.dir") + "/../koot.dat"); 
-    Reissut test = new Reissut(lajit, koko, viehe); 
+    Reissut test = new Reissut(lajit, koko, viehe);
     test.getReissut().clear(); 
     Reissu t0 = new Reissu(Reissu.sToDate("1.12.2323"), "ka", "pilvi", new ArrayList<>(), false); 
     Reissu t1 = new Reissu(Reissu.sToDate("12.12.2023"), "jk", "sade", new ArrayList<>(), false); 
@@ -45,4 +47,4 @@ public class ReissutTest {
     test.removeReissu(); 
     assertEquals("From: Reissut line: 145", 3, test.getReissut().size()); 
   } // Generated by ComTest END
-}
\ No newline at end of file
+*/
\ No newline at end of file
diff --git a/Ohj2HT/src/fxKaljoja/KalojaGUIController.java b/Ohj2HT/src/fxKaljoja/KalojaGUIController.java
index 8b182c6..058b571 100644
--- a/Ohj2HT/src/fxKaljoja/KalojaGUIController.java
+++ b/Ohj2HT/src/fxKaljoja/KalojaGUIController.java
@@ -21,7 +21,7 @@ import Luokat.*;
  * @version 29.1.2025
  * Luokka joka hoitaa saaliin lisäyksen reissuun
  */
-public class KalojaGUIController implements Initializable, ModalControllerInterface<List<Saalis>> {
+public class KalojaGUIController implements Initializable, ModalControllerInterface<Saaliit> {
 	@FXML private ComboBox<String> koko;
 
 	@FXML private DynamicComboBox lajit;
@@ -30,7 +30,7 @@ public class KalojaGUIController implements Initializable, ModalControllerInterf
 
 	@FXML private DynamicComboBox vieheet;
 
-	private List<Saalis> saalis ;
+	private Saaliit saalis ;
 	private int vanhatLajit;
 	private int vanhatTyypit;
 	
@@ -88,7 +88,7 @@ public class KalojaGUIController implements Initializable, ModalControllerInterf
 	   //Varmistutaan, että käyttäjä on kertonut ainakin saaliin lajin ja koon, jotta voidaan tallentaa
 	   if(kokoString != null && (lajiString != null && !lajiString.isEmpty())){
 		   Saalis s = new Saalis(kokoString, lajiString, vieheet.getSelectionModel().getSelectedItem(),vieheVarit.getText());
-		   saalis.add(s);
+		   saalis.lisaa(s);
 		   System.out.println("Lisätty:");
 		   System.out.println("saalis : koko " + s.getKoko() + " laji " + s.getLaji() + " id " + s.getSaaliinId() + " Reissulta " + s.getReissunTagi());
 		   System.out.println("saatu vieheellä " + s.getViehe().tyyppi() + " " + s.getViehe().vari());
@@ -98,12 +98,12 @@ public class KalojaGUIController implements Initializable, ModalControllerInterf
 	 
 
 	@Override
-	public List<Saalis> getResult() {
-		return new ArrayList<>();
+	public Saaliit getResult() {
+		return new Saaliit(5);
 	}
 
 	@Override
-	public void setDefault(List<Saalis> saaliit) {
+	public void setDefault(Saaliit saaliit) {
 	   this.saalis = saaliit;
 
 	}
diff --git a/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java b/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java
index a743397..6e5f5d6 100644
--- a/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java
+++ b/Ohj2HT/src/fxLisaaReissu/LisaaReissuGUIController.java
@@ -74,7 +74,7 @@ public class LisaaReissuGUIController implements Initializable, ModalControllerI
 		 }
 		 
 		ModalController.showModal(KalenteriMain.class.getResource("/fxKaljoja/KalojaGUIView.fxml"),
-				 "Lisää saalis",null,saaliit);
+				 "Lisää saalis",null,kale.getSaaliit());
 		 liitaKaloja();
 	 }
 	 
-- 
GitLab