Collection listaTipoAcionadorOrgao = orgao.getListaTipoAcionadorOrgao();
Collection removeTipoAcionadorOrgao = new ArrayList();
for (Iterator iter = listaTipoAcionadorOrgao.iterator(); iter.hasNext();) {
TipoAcionadorOrgao tipoAcionadorOrgao = (TipoAcionadorOrgao) iter
.next();
if (tipoAcionadorOrgao.getDataVigencia() != null
&& tipoAcionadorOrgao.getDataVigencia().before(dataAtual)) {
continue;
}
TipoAcionador tipoAcionador = tipoAcionadorOrgao.getTipoAcionador();
if (!listaTipoAcionador.contains(tipoAcionador)) {
tipoAcionadorOrgao.setDataVigencia(dataAtual);
tipoAcionadorOrgaoDao.save(tipoAcionadorOrgao);
removeTipoAcionadorOrgao.add(tipoAcionadorOrgao);
}
listaTipoAcionador.remove(tipoAcionador);
}
listaTipoAcionadorOrgao.removeAll(removeTipoAcionadorOrgao);
removeTipoAcionadorOrgao = null;
for (Iterator iter = listaTipoAcionador.iterator(); iter.hasNext();) {
TipoAcionador tipoAcionador = (TipoAcionador) iter.next();
TipoAcionadorOrgao tipoAcionadorOrgao = this.getTipoAcionadorOrgao(
orgao, tipoAcionador);
if (tipoAcionadorOrgao == null) {
tipoAcionadorOrgao = new TipoAcionadorOrgao();
tipoAcionadorOrgao.setOrgao(orgao);
tipoAcionadorOrgao.setTipoAcionador(tipoAcionador);
}
tipoAcionadorOrgao.setDataVigencia(null);
tipoAcionadorOrgaoDao.save(tipoAcionadorOrgao);
listaTipoAcionadorOrgao.add(tipoAcionadorOrgao);
}
}