/*
 * Created on 23.11.2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package kirjasto;
import org.nakedobjects.object.AbstractNakedObject;
import org.nakedobjects.object.Title;
import org.nakedobjects.object.collection.InternalCollection;
import org.nakedobjects.object.value.TextString;

/**
 * @author ottietav
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Lainaaja extends AbstractNakedObject {
        public final TextString etunimi;
        public final TextString sukunimi;
        public final TextString sahkoposti;
        public final TextString puhelinnumero;
        public final TextString osoite;
        public Title title;
        public Kommentti kommentti;
        private final InternalCollection lainat;

        public Lainaaja(){
                etunimi = new TextString();
                sukunimi = new TextString();
                sahkoposti = new TextString();
                puhelinnumero = new TextString();
                osoite = new TextString();
                lainat = new InternalCollection(Laina.class, this);
        }

        public final InternalCollection getLainat(){
                return lainat;
        }

        public void associateLaina(Laina laina){
                getLainat().add(laina);
                laina.setLainaaja(this);
        }

        public void dissociateLainat(Laina laina){
                getLainat().remove(laina);
                laina.setLainaaja(null);
        }

        public static String fieldOrder(){
                return "etunimi, sukunimi, sahkoposti, puhelinnumero, osoite";
        }

        public Title title(){
                TextString omatitle = new TextString();
                if ( etunimi.isEmpty() && sukunimi.isEmpty() ) omatitle.setValue("Lainaaja");
                else omatitle = etunimi;
                title = new Title(omatitle);
                title.concat(" ");
                title.concat(sukunimi);
                return title;
        }
        public static String singularName()
        {
                return "Lainaaja";
        }
        public static String pluralName()
        {
                return "Lainaajat";
        }

        public Kommentti getKommentti(){
                resolve(kommentti);
                return kommentti;
        }
        public void setKommentti(Kommentti newKommentti){
                kommentti = newKommentti;
                objectChanged();
        }

        public TextString getEtunimi() {
                return etunimi;
        }
        public TextString getOsoite() {
                return osoite;
        }
        public TextString getPuhelinnumero() {
                return puhelinnumero;
        }
        public TextString getSahkoposti() {
                return sahkoposti;
        }
        public TextString getSukunimi() {
                return sukunimi;
        }


}