
//Autore: Giuliano Pellegrini Parisi
//
//Data: 27 novembre 2008
//
//Classe: 4^Sirio Inf.
//
//Oggetto: Implementazione classe Persona
//
//Release: 0.1        

package Anagrafe;

import java.util.*;

class Persona
{
    private String Nome;
    private String Cognome;
    private String CodiceCittadino;


    // La classe Date è diventate Deprecated a partire dal JDK 1.1 e al suo
    // posto si deve usare la classe Calendar e GregorianCalendar.
    // Si può usare la classe Date solo per scopi di visualizzazione ossia
    // stampare a video la data odierna oppure una data personalizzata dal
    // programmatore.

    private GregorianCalendar DataNascita;
    private String Indirizzo;
    private String CodiceFiscale;
    private String StatoFamiglia;

    private String direzione;

    private final static String DIRITTO="diritto";
    

    public void get_direzione(String direzione)
    {
        this.direzione=direzione;
    }

    public void sinistra()
    {
        this.get_direzione(DIRITTO);
    }
    
    // Elenco dei costruttori più quello di default con il Cross Calling

    public Persona()
    {
    }

    public Persona(String Nome)
    {
        this.Nome=Nome;
    }

    public Persona(String Nome,String Cognome)
    {
        this(Nome);
        this.Cognome=Cognome;
    }

    public Persona(String Nome,String Cognome,String CodiceCittadino)
    {
        this(Nome,Cognome);
        this.CodiceCittadino=CodiceCittadino;
    }

    public Persona(String Nome,String Cognome,String CodiceCittadino,GregorianCalendar DataNascita)
    {
        this(Nome,Cognome,CodiceCittadino);
        this.DataNascita=DataNascita;
    }

    public Persona(String Nome,String Cognome,String CodiceCittadino,GregorianCalendar DataNascita,String Indirizzo)
    {
        this(Nome,Cognome,CodiceCittadino,DataNascita);
        this.Indirizzo=Indirizzo;
    }

    public Persona(String Nome,String Cognome,String CodiceCittadino,GregorianCalendar DataNascita,String Indirizzo,String CodiceFiscale)
    {
        this(Nome,Cognome,CodiceCittadino,DataNascita,Indirizzo);
        this.CodiceFiscale=CodiceFiscale;
    }


    public Persona(String Nome,String Cognome,String CodiceCittadino,GregorianCalendar DataNascita,String Indirizzo,String CodiceFiscale,String StatoFamiglia)
    {
        this(Nome,Cognome,CodiceCittadino,DataNascita,Indirizzo,CodiceFiscale);
        this.StatoFamiglia=StatoFamiglia;

    }

    // Elenco metodi getter/setter

    public void set_Nome(String Nome)
    {
        this.Nome=Nome;
    }

    public String get_Nome()
    {
        return this.Nome;
    }

    public void set_Cognome(String Cognome)
    {
        this.Cognome=Cognome;
    }

    public String get_Cognome()
    {
        return this.Cognome;
    }

    public void set_CodiceCittadino(String CodiceCittadino)
    {
        this.CodiceCittadino=CodiceCittadino;
    }

    public String get_CodiceCittadino()
    {
        return this.CodiceCittadino;
    }

    public void set_DataNascita(GregorianCalendar DataNascita)
    {
        this.DataNascita=DataNascita;
    }

    public String get_DataNascita()
    {
        Integer anno;
        Integer mese;
        Integer giorno;
        Integer ora;
        Integer minuto;
        Integer secondo;

        String data;

        anno=this.DataNascita.get(Calendar.YEAR);
        mese=this.DataNascita.get(Calendar.MONTH);

        mese++;

        giorno=this.DataNascita.get(Calendar.DAY_OF_MONTH);
        ora=this.DataNascita.get(Calendar.HOUR_OF_DAY);
        minuto=this.DataNascita.get(Calendar.MINUTE);
        secondo=this.DataNascita.get(Calendar.SECOND);

        data=giorno.toString() + "/" +
             mese.toString()   + "/" +
             anno.toString() ;

       return data;

        
    }

    public void set_Indirizzo(String Indirizzo)
    {
        this.Indirizzo=Indirizzo;
    }

    public String get_Indirizzo()
    {
        return this.Indirizzo;
    }

    public void set_CodiceFiscale(String CodiceFiscale)
    {
        this.CodiceFiscale=CodiceFiscale;
    }

    public String get_CodiceFiscale()
    {
        return this.CodiceFiscale;
    }

    public void set_StatoFamiglia(String StatoFamiglia)
    {
        this.StatoFamiglia=StatoFamiglia;
    }

    public String get_StatoFamiglia()
    {
        return this.StatoFamiglia;
    }

    public void Stampa()
    {
        System.out.println("Il nome vale: " + this.get_Nome());
        System.out.println("Il cognome vale: " + this.get_Cognome());
        System.out.println("Il codice cittadino vale: " + this.get_CodiceCittadino());
        System.out.println("La data vale: " + this.get_DataNascita());
        System.out.println("L'indirizzo vale: " + this.get_Indirizzo());
        System.out.println("Il codice fiscale vale: " + this.get_CodiceFiscale());
        System.out.println("Lo stato famiglia vale: " + this.get_StatoFamiglia());
    }

}
