/*
 * 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.Naked;
import org.nakedobjects.object.Title;
import org.nakedobjects.object.control.About;
import org.nakedobjects.object.value.Date;
import org.nakedobjects.object.value.TextString;
import org.nakedobjects.testing.ClassView;
import org.nakedobjects.viewer.classic.ClassViewer;
import org.nakedobjects.object.control.ActionAbout;

public class Laina extends AbstractNakedObject {
        private final Date lainausaika;
        private final Date palautusaika;
        private Lainaaja lainaaja;
        private Nide nide;
        private Kommentti kommentti;

        public Laina(){
                lainausaika = new Date();
                palautusaika = new Date();
        }

        public Title title(){
                return new Title(lainaaja).append(nide);
        }

        public static String singularName()
        {
                return "Laina";
        }
        public static String pluralName()
        {
                return "Lainat";
        }

        /**
         * @return Returns the lainaaja.
         */
        public Lainaaja getLainaaja() {
                resolve(lainaaja);
                return lainaaja;
        }
        /**
         * @param lainaaja The lainaaja to set.
         */
        public void setLainaaja(Lainaaja lainaaja) {
                this.lainaaja = lainaaja;
                lainaaja.objectChanged();
                objectChanged();
        }

        /**
         * @return Returns the lainausaika.
         */
        public Date getLainausaika() {
                return lainausaika;
        }
        /**
         * @return Returns the palautusaika.
         */
        public Date getPalautusaika() {
                return palautusaika;
        }
        /**
         * @return Returns the teos.
         */
        public Nide getNide() {
                resolve(nide);
                return nide;
        }
        /**
         * @param teos The teos to set.
         */
        public void setNide(Nide nide) {
                this.nide = nide;
                objectChanged();
        }
        /**
         * @return Returns the kommentti.
         */
        public Kommentti getKommentti() {
                resolve(kommentti);
                return kommentti;
        }
        /**
         * @param kommentti The kommentti to set.
         */
        public void setKommentti(Kommentti kommentti) {
                this.kommentti = kommentti;
                objectChanged();
        }

        public void associateNide(Nide n) {
          if(n != null)
        n.associateLaina(this);
        }
}