Skip to content
Snippets Groups Projects
Forked from tie / ohj2 / ve / 2025 / kevat / ohj2
37 commits ahead of the upstream repository.
Projektit.java 2.76 KiB
package fxHarakka.luokat;

import java.util.ArrayList;

/**---------------Projektien (monikko) luokka--------------------------------
 * |                                                    | -Projekti         |
 * | - lisää ja poistaa projekteja                      |                   |
 * |                                                    |                   |
 * | - Huolehtii listan pituuden riittävyydestä jos     |                   |
 * |    täyttyy                                         |                   |
 * |                                                    |                   |
 * | - Lukee ja kirjoittaa projektit.dat tiedostoon     |                   |
 * |                                                    |                   |
 * | - Etsii ja lajittelee (avustajana projekti luokka) |                   |
 */
public class Projektit {
    //private int maxMaara; //tätä ei näillänäkymin tarvitse johtuen tietorakenteesta
                            //--> ei tarvitse itse huolehtia kasvatuksesta
    private String kokoNimi = ""; //projektit nimi
    private String tied = "";     //tiedostosijainti josta luetaan ja kirjoitetaa
    private ArrayList<Projekti> projektiAlkiot = new ArrayList<>(); //varaa autom. oikean määrän alkioita

    //arraylist on nyt staattinen mutta oliot sisällä ei eli pitäis olla ok?? jos tulee ongelmia niin
    //pitää mennä Projekti luokkaan ja tehdä lisaaProjekti ei-staattiseksi ja alla lisaaProjekti myös


    //-----------------------MUODOSTAJAT - PROJEKTIT----------------------------

    /**
     *
     *
     * @param kokoNimi  projektikokoelman nimi
     * @param tied      tiedostosijainti josta luetaan ja talletetaan
     */
    public Projektit(String kokoNimi, String tied) {
        this.kokoNimi = kokoNimi;
        this.tied = tied;
    }

    /**
     * Oletusmuodostaja. voidaan käyttää ylempää jos halutaan muokata ominaisuuksia kuten nimeä esim tilanteessa
     * jossa halutaan jatkossa lisätä uusi "istunto".
     *
     *
     * oletuksena luo 10 tyhjää alkioita
     */
    public Projektit() {
        this.kokoNimi = "Harakka";
        this.tied = "projektit.dat";
    }



    //-----------------------METODIT - PROJEKTIT----------------------------


    /**
     * Lisää projektin tietorakenteeseen
     * @param projekti lisättävä projekti
     */
    public void lisaaProjekti(Projekti projekti){
        projektiAlkiot.add(projekti);
        System.out.println("projekti lisätty! " + projekti);
    }


    /** Poistaa valitun projektin tietokannasta
     *
     * @param ind poistettavan projektin indeksi
     */