package it.datamanagement.saia_xml.test;

import it.datamanagement.saia_xml.castor.provaxml.Comune;
import it.datamanagement.saia_xml.castor.provaxml.Generalita;
import it.datamanagement.saia_xml.castor.provaxml.LuogoNascita;
import it.datamanagement.saia_xml.castor.provaxml.ProvaXML;
import it.datamanagement.saia_xml.castor.provaxml.TipoLuogoChoice;

import java.io.StringWriter;

import org.apache.log4j.Logger;
import org.exolab.castor.core.exceptions.CastorException;

public class TestProvaXML
{ 
  private static Logger log = Logger.getLogger(TestProvaXML.class.getName());
  
  public static LuogoNascita buildLuogoNascita()
  {
    LuogoNascita luogoNascita = new LuogoNascita();
    TipoLuogoChoice tipoLuogoChoice = new TipoLuogoChoice();
    luogoNascita.setTipoLuogoChoice(tipoLuogoChoice);
    Comune comune = new Comune();
    tipoLuogoChoice.setComune(comune);
    comune.setCodiceComuneIstat("039014");
    comune.setNomeComune(".Ravenna");
    comune.setSiglaProvinciaIstat("RA");
    
    /*
    LuogoNascita luogoNascita = new LuogoNascita();
    //TipoLuogo tipoLuogo = new TipoLuogo();
    //luogoNascita.setTipoLuogo(tipoLuogo);
    //TipoLuogoChoice tipoLuogoChoice = new TipoLuogoChoice();
    //luogoNascita.setTipoLuogoChoice(tipoLuogo);
    Comune comune = new Comune();
    //tipoLuogo.setComune(comune);
    luogoNascita.setComune(comune);
    comune.setCodiceComuneIstat("039014");
    comune.setNomeComune(".Ravenna");
    comune.setSiglaProvinciaIstat("RA");
    */
    return luogoNascita;
  }
  
  public static void main (String[] args) 
  {
    
    log.info("inizio cie.Costruisci.Risultato(errore)");
    ProvaXML provaXML = new ProvaXML();
    
    Generalita generalita = new Generalita();
    generalita.setCognome("Casadei");
    generalita.setNome("Alex");
    generalita.setLuogoNascita(buildLuogoNascita());
    provaXML.setGeneralita(generalita);
    
    
    /*
    provaXML.setCognome("casadei");
    provaXML.setNome("alex");
    ComuneNascita comuneNascita = new ComuneNascita();
    comuneNascita.setCodiceComuneIstat("039014");
    comuneNascita.setNomeComune(".Ravenna");
    comuneNascita.setSiglaProvinciaIstat("RA");
    provaXML.setComuneNascita(comuneNascita);
    */
    //provaXML.setProvinciaNascita("RA");
    
    
    StringWriter sw = new StringWriter();
    try
    {
      provaXML.marshal(sw);
      log.info("XML: "+ sw.toString());
    }
    catch (CastorException me)
    {
        log.error("MarshalException impossibile cotruire il documento XML");
        log.error(me);
    }
    
    System.exit(0);
    
  }
  
  
}
