protected void geraValorIncremental(FuncaoSisAtributo atributoLivreBean, SisAtributoSatb sisAtributo, FuncaoFun funcao,EstruturaEtt estrutura,List objetos) throws IOException, ECARException {
SequenciadorDao seqDao = new SequenciadorDao(session);
seqDao.setHttpRequest(request);
SequenciadoraSeq sequenciador = seqDao.consultar(sisAtributo, funcao,estrutura);
ActionSisAtributo action = new ActionSisAtributo();
if (sequenciador == null){ //O sequenciador ser� nulo quando ainda n�o tiver sequenciador inserido no banco para o tipo de configura��o deste atributo.
sequenciador = new SequenciadoraSeq();
sequenciador.inicializar();
sequenciador.setAtributoLivreSistema(sisAtributo);
GregorianCalendar gc = new GregorianCalendar();
gc.setGregorianChange(atributoLivreBean.getDataUltManutencao());
sequenciador.setAno(gc.get(GregorianCalendar.YEAR));
sequenciador.setEstrutura(estrutura);
sequenciador.setFuncao(funcao);
seqDao.salvar(sequenciador);
if (objetos!= null){
objetos.add(sequenciador);
}
} else { //O sequenciador n�o ser� nulo quando j� houver um sequenciador inserido no banco para o tipo de configura��o deste atributo.
//incrementa o contador sequencial.
sequenciador.incrementar();
//Validar, com base na m�scara, o novo valor do sequenciador que foi gerado.
if (sisAtributo.isAtributoContemMascara()) {
action.validarValorIncrementalComBaseMascara (atributoLivreBean.getInformacao(),sequenciador.getSequenciaSeq());
} else {
action.validarValorIncrementalComBaseMascara (null,sequenciador.getSequenciaSeq());
}
if (objetos!=null){
objetos.add(sequenciador);
}
}
atributoLivreBean.atualizaListaTiposValores(sisAtributo, sequenciador, action, funcao);
String novoConteudo;
if (sisAtributo.isAtributoContemMascara()) {
novoConteudo = action.formatarConteudoParteIncremental(atributoLivreBean.getInformacao(),sequenciador.getSequenciaSeq());
} else {
novoConteudo = sequenciador.getSequenciaSeq().toString();
}
atributoLivreBean.setInformacao(novoConteudo);
}