Oi gente, sou desenvolvedor Java, tenho pouco mais de 1 ano de experiência, mas ainda sou muito ruim para fazer reaproveitamento de codigo, gostaria de uma ajuda do pessoal para ver se consigo reaproveitar melhor meu codigo.
Abaixo tem dois exemplos de código, os dois são grandes, mas porém são muito parecidos e não sei como reaproveita-lo(reescreve-lo para que não tenha que ficar repetindo código)
ps: uso JSF e Hibernate
Caso alguém possa analisar e me dar uma ajuda a refatorar ou reescrever o codigo(não sei qual se aplica a este caso) eu ficaria imensamente agradecido
ManagedBean GravaParentescoComum
@ManagedBean
@ViewScoped
public class GravaParentescoComum implements Serializable {
private Integer par_id;
private Integer sal_id;
private Integer cid_id;
private String par_tipo;
private String par_nome;
private Long par_telefone1;
private Long par_telefone2;
private String par_email;
private Long par_cep;
private String par_logradouro;
private Long par_numero;
private String par_complemento;
private String par_bairro;
private Integer par_pai_id;
private Integer par_est_id;
private List l;
public GravaParentescoComum() {
listaFechada();
}
public void listaFechada() {
//Pega id e tipo do usuario da sessão
Object tip = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("tipoUsuario");
Object id = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("idUsuario");
//Serve para setar valor na lista de cidade/estado/pais
Integer numeroEstado = null;
Integer numeroPais = null;
//inicia sessão
Session sessao = HibernateUtil.getSession();
//baseado no usuario, captura id da pessoa
Usuario usuario = (Usuario) sessao.get(Usuario.class, new Integer(id.toString()));
Integer pe_id = usuario.getPessoas().getPes_id();
//usando o id da pessoa, carrega os dados do salesiano
Criteria criteria = (Criteria) sessao.createCriteria(Salesianos.class).
add(Restrictions.eq("pessoas.pes_id", new Integer(pe_id)));
Salesianos salesiano = (Salesianos) criteria.uniqueResult();
Integer sa_id = salesiano.getSal_id();
setSal_id(sa_id);
Criteria criteria2 = (Criteria) sessao.createCriteria(Parentesco.class).
add(Restrictions.eq("salesianos.sal_id", new Integer(sa_id)));
setL(criteria2.list());
sessao.close();
}
public void editar() throws Exception {
String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
Integer numeroEstado = null;
Integer numeroPais = null;
Session sessao = HibernateUtil.getSession();
//seleciona cidade baseada no id
Parentesco listagem_query = (Parentesco) sessao.get(Parentesco.class, new Integer(id.toString()));
System.out.println("consegui aparecer: " + id + " - "+listagem_query.getPar_nome());
setPar_bairro(listagem_query.getPar_bairro());
setPar_cep(listagem_query.getPar_cep());
setPar_complemento(listagem_query.getPar_complemento());
setPar_email(listagem_query.getPar_email());
setPar_id(listagem_query.getPar_id());
setPar_logradouro(listagem_query.getPar_logradouro());
setPar_nome(listagem_query.getPar_nome());
setPar_numero(listagem_query.getPar_numero());
setPar_telefone1(listagem_query.getPar_telefone1());
setPar_telefone2(listagem_query.getPar_telefone2());
setPar_tipo(listagem_query.getPar_tipo());
setSal_id(listagem_query.getSalesianos().getSal_id());
if (listagem_query.getCidade() != null) {
//calcula lista e atributos para cidade
numeroPais = listagem_query.getCidade().getEstado().getPais().getPai_id();
numeroEstado = listagem_query.getCidade().getEstado().getEst_id();
Criteria listasEst = sessao.createCriteria(Estado.class).
add(Restrictions.eq("pais.pai_id", new Integer(numeroPais))).
addOrder(Order.asc("est_nom"));
Criteria listasCid = sessao.createCriteria(Cidade.class).
add(Restrictions.eq("estado.est_id", new Integer(numeroEstado))).
addOrder(Order.asc("cid_nom"));
List<Estado> listaEstado = listasEst.list();
List<Cidade> listaCidade = listasCid.list();
GravaCidade.setEstadosMany(listaEstado);
GravaCidade.setCidadesMany(listaCidade);
setPar_est_id(listagem_query.getCidade().getEstado().getEst_id());
setPar_pai_id(listagem_query.getCidade().getEstado().getPais().getPai_id());
setCid_id(listagem_query.getCidade().getCid_id());
}else{
GravaCidade.setEstadosMany(null);
GravaCidade.setCidadesMany(null);
setPar_est_id(null);
setPar_pai_id(null);
setCid_id(null);
}
sessao.close();
}
public void gravar() {
Session sessao = HibernateUtil.getSession();
Transaction tx_pessoa = sessao.beginTransaction();
try {
Cidade obj_cid = new Cidade();
obj_cid.setCid_id(cid_id);
Salesianos obj_sal = new Salesianos();
obj_sal.setSal_id(getSal_id());
Parentesco obj_par = new Parentesco();
if (getPar_id() != 0) {
obj_par.setPar_id(getPar_id());
}
if (getPar_telefone1() != 0) {
obj_par.setPar_telefone1(getPar_telefone1());
}
if (getPar_telefone2() != 0) {
obj_par.setPar_telefone2(getPar_telefone2());
}
if (getPar_cep() != 0) {
obj_par.setPar_cep(getPar_cep());
}
if (getPar_numero() != 0) {
obj_par.setPar_numero(getPar_numero());
}
obj_par.setPar_tipo(getPar_tipo());
obj_par.setPar_nome(getPar_nome());
obj_par.setPar_email(getPar_email());
obj_par.setPar_logradouro(getPar_logradouro());
obj_par.setPar_complemento(getPar_complemento());
obj_par.setPar_bairro(getPar_bairro());
obj_par.setSalesianos(obj_sal);
if(getCid_id()!=0){
obj_par.setCidade(obj_cid);
}
sessao.saveOrUpdate(obj_par);
tx_pessoa.commit();
sessao.close();
Limpar.refresh();
FacesContext.getCurrentInstance().addMessage("FormParentesco:gravar", new FacesMessage("Informações gravadas com sucesso!"));
} catch (Exception erro) {
System.out.println("Erro na insersão : " + erro);
tx_pessoa.rollback();
sessao.close();
FacesContext.getCurrentInstance().addMessage("FormParentesco:gravar", new FacesMessage("Falha ao gravar informações!"));
}
}
public void excluir() {
Session sessao = HibernateUtil.getSession();
Transaction tx_pessoa = sessao.beginTransaction();
try {
Parentesco obj_par = new Parentesco();
obj_par.setPar_id(getPar_id());
sessao.delete(obj_par);
tx_pessoa.commit();
sessao.close();
Limpar.refresh();
FacesContext.getCurrentInstance().addMessage("FormParentesco:excluir", new FacesMessage("Informações excluídas com sucesso!"));
} catch (Exception erro) {
System.out.println("Erro na insersão : " + erro);
tx_pessoa.rollback();
sessao.close();
FacesContext.getCurrentInstance().addMessage("FormParentesco:excluir", new FacesMessage("Falha ao excluir informações!"));
}
}
}
getters e setters
ManagedBean GravaHistGraduacaoComum
@ManagedBean
@ViewScoped
public class GravaHistGraduacaoComum implements Serializable {
private Integer hgr_id;
private Integer sal_id;
private Integer cid_id;
private String hgr_tipo_graduacao;
private String hgr_titulo;
private Date hgr_data_inicial;
private Date hgr_data_final;
private String hgr_instituicao;
private Integer hgr_carga_horaria;
private Integer hgr_pai_id;
private Integer hgr_est_id;
private List l;
public GravaHistGraduacaoComum() {
listaFechada();
}
public void listaFechada() {
//Pega id e tipo do usuario da sessão
Object tip = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("tipoUsuario");
Object id = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("idUsuario");
//Serve para setar valor na lista de cidade/estado/pais
Integer numeroEstado = null;
Integer numeroPais = null;
//inicia sessão
Session sessao = HibernateUtil.getSession();
//baseado no usuario, captura id da pessoa
Usuario usuario = (Usuario) sessao.get(Usuario.class, new Integer(id.toString()));
Integer pe_id = usuario.getPessoas().getPes_id();
//usando o id da pessoa, carrega os dados do salesiano
Criteria criteria = (Criteria) sessao.createCriteria(Salesianos.class).
add(Restrictions.eq("pessoas.pes_id", new Integer(pe_id)));
Salesianos salesiano = (Salesianos) criteria.uniqueResult();
Integer sa_id = salesiano.getSal_id();
setSal_id(sa_id);
Criteria criteria2 = (Criteria) sessao.createCriteria(Hist_Graduacao.class).
add(Restrictions.eq("salesianos.sal_id", new Integer(sa_id)));
setL(criteria2.list());
sessao.close();
}
public void editar() {
String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
//System.out.println("consegui aparecer: " + id);
Integer numeroEstado = null;
Integer numeroPais = null;
Session sessao = HibernateUtil.getSession();
//seleciona cidade baseada no id
Hist_Graduacao listagem_query = (Hist_Graduacao) sessao.get(Hist_Graduacao.class, Integer.valueOf(id));
setHgr_carga_horaria(listagem_query.getHgr_carga_horaria());
setHgr_data_final(listagem_query.getHgr_data_final());
setHgr_data_inicial(listagem_query.getHgr_data_inicial());
setHgr_id(listagem_query.getHgr_id());
setHgr_instituicao(listagem_query.getHgr_instituicao());
setHgr_tipo_graduacao(listagem_query.getHgr_tipo_graduacao());
setHgr_titulo(listagem_query.getHgr_titulo());
setSal_id(listagem_query.getSalesianos().getSal_id());
if (listagem_query.getCidade() != null) {
//calcula lista e atributos para cidade
numeroPais = listagem_query.getCidade().getEstado().getPais().getPai_id();
numeroEstado = listagem_query.getCidade().getEstado().getEst_id();
Criteria listasEst = sessao.createCriteria(Estado.class).
add(Restrictions.eq("pais.pai_id", new Integer(numeroPais))).
addOrder(Order.asc("est_nom"));
Criteria listasCid = sessao.createCriteria(Cidade.class).
add(Restrictions.eq("estado.est_id", new Integer(numeroEstado))).
addOrder(Order.asc("cid_nom"));
List<Estado> listaEstado = listasEst.list();
List<Cidade> listaCidade = listasCid.list();
GravaCidade.setEstadosMany(listaEstado);
GravaCidade.setCidadesMany(listaCidade);
setHgr_est_id(listagem_query.getCidade().getEstado().getEst_id());
setHgr_pai_id(listagem_query.getCidade().getEstado().getPais().getPai_id());
setCid_id(listagem_query.getCidade().getCid_id());
} else {
GravaCidade.setEstadosMany(null);
GravaCidade.setCidadesMany(null);
setHgr_est_id(null);
setHgr_pai_id(null);
setCid_id(null);
}
sessao.close();
}
public void gravar() {
Session sessao = HibernateUtil.getSession();
Transaction tx = sessao.beginTransaction();
try {
Cidade obj_cid = new Cidade();
obj_cid.setCid_id(getCid_id());
Salesianos obj_sal = new Salesianos();
obj_sal.setSal_id(getSal_id());
Hist_Graduacao obj_hgr = new Hist_Graduacao();
if (getHgr_id() != 0) {
obj_hgr.setHgr_id(hgr_id);
}
if (getHgr_carga_horaria() != 0) {
obj_hgr.setHgr_carga_horaria(getHgr_carga_horaria());
}
if (!getHgr_instituicao().equals("")) {
obj_hgr.setHgr_instituicao(AlteraLetras.retornaFrase(getHgr_instituicao()));
}
obj_hgr.setHgr_data_final(getHgr_data_final());
obj_hgr.setHgr_data_inicial(getHgr_data_inicial());
obj_hgr.setHgr_tipo_graduacao(getHgr_tipo_graduacao());
obj_hgr.setHgr_titulo(getHgr_titulo());
obj_hgr.setSalesianos(obj_sal);
if (getCid_id() != 0) {
obj_hgr.setCidade(obj_cid);
}
sessao.saveOrUpdate(obj_hgr);
tx.commit();
sessao.close();
Limpar.refresh();
FacesContext.getCurrentInstance().addMessage("FormHistGraduacao:gravar", new FacesMessage("Informações gravadas com sucesso!"));
} catch (Exception erro) {
System.out.println("Erro na insersão : " + erro);
tx.rollback();
sessao.close();
FacesContext.getCurrentInstance().addMessage("FormHistGraduacao:gravar", new FacesMessage("Falha ao gravar informações!"));
}
}
public void excluir() {
Session sessao = HibernateUtil.getSession();
Transaction tx = sessao.beginTransaction();
try {
Hist_Graduacao obj_hgr = new Hist_Graduacao();
obj_hgr.setHgr_id(hgr_id);
sessao.delete(obj_hgr);
tx.commit();
sessao.close();
Limpar.refresh();
FacesContext.getCurrentInstance().addMessage("FormHistGraduacao:excluir", new FacesMessage("Informações excluídas com sucesso!"));
} catch (Exception erro) {
System.out.println("Erro na insersão : " + erro);
tx.rollback();
sessao.close();
FacesContext.getCurrentInstance().addMessage("FormHistGraduacao:excluir", new FacesMessage("Falha ao excluir informações!"));
}
}
}