package gcom.seguranca.acesso; import java.io.Serializable; import java.util.Date; import java.util.Iterator; import java.util.Set; /** * Representa uma categoria de funcionalidade que ser� utilizada no sistema e no * menu * * @author rodrigo */ public class FuncionalidadeCategoria implements Serializable { private static final long serialVersionUID = 1L; private boolean acessivel = false; private Integer id; private String nome; private Long numeroOrdemMenu; private Short indicadorUso; private Date ultimaAlteracao; private FuncionalidadeCategoria funcionalidadeCategoriaSuperior; private Modulo modulo; //Na cole��o de funcionalidades pode existir tamb�m FuncionalidadesCategoria private Set elementos; public final static Integer FUNCIONALIDADE_SUPERIOR_GSAN = new Integer(9); public FuncionalidadeCategoria() { } public Date getUltimaAlteracao() { return ultimaAlteracao; } public void setUltimaAlteracao(Date ultimaAlteracao) { this.ultimaAlteracao = ultimaAlteracao; } /** * Construtor da classe FuncionalidadeCategoria * * @param nome Descri��o do par�metro */ public FuncionalidadeCategoria(String nome) { this.nome = nome; } /** * Retorna o valor de elementos * * @return O valor de elementos */ public Set getElementos() { return elementos; } /** * Seta o valor de elementos * * @param elementos O novo valor de elementos */ public void setElementos(Set elementos) { this.elementos = elementos; } /** * Retorna o valor de nome * * @return O valor de nome */ public String getNome() { return nome; } /** * Seta o valor de nome * * @param nome O novo valor de nome */ public void setNome(String nome) { this.nome = nome; } //Retorna a inst�ncia da categoria //O caminho do menu deve ser separado por / /** * <<Descri��o do m�todo>> * * @param nomeCategoria Descri��o do par�metro * @return Descri��o do retorno */ public FuncionalidadeCategoria pesquisarCategoria(String nomeCategoria) { FuncionalidadeCategoria retorno = null; if (nomeCategoria.equals(this.getNome())) { retorno = this; } else { Iterator iterator = this.elementos.iterator(); while (iterator.hasNext()) { FuncionalidadeCategoria funcionalidadeCategoria = null; Object item = iterator.next(); if (item instanceof Funcionalidade) { continue; } else if (item instanceof FuncionalidadeCategoria) { funcionalidadeCategoria = (FuncionalidadeCategoria) item; } if (funcionalidadeCategoria.getNome().equals(nomeCategoria)) { retorno = funcionalidadeCategoria; break; } } } return retorno; } /** * <<Descri��o do m�todo>> * * @param funcionalidade Descri��o do par�metro */ public void adicionarFuncionalidadeCategoria(Object funcionalidade) { if (!elementos.contains(funcionalidade)) { this.elementos.add(funcionalidade); } } public boolean adicionarFuncionalidade(Funcionalidade funcionalidade) { boolean adicionou = false; FuncionalidadeCategoria categoria = funcionalidade.getFuncionalidadeCategoria(); int pasta = categoria.getId(); if (this.id == pasta) { this.elementos.add(funcionalidade); adicionou = true; } return adicionou; } /** * Retorna o valor de acessivel * * @return O valor de acessivel */ public boolean isAcessivel() { return acessivel; } /** * Seta o valor de acessivel * * @param acessivel O novo valor de acessivel */ public void setAcessivel(boolean acessivel) { this.acessivel = acessivel; } public Long getNumeroOrdemMenu() { return this.numeroOrdemMenu; } public void setNumeroOrdemMenu(Long numeroOrdemMenu) { this.numeroOrdemMenu = numeroOrdemMenu; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public FuncionalidadeCategoria getFuncionalidadeCategoriaSuperior() { return funcionalidadeCategoriaSuperior; } public void setFuncionalidadeCategoriaSuperior( FuncionalidadeCategoria funcionalidadeCategoriaSuperior) { this.funcionalidadeCategoriaSuperior = funcionalidadeCategoriaSuperior; } public Short getIndicadorUso() { return indicadorUso; } public void setIndicadorUso(Short indicadorUso) { this.indicadorUso = indicadorUso; } public Modulo getModulo() { return modulo; } public void setModulo(Modulo modulo) { this.modulo = modulo; } }