/*
* Sistema de Ouvidoria: um canal através do qual os usuários
* podem encaminhar suas reclamações, elogios e sugestões.
*
* Copyright (C) 2011 SERPRO
*
* Este programa é software livre; você pode redistribuí-lo e/ou
* modificá-lo sob os termos da Licença Pública Geral GNU, conforme
* publicada pela Free Software Foundation; tanto a versão 2 da
* Licença como (a seu critério) qualquer versão mais nova.
*
* Este programa é distribuído na expectativa de ser útil, mas SEM
* QUALQUER GARANTIA; sem mesmo a garantia implícita de
* COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM
* PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais
* detalhes.
*
* Você deve ter recebido uma cópia da Licença Pública Geral GNU,
* sob o título "LICENCA.txt", junto com esse programa. Se não,
* acesse o Portal do Software Público Brasileiro no endereço
* http://www.softwarepublico.gov.br/ ou escreva para a Fundação do
* Software Livre (FSF) Inc., 51 Franklin St, Fifth Floor, Boston,
* MA 02111-1301, USA.
*
* Contatos através do seguinte endereço internet:
* http://www.serpro.gov.br/sistemaouvidoria/
*/
package br.gov.serpro.ouvidoria.model;
import br.gov.serpro.ouvidoria.util.Constants;
import br.gov.serpro.ouvidoria.util.Utilitario;
/**
* Esta classe representa os acionadores do sistema.
*
* @author SERPRO
* @version $Revision: 1.1.2.3 $, $Date: 2011/10/19 20:36:55 $
* @version 0.1, Date: 2004/11/24
*/
public class Acionador extends PersistentObject {
private static final long serialVersionUID = 1L;
/* Requerido */
private Long id;
private String sexo;
/* Requerido se meio de resposta é email */
private String email;
/* Requerido se meio de resposta é telefone */
private String codigoPaisTelefone;
/* Requerido se meio de resposta é telefone */
private String codigoCidadeTelefone;
/* Requerido se meio de resposta é telefone */
private String telefone;
/* Requerido se meio de resposta é fax */
private String codigoPaisFax;
/* Requerido se meio de resposta é fax */
private String codigoCidadeFax;
/* Requerido se meio de resposta é fax */
private String fax;
private Escolaridade escolaridade;
private FaixaEtaria faixaEtaria;
/* Requerido */
private MeioEnvioRespostaOrgao meioEnvioRespostaOrgao;
/* Requerido */
private TipoAcionador tipoAcionador;
private UF uf;
private Pais pais;
private InformacoesRecebimentoRespostaCarta informacoesRecebimentoRespostaCarta;
/* Requerido se aplicação configurada para usar código de acesso */
private InformacoesConsultaAcionamento informacoesConsultaAcionamento;
/*
* (non-Javadoc)
*
* @see br.gov.serpro.ouvidoria.model.Identifiable#getId()
*/
public Long getId() {
return id;
}
/**
* @param id
* O id a ser atribuído.
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return Retorna o sexo.
*/
public String getSexo() {
return sexo;
}
/**
* @param sexo
* O sexo a ser atribuído.
*/
public void setSexo(String sexo) {
if ((sexo != null) && (sexo.length() > 0) && (sexo.compareTo("M") != 0)
&& (sexo.compareTo("F") != 0)) {
throw new IllegalArgumentException();
}
this.sexo = sexo;
}
/**
* @return Retorna o email.
*/
public String getEmail() {
String dec = null;
if (this.email != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.email));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.email;
}
return dec;
}
/**
* @param email
* O email a ser atribuído.
*/
public void setEmail(final String email) {
String enc = null;
if (email != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, email);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = email;
}
this.email = enc;
}
/**
* @return Retorna codigoCidadeTelefone.
*/
public String getCodigoCidadeTelefone() {
String dec = null;
if (this.codigoCidadeTelefone != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.codigoCidadeTelefone));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.codigoCidadeTelefone;
}
return dec;
}
/**
* @param codigoCidadeTelefone
* codigoCidadeTelefone a ser atribuido.
*/
public void setCodigoCidadeTelefone(final String codigoCidadeTelefone) {
String enc = null;
if (codigoCidadeTelefone != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY,
codigoCidadeTelefone);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = codigoCidadeTelefone;
}
this.codigoCidadeTelefone = enc;
}
/**
* @return Retorna codigoPaisTelefone.
*/
public String getCodigoPaisTelefone() {
String dec = null;
if (this.codigoPaisTelefone != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.codigoPaisTelefone));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.codigoPaisTelefone;
}
return dec;
}
/**
* @param codigoPaisTelefone
* codigoPaisTelefone a ser atribuido.
*/
public void setCodigoPaisTelefone(final String codigoPaisTelefone) {
String enc = null;
if (codigoPaisTelefone != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, codigoPaisTelefone);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = codigoPaisTelefone;
}
this.codigoPaisTelefone = enc;
}
/**
* @return Retorna o telefone.
*/
public String getTelefone() {
String dec = null;
if (this.telefone != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.telefone));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.telefone;
}
return dec;
}
/**
* @param telefone
* O telefone a ser atribuído.
*/
public void setTelefone(final String telefone) {
String enc = null;
if (telefone != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, telefone);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = telefone;
}
this.telefone = enc;
}
/**
* @return Retorna codigoCidadeFax.
*/
public String getCodigoCidadeFax() {
String dec = null;
if (this.codigoCidadeFax != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.codigoCidadeFax));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.codigoCidadeFax;
}
return dec;
}
/**
* @param codigoCidadeFax
* codigoCidadeFax a ser atribuido.
*/
public void setCodigoCidadeFax(final String codigoCidadeFax) {
String enc = null;
if (codigoCidadeFax != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, codigoCidadeFax);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = codigoCidadeFax;
}
this.codigoCidadeFax = enc;
}
/**
* @return Retorna codigoPaisFax.
*/
public String getCodigoPaisFax() {
String dec = null;
if (this.codigoPaisFax != null)
try {
dec = new String(Utilitario.decrypt(Constants.DES_KEY,
this.codigoPaisFax));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.codigoPaisFax;
}
return dec;
}
/**
* @param codigoPaisFax
* codigoPaisFax a ser atribuido.
*/
public void setCodigoPaisFax(final String codigoPaisFax) {
String enc = null;
if (codigoPaisFax != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, codigoPaisFax);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = codigoPaisFax;
}
this.codigoPaisFax = enc;
}
/**
* @return Retorna o fax.
*/
public String getFax() {
String dec = null;
if (this.fax != null)
try {
dec = new String(Utilitario
.decrypt(Constants.DES_KEY, this.fax));
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
dec = this.fax;
}
return dec;
}
/**
* @param fax
* O fax a ser atribuído.
*/
public void setFax(final String fax) {
String enc = null;
if (fax != null)
try {
enc = Utilitario.encrypt(Constants.DES_KEY, fax);
} catch (RuntimeException e) {
if (Constants.DEBUG) {
System.out.println(e);
}
enc = fax;
}
this.fax = enc;
}
/**
* @return Retorna a escolaridade.
*/
public Escolaridade getEscolaridade() {
return escolaridade;
}
/**
* @param escolaridade
* A escolaridade a ser atribuída.
*/
public void setEscolaridade(Escolaridade escolaridade) {
this.escolaridade = escolaridade;
}
/**
* @return Retorna a faixa etária.
*/
public FaixaEtaria getFaixaEtaria() {
return faixaEtaria;
}
/**
* @param faixaEtaria
* A faixaEtaria a ser atribuída.
*/
public void setFaixaEtaria(FaixaEtaria faixaEtaria) {
this.faixaEtaria = faixaEtaria;
}
/**
* @return Retorna o meio de envio da resposta do acionamento.
*/
public MeioEnvioRespostaOrgao getMeioEnvioRespostaOrgao() {
return meioEnvioRespostaOrgao;
}
/**
* @param meioEnvioResposta
* O meioEnvioResposta a ser atribuído.
*/
public void setMeioEnvioRespostaOrgao(
MeioEnvioRespostaOrgao meioEnvioRespostaOrgao) {
if (meioEnvioRespostaOrgao == null) {
throw new NullPointerException();
}
this.meioEnvioRespostaOrgao = meioEnvioRespostaOrgao;
}
/**
* @return Retorna o tipo do acionador.
*/
public TipoAcionador getTipoAcionador() {
return tipoAcionador;
}
/**
* @param tipoAcionador
* O tipoAcionador a ser atribuído.
*/
public void setTipoAcionador(TipoAcionador tipoAcionador) {
if (tipoAcionador == null) {
throw new NullPointerException();
}
this.tipoAcionador = tipoAcionador;
}
/**
* @return Retorna a UF do acionador.
*/
public UF getUf() {
return uf;
}
/**
* @param uf
* A UF a ser atribuída.
*/
public void setUf(UF uf) {
this.uf = uf;
}
/**
* @return Retorna o país.
*/
public Pais getPais() {
return pais;
}
/**
* @param pais
* O país a ser atribuído.
*/
public void setPais(Pais pais) {
this.pais = pais;
}
/**
* @return Retorna o objeto InformacoesRecebimentoRespostaCarta do
* acionador.
*/
public InformacoesRecebimentoRespostaCarta getInformacoesRecebimentoRespostaCarta() {
return informacoesRecebimentoRespostaCarta;
}
/**
* @param informacoesRecebimentoRespostaCarta
* O objeto InformacoesRecebimentoRespostaCarta a ser atribuído.
*/
public void setInformacoesRecebimentoRespostaCarta(
InformacoesRecebimentoRespostaCarta informacoesRecebimentoRespostaCarta) {
this.informacoesRecebimentoRespostaCarta = informacoesRecebimentoRespostaCarta;
}
/**
* @return Retorna o objeto InformacoesConsultaAcionamento do acionador.
*/
public InformacoesConsultaAcionamento getInformacoesConsultaAcionamento() {
return informacoesConsultaAcionamento;
}
/**
* @param informacoesConsultaAcionamento
* O objeto InformacoesConsultaAcionamento a ser atribuído.
*/
public void setInformacoesConsultaAcionamento(
InformacoesConsultaAcionamento informacoesConsultaAcionamento) {
this.informacoesConsultaAcionamento = informacoesConsultaAcionamento;
}
/**
* Este método é responsável por criar um objeto com as informações de
* consulta do acionamento.
*
* @param pergunta
* A pergunta que deve ser respondida para recuperação do código
* de acesso.
* @param resposta
* A resposta à pergunta cadastrada.
* @param numeroTentativas
* Número de vezes em que o usuário errou ou o código de acesso
* ou a resposta à pergunta.
*/
public void criarInformacoesConsultaAcionamento(String pergunta,
String resposta, Integer numeroTentativas) {
if (this.informacoesConsultaAcionamento == null) {
this.informacoesConsultaAcionamento = new InformacoesConsultaAcionamento();
}
this.informacoesConsultaAcionamento.gerarCodigoAcesso();
this.informacoesConsultaAcionamento.setPergunta(pergunta);
this.informacoesConsultaAcionamento.setResposta(resposta);
this.informacoesConsultaAcionamento
.setNumeroTentativasCodigo(numeroTentativas);
this.informacoesConsultaAcionamento
.setNumeroTentativasPergunta(numeroTentativas);
}
/**
* Este método é responsável por criar um objeto com as informações de
* recebimento de resposta via carta.
*
* @param logradouro
* Logradouro do endereço para onde a carta será enviada.
* @param numero
* Número do endereço para onde a carta será enviada.
* @param complemento
* Complemento do endereço para onde a carta será enviada.
* @param cep
* CEP do endereço para onde a carta será enviada.
* @param bairro
* Bairro do endereço para onde a carta será enviada.
* @param cidade
* Cidade do endereço para onde a carta será enviada. ou a
* resposta à pergunta.
*/
public void criarInformacoesRecebimentoRespostaCarta(
String logradouro, String numero, String complemento, String cep,
String bairro, String cidade, Pais pPais, UF pUf) {
if (this.informacoesRecebimentoRespostaCarta == null) {
this.informacoesRecebimentoRespostaCarta = new InformacoesRecebimentoRespostaCarta();
}
this.informacoesRecebimentoRespostaCarta.setLogradouro(logradouro);
this.informacoesRecebimentoRespostaCarta.setNumero(numero);
this.informacoesRecebimentoRespostaCarta.setComplemento(complemento);
this.informacoesRecebimentoRespostaCarta.setCep(cep);
this.informacoesRecebimentoRespostaCarta.setBairro(bairro);
this.informacoesRecebimentoRespostaCarta.setCidade(cidade);
this.informacoesRecebimentoRespostaCarta.setPais(pPais);
this.informacoesRecebimentoRespostaCarta.setUf(pUf);
}
/**
* Este método retorna se um acionador é anônimo.
*
* @return True se o acionador é anônimo e False caso contrário
*/
public boolean checarAcionadorAnonimo() {
if (this.tipoAcionador.equals(TipoAcionador.ANONIMO)) {
return true;
}
return false;
}
}