/* Alimentando - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package serpro.ppgd.irpf.alimentandos;
import java.util.List;

import serpro.ppgd.gui.xbeans.JEditObjetoNegocioItemIf;
import serpro.ppgd.negocio.Alfa;
import serpro.ppgd.negocio.CPF;
import serpro.ppgd.negocio.Data;
import serpro.ppgd.negocio.ObjetoNegocio;
import serpro.ppgd.negocio.RetornoValidacao;
import serpro.ppgd.negocio.validadoresBasicos.ValidadorCPF;
import serpro.ppgd.negocio.validadoresBasicos.ValidadorData;
import serpro.ppgd.negocio.validadoresBasicos.ValidadorNaoNulo;
import serpro.ppgd.negocio.validadoresBasicos.ValidadorNome;

public class Alimentando extends ObjetoNegocio implements JEditObjetoNegocioItemIf
{
  public static final String PROP_CAMPO_NOME = "Nome";
  private String chave = "";
  private Alfa exterior = new Alfa (this, "Residente no Exterior?", 1);
  private Alfa nome = new Alfa (this, "Nome", 60);
  private CPF cpfAlimentando = new CPF (this, "CPF");
  private Data dataNascimento = new Data (this, "Data de Nascimento");
  
  public Alimentando ()
  {
    getNome ().addValidador (new ValidadorNome ((byte) 3));
    getNome ().addValidador (new ValidadorNaoNulo ((byte) 3, tab.msg ("dependente_nome"))
    {
      public RetornoValidacao validarImplementado ()
      {
	if (! getDataNascimento ().isVazio () && getNome ().isVazio ())
	  return super.validarImplementado ();
	return null;
      }
    });
    getCpf ().addValidador (new ValidadorCPF ((byte) 3));
    getCpf ().addValidador (new ValidadorNaoNulo ((byte) 3, tab.msg ("dependente_cpf_brancoinvalido")));
    getDataNascimento ().addValidador (new ValidadorData ((byte) 3));
    getExterior ().addValidador (new ValidadorNaoNulo ((byte) 3)
    {
      public RetornoValidacao validarImplementado ()
      {
	if (getExterior ().asString ().equals ("0") ||
	    getExterior ().asString ().equals ("1"))
	  return new RetornoValidacao (tab.msg ("alimentando_residente_exterior"), (byte) 3);
	return null;
      }
      });
  }
  
  public Alfa getNome ()
  {
    return nome;
  }
  
  public CPF getCpf ()
  {
    return cpfAlimentando;
  }
  
  public Data getDataNascimento ()
  {
    return dataNascimento;
  }
  
  public Alfa getExterior ()
  {
    return exterior;
  }

  public String toString ()
  {
    return nome.asString ();
  }
  
  protected List recuperarListaCamposPendencia ()
  {
    List lista = super.recuperarListaCamposPendencia ();
    lista.add (getExterior ());
    lista.add (getCpf ());
    lista.add (getDataNascimento ());
    lista.add (getNome ());
    return lista;
  }
  
  public String getConteudo (int i)
  {
    return getNome ().getConteudoFormatado ();
  }
  
  public int getTotalAtributos ()
  {
    return 1;
  }
  
  public int getColunaFiltro ()
  {
    return 0;
  }
  
  public String getChave ()
  {
    return chave;
  }
  
  public void setChave (String chave)
  {
    this.chave = chave;
  }
}
