JDBCAllarmeServiceImpl.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.core.allarmi.dao.jdbc;

  21. import java.sql.Connection;

  22. import org.openspcoop2.core.allarmi.Allarme;
  23. import org.openspcoop2.core.allarmi.AllarmeFiltro;
  24. import org.openspcoop2.core.allarmi.AllarmeHistory;
  25. import org.openspcoop2.core.allarmi.AllarmeMail;
  26. import org.openspcoop2.core.allarmi.AllarmeNotifica;
  27. import org.openspcoop2.core.allarmi.AllarmeParametro;
  28. import org.openspcoop2.core.allarmi.AllarmeRaggruppamento;
  29. import org.openspcoop2.core.allarmi.AllarmeScript;
  30. import org.openspcoop2.core.allarmi.IdAllarme;
  31. import org.openspcoop2.generic_project.beans.NonNegativeNumber;
  32. import org.openspcoop2.generic_project.beans.UpdateField;
  33. import org.openspcoop2.generic_project.beans.UpdateModel;
  34. import org.openspcoop2.generic_project.dao.IDBServiceUtilities;
  35. import org.openspcoop2.generic_project.dao.jdbc.IJDBCServiceCRUDWithId;
  36. import org.openspcoop2.generic_project.dao.jdbc.JDBCExpression;
  37. import org.openspcoop2.generic_project.dao.jdbc.JDBCPaginatedExpression;
  38. import org.openspcoop2.generic_project.dao.jdbc.JDBCServiceManagerProperties;
  39. import org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject;
  40. import org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities;
  41. import org.openspcoop2.generic_project.exception.NotFoundException;
  42. import org.openspcoop2.generic_project.exception.NotImplementedException;
  43. import org.openspcoop2.generic_project.exception.ServiceException;
  44. import org.openspcoop2.generic_project.expression.IExpression;
  45. import org.openspcoop2.utils.sql.ISQLQueryObject;
  46. import org.slf4j.Logger;

  47. /**    
  48.  * JDBCAllarmeServiceImpl
  49.  *
  50.  * @author Poli Andrea (poli@link.it)
  51.  * @author $Author$
  52.  * @version $Rev$, $Date$
  53.  */
  54. public class JDBCAllarmeServiceImpl extends JDBCAllarmeServiceSearchImpl
  55.     implements IJDBCServiceCRUDWithId<Allarme, IdAllarme, JDBCServiceManager> {

  56.     @Override
  57.     public void create(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Allarme allarme, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {

  58.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  59.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  60.        
  61.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  62.                


  63.         // Object allarme
  64.         sqlQueryObjectInsert.addInsertTable(this.getAllarmeFieldConverter().toTable(Allarme.model()));
  65.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().NOME,false),"?");
  66.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALIAS,false),"?");
  67.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DESCRIZIONE,false),"?");
  68.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO,false),"?");
  69.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO_ALLARME,false),"?");
  70.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.INVIA,false),"?");
  71.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.INVIA_WARNING,false),"?");
  72.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.DESTINATARI,false),"?");
  73.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.SUBJECT,false),"?");
  74.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.BODY,false),"?");
  75.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.INVOCA,false),"?");
  76.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.INVOCA_WARNING,false),"?");
  77.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.COMMAND,false),"?");
  78.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.ARGS,false),"?");
  79.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().STATO_PRECEDENTE,false),"?");
  80.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().STATO,false),"?");
  81.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DETTAGLIO_STATO,false),"?");
  82.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().LASTTIMESTAMP_CREATE,false),"?");
  83.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().LASTTIMESTAMP_UPDATE,false),"?");
  84.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ENABLED,false),"?");
  85.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ACKNOWLEDGED,false),"?");
  86.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DETTAGLIO_ACKNOWLEDGED,false),"?");
  87.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO_PERIODO,false),"?");
  88.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().PERIODO,false),"?");
  89.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.ENABLED,false),"?");
  90.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.PROTOCOLLO,false),"?");
  91.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_PORTA,false),"?");
  92.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_PORTA,false),"?");
  93.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_FRUITORE,false),"?");
  94.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_FRUITORE,false),"?");
  95.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_FRUITORE,false),"?");
  96.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE,false),"?");
  97.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_EROGATORE,false),"?");
  98.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_EROGATORE,false),"?");
  99.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_EROGATORE,false),"?");
  100.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TAG,false),"?");
  101.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_SERVIZIO,false),"?");
  102.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_SERVIZIO,false),"?");
  103.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.VERSIONE_SERVIZIO,false),"?");
  104.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.AZIONE,false),"?");
  105.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.ENABLED,false),"?");
  106.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.RUOLO_PORTA,false),"?");
  107.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.PROTOCOLLO,false),"?");
  108.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.FRUITORE,false),"?");
  109.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE,false),"?");
  110.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO,false),"?");
  111.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.TOKEN,false),"?");
  112.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.EROGATORE,false),"?");
  113.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.SERVIZIO,false),"?");
  114.         sqlQueryObjectInsert.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.AZIONE,false),"?");

  115.         // Insert allarme
  116.         org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator = this.getAllarmeFetch().getKeyGeneratorObject(Allarme.model());
  117.         long id = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert, keyGenerator, jdbcProperties.isShowSql(),
  118.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getNome(),Allarme.model().NOME.getFieldType()),
  119.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getAlias(),Allarme.model().ALIAS.getFieldType()),
  120.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getDescrizione(),Allarme.model().DESCRIZIONE.getFieldType()),
  121.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getTipo(),Allarme.model().TIPO.getFieldType()),
  122.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getTipoAllarme(),Allarme.model().TIPO_ALLARME.getFieldType()),
  123.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getMail().getInvia(),Allarme.model().MAIL.INVIA.getFieldType()),
  124.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getMail().getInviaWarning(),Allarme.model().MAIL.INVIA_WARNING.getFieldType()),
  125.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getMail().getDestinatari(),Allarme.model().MAIL.DESTINATARI.getFieldType()),
  126.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getMail().getSubject(),Allarme.model().MAIL.SUBJECT.getFieldType()),
  127.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getMail().getBody(),Allarme.model().MAIL.BODY.getFieldType()),
  128.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getScript().getInvoca(),Allarme.model().SCRIPT.INVOCA.getFieldType()),
  129.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getScript().getInvocaWarning(),Allarme.model().SCRIPT.INVOCA_WARNING.getFieldType()),
  130.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getScript().getCommand(),Allarme.model().SCRIPT.COMMAND.getFieldType()),
  131.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getScript().getArgs(),Allarme.model().SCRIPT.ARGS.getFieldType()),
  132.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getStatoPrecedente(),Allarme.model().STATO_PRECEDENTE.getFieldType()),
  133.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getStato(),Allarme.model().STATO.getFieldType()),
  134.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getDettaglioStato(),Allarme.model().DETTAGLIO_STATO.getFieldType()),
  135.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getLasttimestampCreate(),Allarme.model().LASTTIMESTAMP_CREATE.getFieldType()),
  136.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getLasttimestampUpdate(),Allarme.model().LASTTIMESTAMP_UPDATE.getFieldType()),
  137.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getEnabled(),Allarme.model().ENABLED.getFieldType()),
  138.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getAcknowledged(),Allarme.model().ACKNOWLEDGED.getFieldType()),
  139.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getDettaglioAcknowledged(),Allarme.model().DETTAGLIO_ACKNOWLEDGED.getFieldType()),
  140.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getTipoPeriodo(),Allarme.model().TIPO_PERIODO.getFieldType()),
  141.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getPeriodo(),Allarme.model().PERIODO.getFieldType()),
  142.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getEnabled(),Allarme.model().FILTRO.ENABLED.getFieldType()),
  143.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getProtocollo(),Allarme.model().FILTRO.PROTOCOLLO.getFieldType()),
  144.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getRuoloPorta(),Allarme.model().FILTRO.RUOLO_PORTA.getFieldType()),
  145.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getNomePorta(),Allarme.model().FILTRO.NOME_PORTA.getFieldType()),
  146.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getTipoFruitore(),Allarme.model().FILTRO.TIPO_FRUITORE.getFieldType()),
  147.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getNomeFruitore(),Allarme.model().FILTRO.NOME_FRUITORE.getFieldType()),
  148.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getRuoloFruitore(),Allarme.model().FILTRO.RUOLO_FRUITORE.getFieldType()),
  149.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getServizioApplicativoFruitore(),Allarme.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()),
  150.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getTipoErogatore(),Allarme.model().FILTRO.TIPO_EROGATORE.getFieldType()),
  151.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getNomeErogatore(),Allarme.model().FILTRO.NOME_EROGATORE.getFieldType()),
  152.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getRuoloErogatore(),Allarme.model().FILTRO.RUOLO_EROGATORE.getFieldType()),
  153.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getTag(),Allarme.model().FILTRO.TAG.getFieldType()),
  154.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getTipoServizio(),Allarme.model().FILTRO.TIPO_SERVIZIO.getFieldType()),
  155.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getNomeServizio(),Allarme.model().FILTRO.NOME_SERVIZIO.getFieldType()),
  156.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getVersioneServizio(),Allarme.model().FILTRO.VERSIONE_SERVIZIO.getFieldType()),
  157.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getFiltro().getAzione(),Allarme.model().FILTRO.AZIONE.getFieldType()),
  158.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getEnabled(),Allarme.model().GROUP_BY.ENABLED.getFieldType()),
  159.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getRuoloPorta(),Allarme.model().GROUP_BY.RUOLO_PORTA.getFieldType()),
  160.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getProtocollo(),Allarme.model().GROUP_BY.PROTOCOLLO.getFieldType()),
  161.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getFruitore(),Allarme.model().GROUP_BY.FRUITORE.getFieldType()),
  162.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getServizioApplicativoFruitore(),Allarme.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()),
  163.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getIdentificativoAutenticato(),Allarme.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO.getFieldType()),
  164.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getToken(),Allarme.model().GROUP_BY.TOKEN.getFieldType()),
  165.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getErogatore(),Allarme.model().GROUP_BY.EROGATORE.getFieldType()),
  166.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getServizio(),Allarme.model().GROUP_BY.SERVIZIO.getFieldType()),
  167.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getGroupBy().getAzione(),Allarme.model().GROUP_BY.AZIONE.getFieldType())
  168.         );
  169.         allarme.setId(id);

  170.         // for allarme
  171.         for (int i = 0; i < allarme.getAllarmeParametroList().size(); i++) {


  172.             // Object allarme.getAllarmeParametroList().get(i)
  173.             ISQLQueryObject sqlQueryObjectInsert_allarmeParametro = sqlQueryObjectInsert.newSQLQueryObject();
  174.             sqlQueryObjectInsert_allarmeParametro.addInsertTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  175.             sqlQueryObjectInsert_allarmeParametro.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO,false),"?");
  176.             sqlQueryObjectInsert_allarmeParametro.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.VALORE,false),"?");
  177.             sqlQueryObjectInsert_allarmeParametro.addInsertField("id_allarme","?");

  178.             // Insert allarme.getAllarmeParametroList().get(i)
  179.             org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_allarmeParametro = this.getAllarmeFetch().getKeyGeneratorObject(Allarme.model().ALLARME_PARAMETRO);
  180.             long idAllarmeParametro = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_allarmeParametro, keyGenerator_allarmeParametro, jdbcProperties.isShowSql(),
  181.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getAllarmeParametroList().get(i).getIdParametro(),Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO.getFieldType()),
  182.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme.getAllarmeParametroList().get(i).getValore(),Allarme.model().ALLARME_PARAMETRO.VALORE.getFieldType()),
  183.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  184.             );
  185.             allarme.getAllarmeParametroList().get(i).setId(idAllarmeParametro);
  186.         } // fine for

  187.        
  188.     }

  189.     @Override
  190.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme oldId, Allarme allarme, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  191.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObject.newSQLQueryObject();
  192.         Long longIdByLogicId = this.findIdAllarme(jdbcProperties, log, connection, sqlQueryObjectUpdate.newSQLQueryObject(), oldId, true);
  193.         Long tableId = allarme.getId();
  194.         if(tableId != null && tableId.longValue() > 0) {
  195.             if(tableId.longValue() != longIdByLogicId.longValue()) {
  196.                 throw new Exception("Ambiguous parameter: allarme.id ["+tableId+"] does not match logic id ["+longIdByLogicId+"]");
  197.             }
  198.         } else {
  199.             tableId = longIdByLogicId;
  200.             allarme.setId(tableId);
  201.         }
  202.         if(tableId==null || tableId<=0){
  203.             throw new Exception("Retrieve tableId failed");
  204.         }

  205.         this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, allarme, idMappingResolutionBehaviour);
  206.     }
  207.     @Override
  208.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, Allarme allarme, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  209.    
  210.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  211.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  212.        
  213.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  214.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObjectInsert.newSQLQueryObject();
  215.         ISQLQueryObject sqlQueryObjectGet = sqlQueryObjectDelete.newSQLQueryObject();
  216.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObjectGet.newSQLQueryObject();
  217.        


  218.         // Object allarme
  219.         sqlQueryObjectUpdate.setANDLogicOperator(true);
  220.         sqlQueryObjectUpdate.addUpdateTable(this.getAllarmeFieldConverter().toTable(Allarme.model()));
  221.         boolean isUpdate = true;
  222.         java.util.List<JDBCObject> lstObjects = new java.util.ArrayList<>();
  223.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().NOME,false), "?");
  224.         lstObjects.add(new JDBCObject(allarme.getNome(), Allarme.model().NOME.getFieldType()));
  225.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALIAS,false), "?");
  226.         lstObjects.add(new JDBCObject(allarme.getAlias(), Allarme.model().ALIAS.getFieldType()));
  227.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DESCRIZIONE,false), "?");
  228.         lstObjects.add(new JDBCObject(allarme.getDescrizione(), Allarme.model().DESCRIZIONE.getFieldType()));
  229.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO,false), "?");
  230.         lstObjects.add(new JDBCObject(allarme.getTipo(), Allarme.model().TIPO.getFieldType()));
  231.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO_ALLARME,false), "?");
  232.         lstObjects.add(new JDBCObject(allarme.getTipoAllarme(), Allarme.model().TIPO_ALLARME.getFieldType()));
  233.         AllarmeMail allarme_mail = allarme.getMail();
  234.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.INVIA,false), "?");
  235.         lstObjects.add(new JDBCObject(allarme_mail.getInvia(), Allarme.model().MAIL.INVIA.getFieldType()));
  236.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.INVIA_WARNING,false), "?");
  237.         lstObjects.add(new JDBCObject(allarme_mail.getInviaWarning(), Allarme.model().MAIL.INVIA_WARNING.getFieldType()));
  238.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.DESTINATARI,false), "?");
  239.         lstObjects.add(new JDBCObject(allarme_mail.getDestinatari(), Allarme.model().MAIL.DESTINATARI.getFieldType()));
  240.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.SUBJECT,false), "?");
  241.         lstObjects.add(new JDBCObject(allarme_mail.getSubject(), Allarme.model().MAIL.SUBJECT.getFieldType()));
  242.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().MAIL.BODY,false), "?");
  243.         lstObjects.add(new JDBCObject(allarme_mail.getBody(), Allarme.model().MAIL.BODY.getFieldType()));
  244.         AllarmeScript allarme_script = allarme.getScript();
  245.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.INVOCA,false), "?");
  246.         lstObjects.add(new JDBCObject(allarme_script.getInvoca(), Allarme.model().SCRIPT.INVOCA.getFieldType()));
  247.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.INVOCA_WARNING,false), "?");
  248.         lstObjects.add(new JDBCObject(allarme_script.getInvocaWarning(), Allarme.model().SCRIPT.INVOCA_WARNING.getFieldType()));
  249.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.COMMAND,false), "?");
  250.         lstObjects.add(new JDBCObject(allarme_script.getCommand(), Allarme.model().SCRIPT.COMMAND.getFieldType()));
  251.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().SCRIPT.ARGS,false), "?");
  252.         lstObjects.add(new JDBCObject(allarme_script.getArgs(), Allarme.model().SCRIPT.ARGS.getFieldType()));
  253.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().STATO_PRECEDENTE,false), "?");
  254.         lstObjects.add(new JDBCObject(allarme.getStatoPrecedente(), Allarme.model().STATO_PRECEDENTE.getFieldType()));
  255.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().STATO,false), "?");
  256.         lstObjects.add(new JDBCObject(allarme.getStato(), Allarme.model().STATO.getFieldType()));
  257.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DETTAGLIO_STATO,false), "?");
  258.         lstObjects.add(new JDBCObject(allarme.getDettaglioStato(), Allarme.model().DETTAGLIO_STATO.getFieldType()));
  259.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().LASTTIMESTAMP_CREATE,false), "?");
  260.         lstObjects.add(new JDBCObject(allarme.getLasttimestampCreate(), Allarme.model().LASTTIMESTAMP_CREATE.getFieldType()));
  261.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().LASTTIMESTAMP_UPDATE,false), "?");
  262.         lstObjects.add(new JDBCObject(allarme.getLasttimestampUpdate(), Allarme.model().LASTTIMESTAMP_UPDATE.getFieldType()));
  263.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ENABLED,false), "?");
  264.         lstObjects.add(new JDBCObject(allarme.getEnabled(), Allarme.model().ENABLED.getFieldType()));
  265.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ACKNOWLEDGED,false), "?");
  266.         lstObjects.add(new JDBCObject(allarme.getAcknowledged(), Allarme.model().ACKNOWLEDGED.getFieldType()));
  267.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().DETTAGLIO_ACKNOWLEDGED,false), "?");
  268.         lstObjects.add(new JDBCObject(allarme.getDettaglioAcknowledged(), Allarme.model().DETTAGLIO_ACKNOWLEDGED.getFieldType()));
  269.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().TIPO_PERIODO,false), "?");
  270.         lstObjects.add(new JDBCObject(allarme.getTipoPeriodo(), Allarme.model().TIPO_PERIODO.getFieldType()));
  271.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().PERIODO,false), "?");
  272.         lstObjects.add(new JDBCObject(allarme.getPeriodo(), Allarme.model().PERIODO.getFieldType()));
  273.         AllarmeFiltro allarme_filtro = allarme.getFiltro();
  274.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.ENABLED,false), "?");
  275.         lstObjects.add(new JDBCObject(allarme_filtro.getEnabled(), Allarme.model().FILTRO.ENABLED.getFieldType()));
  276.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.PROTOCOLLO,false), "?");
  277.         lstObjects.add(new JDBCObject(allarme_filtro.getProtocollo(), Allarme.model().FILTRO.PROTOCOLLO.getFieldType()));
  278.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_PORTA,false), "?");
  279.         lstObjects.add(new JDBCObject(allarme_filtro.getRuoloPorta(), Allarme.model().FILTRO.RUOLO_PORTA.getFieldType()));
  280.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_PORTA,false), "?");
  281.         lstObjects.add(new JDBCObject(allarme_filtro.getNomePorta(), Allarme.model().FILTRO.NOME_PORTA.getFieldType()));
  282.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_FRUITORE,false), "?");
  283.         lstObjects.add(new JDBCObject(allarme_filtro.getTipoFruitore(), Allarme.model().FILTRO.TIPO_FRUITORE.getFieldType()));
  284.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_FRUITORE,false), "?");
  285.         lstObjects.add(new JDBCObject(allarme_filtro.getNomeFruitore(), Allarme.model().FILTRO.NOME_FRUITORE.getFieldType()));
  286.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_FRUITORE,false), "?");
  287.         lstObjects.add(new JDBCObject(allarme_filtro.getRuoloFruitore(), Allarme.model().FILTRO.RUOLO_FRUITORE.getFieldType()));
  288.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE,false), "?");
  289.         lstObjects.add(new JDBCObject(allarme_filtro.getServizioApplicativoFruitore(), Allarme.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()));
  290.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_EROGATORE,false), "?");
  291.         lstObjects.add(new JDBCObject(allarme_filtro.getTipoErogatore(), Allarme.model().FILTRO.TIPO_EROGATORE.getFieldType()));
  292.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_EROGATORE,false), "?");
  293.         lstObjects.add(new JDBCObject(allarme_filtro.getNomeErogatore(), Allarme.model().FILTRO.NOME_EROGATORE.getFieldType()));
  294.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.RUOLO_EROGATORE,false), "?");
  295.         lstObjects.add(new JDBCObject(allarme_filtro.getRuoloErogatore(), Allarme.model().FILTRO.RUOLO_EROGATORE.getFieldType()));
  296.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TAG,false), "?");
  297.         lstObjects.add(new JDBCObject(allarme_filtro.getTag(), Allarme.model().FILTRO.TAG.getFieldType()));
  298.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.TIPO_SERVIZIO,false), "?");
  299.         lstObjects.add(new JDBCObject(allarme_filtro.getTipoServizio(), Allarme.model().FILTRO.TIPO_SERVIZIO.getFieldType()));
  300.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.NOME_SERVIZIO,false), "?");
  301.         lstObjects.add(new JDBCObject(allarme_filtro.getNomeServizio(), Allarme.model().FILTRO.NOME_SERVIZIO.getFieldType()));
  302.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.VERSIONE_SERVIZIO,false), "?");
  303.         lstObjects.add(new JDBCObject(allarme_filtro.getVersioneServizio(), Allarme.model().FILTRO.VERSIONE_SERVIZIO.getFieldType()));
  304.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().FILTRO.AZIONE,false), "?");
  305.         lstObjects.add(new JDBCObject(allarme_filtro.getAzione(), Allarme.model().FILTRO.AZIONE.getFieldType()));
  306.         AllarmeRaggruppamento allarme_groupBy = allarme.getGroupBy();
  307.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.ENABLED,false), "?");
  308.         lstObjects.add(new JDBCObject(allarme_groupBy.getEnabled(), Allarme.model().GROUP_BY.ENABLED.getFieldType()));
  309.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.RUOLO_PORTA,false), "?");
  310.         lstObjects.add(new JDBCObject(allarme_groupBy.getRuoloPorta(), Allarme.model().GROUP_BY.RUOLO_PORTA.getFieldType()));
  311.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.PROTOCOLLO,false), "?");
  312.         lstObjects.add(new JDBCObject(allarme_groupBy.getProtocollo(), Allarme.model().GROUP_BY.PROTOCOLLO.getFieldType()));
  313.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.FRUITORE,false), "?");
  314.         lstObjects.add(new JDBCObject(allarme_groupBy.getFruitore(), Allarme.model().GROUP_BY.FRUITORE.getFieldType()));
  315.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE,false), "?");
  316.         lstObjects.add(new JDBCObject(allarme_groupBy.getServizioApplicativoFruitore(), Allarme.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()));
  317.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO,false), "?");
  318.         lstObjects.add(new JDBCObject(allarme_groupBy.getIdentificativoAutenticato(), Allarme.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO.getFieldType()));
  319.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.TOKEN,false), "?");
  320.         lstObjects.add(new JDBCObject(allarme_groupBy.getToken(), Allarme.model().GROUP_BY.TOKEN.getFieldType()));
  321.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.EROGATORE,false), "?");
  322.         lstObjects.add(new JDBCObject(allarme_groupBy.getErogatore(), Allarme.model().GROUP_BY.EROGATORE.getFieldType()));
  323.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.SERVIZIO,false), "?");
  324.         lstObjects.add(new JDBCObject(allarme_groupBy.getServizio(), Allarme.model().GROUP_BY.SERVIZIO.getFieldType()));
  325.         sqlQueryObjectUpdate.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().GROUP_BY.AZIONE,false), "?");
  326.         lstObjects.add(new JDBCObject(allarme_groupBy.getAzione(), Allarme.model().GROUP_BY.AZIONE.getFieldType()));
  327.         sqlQueryObjectUpdate.addWhereCondition("id=?");
  328.         lstObjects.add(new JDBCObject(tableId, Long.class));

  329.         if(isUpdate) {
  330.             // Update allarme
  331.             jdbcUtilities.executeUpdate(sqlQueryObjectUpdate.createSQLUpdate(), jdbcProperties.isShowSql(),
  332.                 lstObjects.toArray(new JDBCObject[]{}));
  333.         }
  334.         // for allarme_allarmeParametro

  335.         java.util.List<Long> ids_allarmeParametro_da_non_eliminare = new java.util.ArrayList<Long>();
  336.         for (Object allarme_allarmeParametro_object : allarme.getAllarmeParametroList()) {
  337.             AllarmeParametro allarme_allarmeParametro = (AllarmeParametro) allarme_allarmeParametro_object;
  338.             if(allarme_allarmeParametro.getId() == null || allarme_allarmeParametro.getId().longValue() <= 0) {

  339.                 long id = allarme.getId();          

  340.                 // Object allarme_allarmeParametro
  341.                 ISQLQueryObject sqlQueryObjectInsert_allarmeParametro = sqlQueryObjectInsert.newSQLQueryObject();
  342.                 sqlQueryObjectInsert_allarmeParametro.addInsertTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  343.                 sqlQueryObjectInsert_allarmeParametro.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO,false),"?");
  344.                 sqlQueryObjectInsert_allarmeParametro.addInsertField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.VALORE,false),"?");
  345.                 sqlQueryObjectInsert_allarmeParametro.addInsertField("id_allarme","?");

  346.                 // Insert allarme_allarmeParametro
  347.                 org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator_allarmeParametro = this.getAllarmeFetch().getKeyGeneratorObject(Allarme.model().ALLARME_PARAMETRO);
  348.                 long idAllarmeParametro = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert_allarmeParametro, keyGenerator_allarmeParametro, jdbcProperties.isShowSql(),
  349.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme_allarmeParametro.getIdParametro(),Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO.getFieldType()),
  350.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme_allarmeParametro.getValore(),Allarme.model().ALLARME_PARAMETRO.VALORE.getFieldType()),
  351.                     new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(Long.valueOf(id),Long.class)
  352.                 );
  353.                 allarme_allarmeParametro.setId(idAllarmeParametro);

  354.                 ids_allarmeParametro_da_non_eliminare.add(allarme_allarmeParametro.getId());
  355.             } else {


  356.                 // Object allarme_allarmeParametro
  357.                 ISQLQueryObject sqlQueryObjectUpdate_allarmeParametro = sqlQueryObjectUpdate.newSQLQueryObject();
  358.                 sqlQueryObjectUpdate_allarmeParametro.setANDLogicOperator(true);
  359.                 sqlQueryObjectUpdate_allarmeParametro.addUpdateTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  360.                 boolean isUpdate_allarmeParametro = true;
  361.                 java.util.List<JDBCObject> lstObjects_allarmeParametro = new java.util.ArrayList<>();
  362.                 sqlQueryObjectUpdate_allarmeParametro.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO,false), "?");
  363.                 lstObjects_allarmeParametro.add(new JDBCObject(allarme_allarmeParametro.getIdParametro(), Allarme.model().ALLARME_PARAMETRO.ID_PARAMETRO.getFieldType()));
  364.                 sqlQueryObjectUpdate_allarmeParametro.addUpdateField(this.getAllarmeFieldConverter().toColumn(Allarme.model().ALLARME_PARAMETRO.VALORE,false), "?");
  365.                 lstObjects_allarmeParametro.add(new JDBCObject(allarme_allarmeParametro.getValore(), Allarme.model().ALLARME_PARAMETRO.VALORE.getFieldType()));
  366.                 sqlQueryObjectUpdate_allarmeParametro.addWhereCondition("chk_param_id=?");
  367.                 ids_allarmeParametro_da_non_eliminare.add(allarme_allarmeParametro.getId());
  368.                 lstObjects_allarmeParametro.add(new JDBCObject(allarme_allarmeParametro.getId(),Long.class));

  369.                 if(isUpdate_allarmeParametro) {
  370.                     // Update allarme_allarmeParametro
  371.                     jdbcUtilities.executeUpdate(sqlQueryObjectUpdate_allarmeParametro.createSQLUpdate(), jdbcProperties.isShowSql(),
  372.                         lstObjects_allarmeParametro.toArray(new JDBCObject[]{}));
  373.                 }
  374.             }
  375.         } // fine for allarme_allarmeParametro

  376.         // elimino tutte le occorrenze di allarme_allarmeParametro non presenti nell'update

  377.         ISQLQueryObject sqlQueryObjectUpdate_allarmeParametrodeleteEngineList = sqlQueryObjectUpdate.newSQLQueryObject();
  378.         sqlQueryObjectUpdate_allarmeParametrodeleteEngineList.setANDLogicOperator(true);
  379.         sqlQueryObjectUpdate_allarmeParametrodeleteEngineList.addDeleteTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  380.         java.util.List<JDBCObject> jdbcObjects_allarmeParametrodeleteEngine = new java.util.ArrayList<>();

  381.         sqlQueryObjectUpdate_allarmeParametrodeleteEngineList.addWhereCondition("id_allarme=?");
  382.         jdbcObjects_allarmeParametrodeleteEngine.add(new JDBCObject(allarme.getId(), Long.class));

  383.         StringBuilder marks_allarmeParametro = new StringBuilder();
  384.         if(ids_allarmeParametro_da_non_eliminare.size() > 0) {
  385.             for(Long ids : ids_allarmeParametro_da_non_eliminare) {
  386.                 if(marks_allarmeParametro.length() > 0) {
  387.                     marks_allarmeParametro.append(",");
  388.                 }
  389.                 marks_allarmeParametro.append("?");
  390.                 jdbcObjects_allarmeParametrodeleteEngine.add(new JDBCObject(ids, Long.class));

  391.             }
  392.             sqlQueryObjectUpdate_allarmeParametrodeleteEngineList.addWhereCondition("chk_param_id NOT IN ("+marks_allarmeParametro.toString()+")");
  393.         }

  394.         jdbcUtilities.execute(sqlQueryObjectUpdate_allarmeParametrodeleteEngineList.createSQLDelete(), jdbcProperties.isShowSql(), jdbcObjects_allarmeParametrodeleteEngine.toArray(new JDBCObject[]{}));



  395.     }
  396.    
  397.     @Override
  398.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme id, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  399.        
  400.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  401.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  402.                 this.getMapTableToPKColumnEngine(),
  403.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  404.                 this.getAllarmeFieldConverter(), this, null, updateFields);
  405.     }
  406.    
  407.     @Override
  408.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme id, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  409.        
  410.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  411.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  412.                 this.getMapTableToPKColumnEngine(),
  413.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  414.                 this.getAllarmeFieldConverter(), this, condition, updateFields);
  415.     }
  416.    
  417.     @Override
  418.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme id, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  419.        
  420.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  421.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  422.                 this.getMapTableToPKColumnEngine(),
  423.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  424.                 this.getAllarmeFieldConverter(), this, updateModels);
  425.     }  
  426.    
  427.     @Override
  428.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  429.         java.util.List<Object> ids = new java.util.ArrayList<>();
  430.         ids.add(tableId);
  431.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  432.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  433.                 this.getMapTableToPKColumnEngine(),
  434.                 ids,
  435.                 this.getAllarmeFieldConverter(), this, null, updateFields);
  436.     }
  437.    
  438.     @Override
  439.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  440.         java.util.List<Object> ids = new java.util.ArrayList<>();
  441.         ids.add(tableId);
  442.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  443.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  444.                 this.getMapTableToPKColumnEngine(),
  445.                 ids,
  446.                 this.getAllarmeFieldConverter(), this, condition, updateFields);
  447.     }
  448.    
  449.     @Override
  450.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  451.         java.util.List<Object> ids = new java.util.ArrayList<>();
  452.         ids.add(tableId);
  453.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  454.                 this.getAllarmeFieldConverter().toTable(Allarme.model()),
  455.                 this.getMapTableToPKColumnEngine(),
  456.                 ids,
  457.                 this.getAllarmeFieldConverter(), this, updateModels);
  458.     }
  459.    
  460.     @Override
  461.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme oldId, Allarme allarme, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  462.    
  463.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, oldId)) {
  464.             this.update(jdbcProperties, log, connection, sqlQueryObject, oldId, allarme,idMappingResolutionBehaviour);
  465.         } else {
  466.             this.create(jdbcProperties, log, connection, sqlQueryObject, allarme,idMappingResolutionBehaviour);
  467.         }
  468.        
  469.     }
  470.    
  471.     @Override
  472.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, Allarme allarme, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  473.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, tableId)) {
  474.             this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, allarme,idMappingResolutionBehaviour);
  475.         } else {
  476.             this.create(jdbcProperties, log, connection, sqlQueryObject, allarme,idMappingResolutionBehaviour);
  477.         }
  478.     }
  479.    
  480.     @Override
  481.     public void delete(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Allarme allarme) throws NotImplementedException,ServiceException,Exception {
  482.        
  483.        
  484.         Long longId = null;
  485.         if( (allarme.getId()!=null) && (allarme.getId()>0) ){
  486.             longId = allarme.getId();
  487.         }
  488.         else{
  489.             IdAllarme idAllarme = this.convertToId(jdbcProperties,log,connection,sqlQueryObject,allarme);
  490.             longId = this.findIdAllarme(jdbcProperties,log,connection,sqlQueryObject,idAllarme,false);
  491.             if(longId == null){
  492.                 return; // entry not exists
  493.             }
  494.         }      
  495.        
  496.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, longId);
  497.        
  498.     }

  499.     private void deleteEngine(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Long id) throws NotImplementedException,ServiceException,Exception {
  500.    
  501.         if(id==null){
  502.             throw new ServiceException("Id is null");
  503.         }
  504.         if(id!=null && id.longValue()<=0){
  505.             throw new ServiceException("Id is less equals 0");
  506.         }
  507.        
  508.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  509.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  510.        
  511.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObject.newSQLQueryObject();
  512.        

  513.         //Recupero oggetto _allarmeParametro
  514.         ISQLQueryObject sqlQueryObjectDelete_allarmeParametrogetEngineToDelete = sqlQueryObjectDelete.newSQLQueryObject();
  515.         sqlQueryObjectDelete_allarmeParametrogetEngineToDelete.setANDLogicOperator(true);
  516.         sqlQueryObjectDelete_allarmeParametrogetEngineToDelete.addFromTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  517.         sqlQueryObjectDelete_allarmeParametrogetEngineToDelete.addWhereCondition("id_allarme=?");
  518.         java.util.List<Object> allarme_allarmeParametro_toDelete_list = (java.util.List<Object>) jdbcUtilities.executeQuery(sqlQueryObjectDelete_allarmeParametrogetEngineToDelete.createSQLQuery(), jdbcProperties.isShowSql(), Allarme.model().ALLARME_PARAMETRO, this.getAllarmeFetch(),
  519.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));

  520.         // for allarme_allarmeParametro
  521.         for (Object allarme_allarmeParametro_object : allarme_allarmeParametro_toDelete_list) {
  522.             AllarmeParametro allarme_allarmeParametro = (AllarmeParametro) allarme_allarmeParametro_object;

  523.             // Object allarme_allarmeParametro
  524.             ISQLQueryObject sqlQueryObjectDelete_allarmeParametro = sqlQueryObjectDelete.newSQLQueryObject();
  525.             sqlQueryObjectDelete_allarmeParametro.setANDLogicOperator(true);
  526.             sqlQueryObjectDelete_allarmeParametro.addDeleteTable(this.getAllarmeFieldConverter().toTable(Allarme.model().ALLARME_PARAMETRO));
  527.             sqlQueryObjectDelete_allarmeParametro.addWhereCondition("chk_param_id=?");

  528.             // Delete allarme_allarmeParametro
  529.             if(allarme_allarmeParametro != null){
  530.                 jdbcUtilities.execute(sqlQueryObjectDelete_allarmeParametro.createSQLDelete(), jdbcProperties.isShowSql(),
  531.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(allarme_allarmeParametro.getId(),Long.class));
  532.             }
  533.         } // fine for allarme_allarmeParametro

  534.         // Object allarme
  535.         sqlQueryObjectDelete.setANDLogicOperator(true);
  536.         sqlQueryObjectDelete.addDeleteTable(this.getAllarmeFieldConverter().toTable(Allarme.model()));
  537.         if(id != null)
  538.             sqlQueryObjectDelete.addWhereCondition("id=?");

  539.        
  540.         // Delete history
  541.         @SuppressWarnings("unchecked")
  542.         IDBServiceUtilities<AllarmeHistory> dbHistoryServiceUtilities = (IDBServiceUtilities<AllarmeHistory>) this.getServiceManager().getAllarmeHistoryServiceSearch();
  543.        
  544.         ISQLQueryObject sqlQueryObjectDelete_allarmeHistorydeleteEngine = sqlQueryObjectDelete.newSQLQueryObject();
  545.         sqlQueryObjectDelete_allarmeHistorydeleteEngine.setANDLogicOperator(true);
  546.         sqlQueryObjectDelete_allarmeHistorydeleteEngine.addDeleteTable(dbHistoryServiceUtilities.getFieldConverter().toTable(AllarmeHistory.model()));
  547.         sqlQueryObjectDelete_allarmeHistorydeleteEngine.addWhereCondition("id_allarme=?");
  548.         jdbcUtilities.execute(sqlQueryObjectDelete_allarmeHistorydeleteEngine.createSQLDelete(), jdbcProperties.isShowSql(),
  549.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));
  550.                

  551.        
  552.         // Delete notifiche
  553.         @SuppressWarnings("unchecked")
  554.         IDBServiceUtilities<AllarmeNotifica> dbNotificaServiceUtilities = (IDBServiceUtilities<AllarmeNotifica>) this.getServiceManager().getAllarmeNotificaServiceSearch();
  555.        
  556.         ISQLQueryObject sqlQueryObjectDelete_allarmeNotificadeleteEngine = sqlQueryObjectDelete.newSQLQueryObject();
  557.         sqlQueryObjectDelete_allarmeNotificadeleteEngine.setANDLogicOperator(true);
  558.         sqlQueryObjectDelete_allarmeNotificadeleteEngine.addDeleteTable(dbNotificaServiceUtilities.getFieldConverter().toTable(AllarmeNotifica.model()));
  559.         sqlQueryObjectDelete_allarmeNotificadeleteEngine.addWhereCondition("id_allarme=?");
  560.         jdbcUtilities.execute(sqlQueryObjectDelete_allarmeNotificadeleteEngine.createSQLDelete(), jdbcProperties.isShowSql(),
  561.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(id,Long.class));
  562.        
  563.        
  564.        
  565.         // Delete allarme
  566.         jdbcUtilities.execute(sqlQueryObjectDelete.createSQLDelete(), jdbcProperties.isShowSql(),
  567.             new JDBCObject(id,Long.class));

  568.     }

  569.     @Override
  570.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdAllarme idAllarme) throws NotImplementedException,ServiceException,Exception {

  571.         Long id = null;
  572.         try{
  573.             id = this.findIdAllarme(jdbcProperties, log, connection, sqlQueryObject, idAllarme, true);
  574.         }catch(NotFoundException notFound){
  575.             return;
  576.         }
  577.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  578.        
  579.     }
  580.    
  581.     @Override
  582.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject) throws NotImplementedException,ServiceException,Exception {
  583.        
  584.         return this.deleteAll(jdbcProperties, log, connection, sqlQueryObject, new JDBCExpression(this.getAllarmeFieldConverter()));

  585.     }

  586.     @Override
  587.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, JDBCExpression expression) throws NotImplementedException, ServiceException,Exception {

  588.         java.util.List<Long> lst = this.findAllTableIds(jdbcProperties, log, connection, sqlQueryObject, new JDBCPaginatedExpression(expression));
  589.        
  590.         for(Long id : lst) {
  591.             this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  592.         }
  593.        
  594.         return new NonNegativeNumber(lst.size());
  595.    
  596.     }



  597.     // -- DB
  598.    
  599.     @Override
  600.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId) throws ServiceException, NotImplementedException, Exception {
  601.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, Long.valueOf(tableId));
  602.     }
  603.    
  604.     @Override
  605.     public int nativeUpdate(JDBCServiceManagerProperties jdbcProperties, Logger log,Connection connection,ISQLQueryObject sqlObject, String sql,Object ... param) throws ServiceException,NotImplementedException, Exception {
  606.    
  607.         return org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities.nativeUpdate(jdbcProperties, log, connection, sqlObject,
  608.                                                                                             sql,param);
  609.    
  610.     }
  611. }