* @throws SintaticValidationException
*/
public ResultadoValidacaoBean validarRegistros (UsuarioUsu usuarioLogado, PerfilIntercambioDadosPflid perfil) throws ECARException, SintaticValidationException{
ResultadoValidacaoBean resultadoValidacaoBean = null;
ImportacaoDadosGeraisImportacaoPacInter importacao = ImportacaoDadosGeraisImportacaoPacInter.getInstancia();
Transaction tx = null;
IBusinessObject objetoNegocio = null;
int numeroLinha = 1;
if (perfil instanceof PerfilIntercambioDadosCadastroPidc) {
this.log = new LogIntercambioDadosTXT(this.configuracao);
}
// comunica��o
List<IRegistro> registros = importacao.comunicar(perfil, this.configuracao);
// analise sintatica
try {
importacao.analisarSintaxe(TipoDadosImportacao.ITEM, registros, perfil, configuracao, logger);
} catch (SintaticValidationException sintex) {
try {
LogIntercambioDadosLid logSintatico = log.montaLogSintatico(sintex,usuarioLogado);
LogIntercambioDadosDao logDao = new LogIntercambioDadosDao();
tx = logDao.getSession().beginTransaction();
logDao.salvar(logSintatico);
tx.commit();
} catch (HibernateException hbmex){
if (tx != null) {
try {
tx.rollback();
} catch (HibernateException r) {
this.logger.error(r);
throw new ECARException("erro.hibernateException");
}
}
this.logger.error(hbmex);
throw new ECARException("erro.hibernateException");
}
throw sintex;
}
resultadoValidacaoBean = new ResultadoValidacaoBean();
MontadorLinhaResultadoValidacaoTXTFactory montaFact = new MontadorLinhaResultadoValidacaoTXTFactory();
IMontadorLinhaResultadoValidacaoTXT montadorResulVal = null;
// IMontadorLinhaResultadoValidacaoTXT montadorResulInval = null;
LinhaResultadoValidacao linha = null;
// analise semantica
for (Iterator iterator = registros.iterator(); iterator.hasNext();) {
IRegistro iRegistro = (IRegistro) iterator.next();
montadorResulVal = (MontadorLinhaResultadoValidacaoItemEstruturaTXT)montaFact.criar(iRegistro, perfil);
if (montadorResulVal != null) {
objetoNegocio = importacao.montar(iRegistro, perfil, usuarioLogado);
try {
if (importacao.analisarSemantica(objetoNegocio, perfil)){
linha = montadorResulVal.montarValida(objetoNegocio, ((RegistroTXT)iRegistro).getOperacao(perfil), ((RegistroTXT)iRegistro).getLinha(), numeroLinha);
resultadoValidacaoBean.getLinhasRegistrosValidos().add(linha);
resultadoValidacaoBean.getLinhasRegistrosOriginais().add(linha);
resultadoValidacaoBean.getRegistrosValidos().add(objetoNegocio);
resultadoValidacaoBean.getRegistrosOriginais().add(objetoNegocio);
}
} catch (SemanticValidationException e) {
linha = montadorResulVal.montarInvalida(e, ((RegistroTXT)iRegistro).getOperacao(perfil), ((RegistroTXT)iRegistro).getLinha(), numeroLinha);
resultadoValidacaoBean.getLinhasRegistrosInvalidos().add(linha);
resultadoValidacaoBean.getLinhasRegistrosOriginais().add(linha);
resultadoValidacaoBean.getRegistrosInvalidos().add(objetoNegocio);
resultadoValidacaoBean.getRegistrosOriginais().add(objetoNegocio);
}
}
numeroLinha++;
}