package siprp.higiene.relatorio.print;

import java.util.Vector;

import org.jdom.Element;

public class RelatorioToPrint
	implements PrintableInterface
{
	protected EmpresaToPrint empresa;
	protected DataToPrint dataRelatorio;
	protected DataToPrint dataHs;
	protected String tipoAvaliacao;
	protected DataToPrint dataProximaHs;
	protected String textoFuncionarios;
	protected TecnicoHSToPrint tecnicoHS;
	protected TecnicoHSToPrint tecnicoSuperiorHS;
	protected LegislacaoAplicavelToPrint legislacaoAplicavel;
	protected NormalizacaoToPrint normalizacaoAplicavel;
	protected EquipamentosToPrint equipamentos;
	protected Vector<AreaToPrint> areas;

	public RelatorioToPrint( EmpresaToPrint empresa,
			DataToPrint dataRelatorio,
			DataToPrint dataHs,
			String tipoAvaliacao,
			DataToPrint dataProximaHs, 
			String textoFuncionarios,
			TecnicoHSToPrint tecnicoHS,
			TecnicoHSToPrint tecnicoSuperiorHS,
			LegislacaoAplicavelToPrint legislacaoAplicavel,
			NormalizacaoToPrint normalizacaoAplicavel,
			EquipamentosToPrint equipamentos,
			Vector<AreaToPrint> areas )
	{
		super();
		this.empresa = empresa;
		this.dataRelatorio = dataRelatorio;
		this.dataHs = dataHs;
		this.tipoAvaliacao = tipoAvaliacao;
		this.dataProximaHs = dataProximaHs;
		this.textoFuncionarios = textoFuncionarios;
		this.tecnicoHS = tecnicoHS;
		this.tecnicoSuperiorHS = tecnicoSuperiorHS;
		this.legislacaoAplicavel = legislacaoAplicavel;
		this.normalizacaoAplicavel = normalizacaoAplicavel;
		this.equipamentos = equipamentos;
		this.areas = areas;
	}

	@Override
	public Element toJdomElement() throws Exception
	{
		Element relatorioElement = new Element( "relatorio" );
		relatorioElement.addContent( empresa.toJdomElement() );
		relatorioElement.addContent( dataRelatorio.toJdomElement() );
		relatorioElement.addContent( dataHs.toJdomElement() );
		Element tipoAvaliacaoElement = new Element( "tipo-avaliacao" );
		tipoAvaliacaoElement.setText( tipoAvaliacao );
		relatorioElement.addContent( tipoAvaliacaoElement );
		Element tipoAvaliacaoCamelElement = new Element( "tipo-avaliacao-camel" );
		tipoAvaliacaoCamelElement.setText( tipoAvaliacao.charAt(0) + tipoAvaliacao.toLowerCase().substring(1) );
		relatorioElement.addContent( tipoAvaliacaoCamelElement );
		if( dataProximaHs != null )
		{
			relatorioElement.addContent( dataProximaHs.toJdomElement() );
		}
		if( textoFuncionarios != null )
		{
			Element textoFuncionariosElement = new Element( "texto-funcionarios" );
			textoFuncionariosElement.setText( textoFuncionarios );
			relatorioElement.addContent( textoFuncionariosElement );
		}
		if( tecnicoHS != null )
		{
			relatorioElement.addContent( tecnicoHS.toJdomElement() );
		}
		if( tecnicoSuperiorHS != null )
		{
			relatorioElement.addContent( tecnicoSuperiorHS.toJdomElement() );
		}
		relatorioElement.addContent( legislacaoAplicavel.toJdomElement() );
		relatorioElement.addContent( normalizacaoAplicavel.toJdomElement() );
		relatorioElement.addContent( equipamentos.toJdomElement() );
		if( areas.size() > 0 )
		{
			Element conclusoesElement = new Element( "conclusoes" );
			for( AreaToPrint area : areas )
			{
				conclusoesElement.addContent( area.toJdomElement() );
			}
			relatorioElement.addContent( conclusoesElement );
		}
		return relatorioElement;
	}
}
