StringBuffer args = null;
//monta a lista de atributos novos
if(atributos != null && atributos.length > 0) {
for (int i = 0; i < atributos.length; i++) {
AtributosAtb atributo = (AtributosAtb)atributoDao.buscar(AtributosAtb.class, Long.valueOf(atributos[i]));
atributoNovos.add(atributo);
}
}
//monta a lista de atributos anteriores
if(estrutura.getEstruturaAtributoEttats() != null) {
atributosAnteriores = estrutura.getEstruturaAtributoEttats();
}
while(estruturasFilhasIt.hasNext() && atributosAnteriores != null) {
EstruturaEtt estruturaFilha = (EstruturaEtt) estruturasFilhasIt.next();
if(estruturaFilha.getIndExibirEstruturaEtt().equals(Dominios.SIM)) {
//percorre a lista de atributos para verificar se estao sendo utilizados pela estrutura filha
Iterator itAtributoAnteriores = atributosAnteriores.iterator();
while(itAtributoAnteriores.hasNext()) {
EstruturaAtributoEttat estruturaAtributo = (EstruturaAtributoEttat) itAtributoAnteriores.next();
AtributosAtb atributoAnterior = estruturaAtributo.getAtributosAtb();
//se o atributo foi desmarcado e ele n�o � obrigat�rio e est� sendo usado por alguma estrutura filha
//e se o atributo j� nao est� na lista (pesquisa todos os atributos que est�o sendo utilizados)
if(!atributoNovos.contains(atributoAnterior) && atributoAnterior.getIndOpcionalAtb().equals(Pagina.SIM) &&
!atributosRestritivos.contains(atributoAnterior) &&
estruturaFilha.getAtributoAtbExibirEstruturaEtt() != null &&
estruturaFilha.getAtributoAtbExibirEstruturaEtt().getCodAtb().equals(atributoAnterior.getCodAtb())) {
if (args == null){
args = new StringBuffer();
args.append(this.getLabelAtributoEstrutra(estrutura,atributoAnterior.getSisGrupoAtributoSga()));
} else {
args.append(", ").append(this.getLabelAtributoEstrutra(estrutura,atributoAnterior.getSisGrupoAtributoSga()));
}
atributosRestritivos.add(atributoAnterior);
}
}