package siprp.planoactuacao.print;

import java.util.Vector;

import org.jdom.Element;

public class PlanoActuacaoToPrint
	implements PrintableInterface
{
	protected EmpresaToPrint empresa;
	protected DataToPrint dataRelatorio;
	protected DataToPrint dataHs;
	protected LegislacaoAplicavelToPrint legislacaoAplicavel;
	protected Vector<AreaToPrint> areas;
	protected String observacoesDl;
	protected String observacoesDns;
	protected TecnicoHSToPrint tecnico;
	protected TecnicoHSToPrint tecnicoSuperior;

	public PlanoActuacaoToPrint( EmpresaToPrint empresa, DataToPrint dataRelatorio,
			DataToPrint dataHs, LegislacaoAplicavelToPrint legislacaoAplicavel,
			Vector<AreaToPrint> areas, String observacoesDl, String observacoesDns,
			TecnicoHSToPrint tecnico, TecnicoHSToPrint tecnicoSuperior )
	{
		super();
		this.empresa = empresa;
		this.dataRelatorio = dataRelatorio;
		this.dataHs = dataHs;
		this.legislacaoAplicavel = legislacaoAplicavel;
		this.areas = areas;
		this.observacoesDl = observacoesDl;
		this.observacoesDns = observacoesDns;
		this.tecnico = tecnico;
		this.tecnicoSuperior = tecnicoSuperior;
	}
	
	public EmpresaToPrint getEmpresa()
	{
		return empresa;
	}

	public void setEmpresa( EmpresaToPrint empresa )
	{
		this.empresa = empresa;
	}

	public DataToPrint getDataRelatorio()
	{
		return dataRelatorio;
	}

	public void setDataRelatorio( DataToPrint dataRelatorio )
	{
		this.dataRelatorio = dataRelatorio;
	}

	public DataToPrint getDataHs()
	{
		return dataHs;
	}

	public void setDataHs( DataToPrint dataHs )
	{
		this.dataHs = dataHs;
	}

	public LegislacaoAplicavelToPrint getLegislacaoAplicavel()
	{
		return legislacaoAplicavel;
	}

	public void setLegislacaoAplicavel(
			LegislacaoAplicavelToPrint legislacaoAplicavel )
	{
		this.legislacaoAplicavel = legislacaoAplicavel;
	}

	public Vector<AreaToPrint> getAreas()
	{
		return areas;
	}

	public void setAreas( Vector<AreaToPrint> areas )
	{
		this.areas = areas;
	}
	
	public void addArea( AreaToPrint area )
	{
		areas.add( area );
	}

	@Override
	public Element toJdomElement() throws Exception
	{
		Element planoElement = new Element( "plano" );
		planoElement.addContent( empresa.toJdomElement() );
		planoElement.addContent( dataRelatorio.toJdomElement() );
		planoElement.addContent( dataHs.toJdomElement() );
		planoElement.addContent( legislacaoAplicavel.toJdomElement() );
		if( areas.size() > 0 )
		{
			Element conclusoesElement = new Element( "conclusoes" );
			for( AreaToPrint area : areas )
			{
				conclusoesElement.addContent( area.toJdomElement() );
			}
			planoElement.addContent( conclusoesElement );
		}
		Element observacoesDlElement = new Element( "observacoes-dl" );
		observacoesDlElement.setText( observacoesDl );
		planoElement.addContent( observacoesDlElement );
		Element observacoesDnsElement = new Element( "observacoes-dns" );
		observacoesDnsElement.setText( observacoesDns );
		planoElement.addContent( observacoesDnsElement );
		if( tecnico != null )
		{
			planoElement.addContent( tecnico.toJdomElement() );
		}
		if( tecnicoSuperior != null )
		{
			planoElement.addContent( tecnicoSuperior.toJdomElement() );
		}
		return planoElement;
	}

	public String getObservacoesDl()
	{
		return observacoesDl;
	}

	public void setObservacoesDl( String observacoesDl )
	{
		this.observacoesDl = observacoesDl;
	}

	public String getObservacoesDns()
	{
		return observacoesDns;
	}

	public void setObservacoesDns( String observacoesDns )
	{
		this.observacoesDns = observacoesDns;
	}

	public TecnicoHSToPrint getTecnico()
	{
		return tecnico;
	}

	public void setTecnico(TecnicoHSToPrint tecnico)
	{
		this.tecnico = tecnico;
	}

	public TecnicoHSToPrint getTecnicoSuperior() {
		return tecnicoSuperior;
	}

	public void setTecnicoSuperior(TecnicoHSToPrint tecnicoSuperior) {
		this.tecnicoSuperior = tecnicoSuperior;
	}

}
