From ac314ff42ca576cb50f73f91cc7ce671b3b9b285 Mon Sep 17 00:00:00 2001
From: Linda <lmkaku@utu.fi>
Date: Sun, 2 Apr 2023 14:21:59 +0300
Subject: [PATCH] lopullinen versio?

---
 .../utu/tech/ooj/exercise0/KirjaKokoelma.java | 12 +---
 .../java/fi/utu/tech/ooj/exercise0/Main.java  | 71 ++++++++++---------
 2 files changed, 39 insertions(+), 44 deletions(-)

diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
index 7f2b553..d154b74 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java
@@ -11,24 +11,16 @@ public class KirjaKokoelma {
     
     public KirjaKokoelma(String omistaja) {
         this.kokoelmanOmistaja = omistaja;
-        this.kirjaListaus = new ArrayList<Kirja>();
+        kirjaListaus = new ArrayList<Kirja>();
     }
     public void setOmistaja(String omistaja) {
         this.kokoelmanOmistaja = omistaja;
     }
     public String getOmistaja() { return kokoelmanOmistaja; }
+    
     public ArrayList<Kirja> getListaus() { return kirjaListaus; }
     
     public void lisaaKirja(Kirja kirja) {
         kirjaListaus.add(kirja);
     }
-    //TODO
-    public void tulostaKokoelma(PrintStream out) {
-        
-    }
-    //TODO
-    public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException{
-        
-    }
-
 }
diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
index 5c0d076..deb7a4e 100644
--- a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
+++ b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java
@@ -36,6 +36,7 @@ public class Main {
          * Testin jälkeen alla olevan rivin voi joko kommentoida tai poistaa.
          */
         System.out.println("*** Harjoitustyöpohja käynnistyy ***");
+        
 
         //Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
 
@@ -46,42 +47,44 @@ public class Main {
         //Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia
         //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
 
-        public static Kirja luoKirja(ArrayList<String> lista) {
-            Kirja kirja = new Kirja(lista.get(0), lista.get(1), Integer.parseInt(lista.get(2)));
-            return kirja;
-        }
+    }
+    public static Kirja luoKirja(ArrayList<String> lista) {
+        Kirja kirja = new Kirja(lista.get(0), lista.get(1), Integer.parseInt(lista.get(2)));
+        return kirja;
+    }
 
-        //Tehtävä 4
-        public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki){
-            Scanner scanner = new Scanner(System.in);
-            ArrayList<String> palautus = new ArrayList<String>();
-            for (int i = 0; i < kysyttavat.length; i++) {
-                System.out.println("Syötä " + kysyttavat[i]);
-                String syote = scanner.nextLine();
-                if (syote.equals(lopetusmerkki)) {
-                    palautus.add(syote);
-                    break;
-                }
-                else { palautus.add(syote); }
-            }
-            return palautus;
+    //Tehtävä 4
+    public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki){
+        Scanner scanner = new Scanner(System.in);
+        ArrayList<String> palautus = new ArrayList<String>();   //Rutiinin palauttama arraylist olio
+        for (int i = 0; i < kysyttavat.length; i++) {           //käy läpi parametrina annetun kysyttavat string arrayn
+            System.out.println("Syötä " + kysyttavat[i]);       //ja kysyy kaikki siinä annetut tiedot käyttäjältä.
+            String syote = scanner.nextLine();
+            if (syote.equals(lopetusmerkki)) {                  //Jos käyttäjä syöttää lopetusmerkin, for loop pysähtyy
+                palautus.add(syote);                            //ja lopetusmerkki lisätään kirjan tietoihin, että
+                break;											//luoKokoelma()-rutiini osaa jättää sen kirjan lisäämättä
+            }													//ja lopettaa rutiini.
+            else { palautus.add(syote); }
         }
-        //Tehtävä 5
-        public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
-            Scanner scanner = new Scanner(System.in);
-            System.out.println("Anna kirjakokoelman omistajan nimi:");
-            String nimi = scanner.nextLine();
-            KirjaKokoelma kokoelma = new KirjaKokoelma(nimi);
-            String[] kysyttavat = new String[]{"kirjan nimi", "kirjailijan nimi", "julkaisuvuosi"};
-            ArrayList<String> lisattava = new ArrayList<String>();
-            while(true) {
-                lisattava = kysyTietoja(kysyttavat, lopetusmerkki);
-                if (lisattava.contains(lopetusmerkki)) { break; }
-                else if (lisattava.size()== kysyttavat.length) {
-                    kokoelma.lisaaKirja(luoKirja(lisattava));
-                }
-            }
-            return kokoelma;
+        return palautus;
+    }
+    
+    //Tehtävä 5
+    public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
+        Scanner scanner = new Scanner(System.in);
+        System.out.println("Anna kirjakokoelman omistajan nimi:");
+        String nimi = scanner.nextLine();
+        KirjaKokoelma kokoelma = new KirjaKokoelma(nimi);				//Luodaan uusi KirjaKokoelma syötteen perusteella.
+        String[] kysyttavat = new String[]{"kirjan nimi", "kirjailijan nimi", "julkaisuvuosi"};
+        ArrayList<String> lisattava = new ArrayList<String>();			//ArrayList uuden luotavan Kirja tiedoille.
+        while(true) {													//Pyörii niin kauan kunnes käyttäjä syöttää lopetusmerkin.
+            lisattava = kysyTietoja(kysyttavat, lopetusmerkki);			//Käytetään kysyTietoja -rutiinia kirjan tietojen kyselyyn.
+            if (lisattava.contains(lopetusmerkki)) { break; }			//Jos saatu arraylist sisältää lopetusmerkin, sitä ei lisätä
+            else if (lisattava.size()== kysyttavat.length) {			//kirjakokoelmaan, vaan while loop pysähtyy ja palauttaa
+                kokoelma.lisaaKirja(luoKirja(lisattava));				//tähän mennessä tallentamansa KirjaKokoelman. Muussa tapauksessa
+            }															//kirja lisätään kokoelmaan ja loop alkaa alusta
         }
+        scanner.close();
+        return kokoelma;
     }
 }
-- 
GitLab