JDBCAttivazionePolicyServiceImpl.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.controllo_traffico.dao.jdbc;

  21. import java.sql.Connection;

  22. import org.openspcoop2.utils.date.DateManager;
  23. import org.openspcoop2.utils.sql.ISQLQueryObject;

  24. import org.slf4j.Logger;

  25. import org.openspcoop2.generic_project.dao.jdbc.IJDBCServiceCRUDWithId;
  26. import org.openspcoop2.generic_project.beans.NonNegativeNumber;
  27. import org.openspcoop2.generic_project.beans.UpdateField;
  28. import org.openspcoop2.generic_project.beans.UpdateModel;

  29. import org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities;
  30. import org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject;
  31. import org.openspcoop2.generic_project.exception.NotFoundException;
  32. import org.openspcoop2.generic_project.exception.NotImplementedException;
  33. import org.openspcoop2.generic_project.exception.ServiceException;
  34. import org.openspcoop2.generic_project.expression.IExpression;
  35. import org.openspcoop2.generic_project.dao.jdbc.JDBCExpression;
  36. import org.openspcoop2.generic_project.dao.jdbc.JDBCPaginatedExpression;

  37. import org.openspcoop2.generic_project.dao.jdbc.JDBCServiceManagerProperties;
  38. import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
  39. import org.openspcoop2.core.controllo_traffico.AttivazionePolicyFiltro;
  40. import org.openspcoop2.core.controllo_traffico.AttivazionePolicyRaggruppamento;
  41. import org.openspcoop2.core.controllo_traffico.IdActivePolicy;

  42. /**    
  43.  * JDBCAttivazionePolicyServiceImpl
  44.  *
  45.  * @author Poli Andrea (poli@link.it)
  46.  * @author $Author$
  47.  * @version $Rev$, $Date$
  48.  */
  49. public class JDBCAttivazionePolicyServiceImpl extends JDBCAttivazionePolicyServiceSearchImpl
  50.     implements IJDBCServiceCRUDWithId<AttivazionePolicy, IdActivePolicy, JDBCServiceManager> {

  51.     @Override
  52.     public void create(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, AttivazionePolicy attivazionePolicy, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {

  53.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  54.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  55.        
  56.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  57.        
  58.         attivazionePolicy.setUpdateTime(DateManager.getDate());

  59.         // Object attivazionePolicy
  60.         sqlQueryObjectInsert.addInsertTable(this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()));
  61.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ID_ACTIVE_POLICY,false),"?");
  62.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ALIAS,false),"?");
  63.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().UPDATE_TIME,false),"?");
  64.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().POSIZIONE,false),"?");
  65.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().CONTINUA_VALUTAZIONE,false),"?");
  66.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ID_POLICY,false),"?");
  67.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ENABLED,false),"?");
  68.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().WARNING_ONLY,false),"?");
  69.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().RIDEFINISCI,false),"?");
  70.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().VALORE,false),"?");
  71.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().VALORE_2,false),"?");
  72.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.ENABLED,false),"?");
  73.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.PROTOCOLLO,false),"?");
  74.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_PORTA,false),"?");
  75.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_PORTA,false),"?");
  76.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_FRUITORE,false),"?");
  77.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_FRUITORE,false),"?");
  78.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_FRUITORE,false),"?");
  79.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE,false),"?");
  80.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_EROGATORE,false),"?");
  81.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_EROGATORE,false),"?");
  82.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_EROGATORE,false),"?");
  83.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_EROGATORE,false),"?");
  84.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TAG,false),"?");
  85.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_SERVIZIO,false),"?");
  86.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_SERVIZIO,false),"?");
  87.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.VERSIONE_SERVIZIO,false),"?");
  88.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.AZIONE,false),"?");
  89.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TOKEN_CLAIMS,false),"?");
  90.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_ENABLED,false),"?");
  91.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_TIPO,false),"?");
  92.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_NOME,false),"?");
  93.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_VALORE,false),"?");
  94.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.ENABLED,false),"?");
  95.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.RUOLO_PORTA,false),"?");
  96.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.PROTOCOLLO,false),"?");
  97.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.FRUITORE,false),"?");
  98.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE,false),"?");
  99.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO,false),"?");
  100.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.TOKEN,false),"?");
  101.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.EROGATORE,false),"?");
  102.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_EROGATORE,false),"?");
  103.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO,false),"?");
  104.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.AZIONE,false),"?");
  105.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_ENABLED,false),"?");
  106.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_TIPO,false),"?");
  107.         sqlQueryObjectInsert.addInsertField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_NOME,false),"?");

  108.         // Insert attivazionePolicy
  109.         org.openspcoop2.utils.jdbc.IKeyGeneratorObject keyGenerator = this.getAttivazionePolicyFetch().getKeyGeneratorObject(AttivazionePolicy.model());
  110.         long id = jdbcUtilities.insertAndReturnGeneratedKey(sqlQueryObjectInsert, keyGenerator, jdbcProperties.isShowSql(),
  111.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getIdActivePolicy(),AttivazionePolicy.model().ID_ACTIVE_POLICY.getFieldType()),
  112.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getAlias(),AttivazionePolicy.model().ALIAS.getFieldType()),
  113.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getUpdateTime(),AttivazionePolicy.model().UPDATE_TIME.getFieldType()),
  114.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getPosizione(),AttivazionePolicy.model().POSIZIONE.getFieldType()),
  115.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getContinuaValutazione(),AttivazionePolicy.model().CONTINUA_VALUTAZIONE.getFieldType()),
  116.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getIdPolicy(),AttivazionePolicy.model().ID_POLICY.getFieldType()),
  117.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getEnabled(),AttivazionePolicy.model().ENABLED.getFieldType()),
  118.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getWarningOnly(),AttivazionePolicy.model().WARNING_ONLY.getFieldType()),
  119.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getRidefinisci(),AttivazionePolicy.model().RIDEFINISCI.getFieldType()),
  120.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getValore(),AttivazionePolicy.model().VALORE.getFieldType()),
  121.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getValore2(),AttivazionePolicy.model().VALORE_2.getFieldType()),
  122.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getEnabled(),AttivazionePolicy.model().FILTRO.ENABLED.getFieldType()),
  123.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getProtocollo(),AttivazionePolicy.model().FILTRO.PROTOCOLLO.getFieldType()),
  124.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getRuoloPorta(),AttivazionePolicy.model().FILTRO.RUOLO_PORTA.getFieldType()),
  125.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getNomePorta(),AttivazionePolicy.model().FILTRO.NOME_PORTA.getFieldType()),
  126.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getTipoFruitore(),AttivazionePolicy.model().FILTRO.TIPO_FRUITORE.getFieldType()),
  127.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getNomeFruitore(),AttivazionePolicy.model().FILTRO.NOME_FRUITORE.getFieldType()),
  128.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getRuoloFruitore(),AttivazionePolicy.model().FILTRO.RUOLO_FRUITORE.getFieldType()),
  129.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getServizioApplicativoFruitore(),AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()),
  130.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getTipoErogatore(),AttivazionePolicy.model().FILTRO.TIPO_EROGATORE.getFieldType()),
  131.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getNomeErogatore(),AttivazionePolicy.model().FILTRO.NOME_EROGATORE.getFieldType()),
  132.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getRuoloErogatore(),AttivazionePolicy.model().FILTRO.RUOLO_EROGATORE.getFieldType()),
  133.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getServizioApplicativoErogatore(),AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()),
  134.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getTag(),AttivazionePolicy.model().FILTRO.TAG.getFieldType()),
  135.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getTipoServizio(),AttivazionePolicy.model().FILTRO.TIPO_SERVIZIO.getFieldType()),
  136.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getNomeServizio(),AttivazionePolicy.model().FILTRO.NOME_SERVIZIO.getFieldType()),
  137.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getVersioneServizio(),AttivazionePolicy.model().FILTRO.VERSIONE_SERVIZIO.getFieldType()),
  138.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getAzione(),AttivazionePolicy.model().FILTRO.AZIONE.getFieldType()),
  139.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getTokenClaims(),AttivazionePolicy.model().FILTRO.TOKEN_CLAIMS.getFieldType()),
  140.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getInformazioneApplicativaEnabled(),AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_ENABLED.getFieldType()),
  141.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getInformazioneApplicativaTipo(),AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_TIPO.getFieldType()),
  142.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getInformazioneApplicativaNome(),AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_NOME.getFieldType()),
  143.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getFiltro().getInformazioneApplicativaValore(),AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_VALORE.getFieldType()),
  144.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getEnabled(),AttivazionePolicy.model().GROUP_BY.ENABLED.getFieldType()),
  145.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getRuoloPorta(),AttivazionePolicy.model().GROUP_BY.RUOLO_PORTA.getFieldType()),
  146.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getProtocollo(),AttivazionePolicy.model().GROUP_BY.PROTOCOLLO.getFieldType()),
  147.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getFruitore(),AttivazionePolicy.model().GROUP_BY.FRUITORE.getFieldType()),
  148.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getServizioApplicativoFruitore(),AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()),
  149.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getIdentificativoAutenticato(),AttivazionePolicy.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO.getFieldType()),
  150.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getToken(),AttivazionePolicy.model().GROUP_BY.TOKEN.getFieldType()),
  151.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getErogatore(),AttivazionePolicy.model().GROUP_BY.EROGATORE.getFieldType()),
  152.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getServizioApplicativoErogatore(),AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()),
  153.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getServizio(),AttivazionePolicy.model().GROUP_BY.SERVIZIO.getFieldType()),
  154.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getAzione(),AttivazionePolicy.model().GROUP_BY.AZIONE.getFieldType()),
  155.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getInformazioneApplicativaEnabled(),AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_ENABLED.getFieldType()),
  156.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getInformazioneApplicativaTipo(),AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_TIPO.getFieldType()),
  157.             new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCObject(attivazionePolicy.getGroupBy().getInformazioneApplicativaNome(),AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_NOME.getFieldType())
  158.         );
  159.         attivazionePolicy.setId(id);

  160.        
  161.     }

  162.     @Override
  163.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy oldId, AttivazionePolicy attivazionePolicy, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  164.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObject.newSQLQueryObject();
  165.         Long longIdByLogicId = this.findIdAttivazionePolicy(jdbcProperties, log, connection, sqlQueryObjectUpdate.newSQLQueryObject(), oldId, true);
  166.         Long tableId = attivazionePolicy.getId();
  167.         if(tableId != null && tableId.longValue() > 0) {
  168.             if(tableId.longValue() != longIdByLogicId.longValue()) {
  169.                 throw new Exception("Ambiguous parameter: attivazionePolicy.id ["+tableId+"] does not match logic id ["+longIdByLogicId+"]");
  170.             }
  171.         } else {
  172.             tableId = longIdByLogicId;
  173.             attivazionePolicy.setId(tableId);
  174.         }
  175.         if(tableId==null || tableId<=0){
  176.             throw new Exception("Retrieve tableId failed");
  177.         }

  178.         this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, attivazionePolicy, idMappingResolutionBehaviour);
  179.     }
  180.     @Override
  181.     public void update(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, AttivazionePolicy attivazionePolicy, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  182.    
  183.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  184.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  185.        
  186.         ISQLQueryObject sqlQueryObjectInsert = sqlQueryObject.newSQLQueryObject();
  187.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObjectInsert.newSQLQueryObject();
  188.         ISQLQueryObject sqlQueryObjectGet = sqlQueryObjectDelete.newSQLQueryObject();
  189.         ISQLQueryObject sqlQueryObjectUpdate = sqlQueryObjectGet.newSQLQueryObject();
  190.        

  191.         // Check se è avvenuto effettivamente un aggiornamento
  192.         AttivazionePolicy attivazioneLettoDaDB = this.get(jdbcProperties, log, connection, sqlQueryObjectUpdate, tableId, idMappingResolutionBehaviour);
  193.         if(attivazioneLettoDaDB.equals(attivazionePolicy)){
  194.             log.debug("Non sono state apportate differenze");
  195.             return;
  196.         }
  197.         else{
  198.             StringBuilder bf = new StringBuilder();
  199.             attivazioneLettoDaDB.diff(attivazionePolicy, bf);
  200.             log.debug("Esistono differenze: "+bf.toString());
  201.             attivazionePolicy.setUpdateTime(DateManager.getDate());
  202.         }
  203.        
  204.         // Object attivazionePolicy
  205.         sqlQueryObjectUpdate.setANDLogicOperator(true);
  206.         sqlQueryObjectUpdate.addUpdateTable(this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()));
  207.         boolean isUpdate = true;
  208.         java.util.List<JDBCObject> lstObjects = new java.util.ArrayList<>();
  209.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ID_ACTIVE_POLICY,false), "?");
  210.         lstObjects.add(new JDBCObject(attivazionePolicy.getIdActivePolicy(), AttivazionePolicy.model().ID_ACTIVE_POLICY.getFieldType()));
  211.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ALIAS,false), "?");
  212.         lstObjects.add(new JDBCObject(attivazionePolicy.getAlias(), AttivazionePolicy.model().ALIAS.getFieldType()));
  213.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().UPDATE_TIME,false), "?");
  214.         lstObjects.add(new JDBCObject(attivazionePolicy.getUpdateTime(), AttivazionePolicy.model().UPDATE_TIME.getFieldType()));
  215.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().POSIZIONE,false), "?");
  216.         lstObjects.add(new JDBCObject(attivazionePolicy.getPosizione(), AttivazionePolicy.model().POSIZIONE.getFieldType()));
  217.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().CONTINUA_VALUTAZIONE,false), "?");
  218.         lstObjects.add(new JDBCObject(attivazionePolicy.getContinuaValutazione(), AttivazionePolicy.model().CONTINUA_VALUTAZIONE.getFieldType()));
  219.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ID_POLICY,false), "?");
  220.         lstObjects.add(new JDBCObject(attivazionePolicy.getIdPolicy(), AttivazionePolicy.model().ID_POLICY.getFieldType()));
  221.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().ENABLED,false), "?");
  222.         lstObjects.add(new JDBCObject(attivazionePolicy.getEnabled(), AttivazionePolicy.model().ENABLED.getFieldType()));
  223.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().WARNING_ONLY,false), "?");
  224.         lstObjects.add(new JDBCObject(attivazionePolicy.getWarningOnly(), AttivazionePolicy.model().WARNING_ONLY.getFieldType()));
  225.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().RIDEFINISCI,false), "?");
  226.         lstObjects.add(new JDBCObject(attivazionePolicy.getRidefinisci(), AttivazionePolicy.model().RIDEFINISCI.getFieldType()));
  227.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().VALORE,false), "?");
  228.         lstObjects.add(new JDBCObject(attivazionePolicy.getValore(), AttivazionePolicy.model().VALORE.getFieldType()));
  229.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().VALORE_2,false), "?");
  230.         lstObjects.add(new JDBCObject(attivazionePolicy.getValore2(), AttivazionePolicy.model().VALORE_2.getFieldType()));
  231.         AttivazionePolicyFiltro attivazionePolicy_filtro = attivazionePolicy.getFiltro();
  232.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.ENABLED,false), "?");
  233.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getEnabled(), AttivazionePolicy.model().FILTRO.ENABLED.getFieldType()));
  234.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.PROTOCOLLO,false), "?");
  235.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getProtocollo(), AttivazionePolicy.model().FILTRO.PROTOCOLLO.getFieldType()));
  236.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_PORTA,false), "?");
  237.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getRuoloPorta(), AttivazionePolicy.model().FILTRO.RUOLO_PORTA.getFieldType()));
  238.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_PORTA,false), "?");
  239.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getNomePorta(), AttivazionePolicy.model().FILTRO.NOME_PORTA.getFieldType()));
  240.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_FRUITORE,false), "?");
  241.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getTipoFruitore(), AttivazionePolicy.model().FILTRO.TIPO_FRUITORE.getFieldType()));
  242.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_FRUITORE,false), "?");
  243.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getNomeFruitore(), AttivazionePolicy.model().FILTRO.NOME_FRUITORE.getFieldType()));
  244.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_FRUITORE,false), "?");
  245.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getRuoloFruitore(), AttivazionePolicy.model().FILTRO.RUOLO_FRUITORE.getFieldType()));
  246.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE,false), "?");
  247.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getServizioApplicativoFruitore(), AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()));
  248.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_EROGATORE,false), "?");
  249.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getTipoErogatore(), AttivazionePolicy.model().FILTRO.TIPO_EROGATORE.getFieldType()));
  250.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_EROGATORE,false), "?");
  251.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getNomeErogatore(), AttivazionePolicy.model().FILTRO.NOME_EROGATORE.getFieldType()));
  252.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.RUOLO_EROGATORE,false), "?");
  253.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getRuoloErogatore(), AttivazionePolicy.model().FILTRO.RUOLO_EROGATORE.getFieldType()));
  254.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_EROGATORE,false), "?");
  255.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getServizioApplicativoErogatore(), AttivazionePolicy.model().FILTRO.SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()));
  256.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TAG,false), "?");
  257.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getTag(), AttivazionePolicy.model().FILTRO.TAG.getFieldType()));
  258.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TIPO_SERVIZIO,false), "?");
  259.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getTipoServizio(), AttivazionePolicy.model().FILTRO.TIPO_SERVIZIO.getFieldType()));
  260.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.NOME_SERVIZIO,false), "?");
  261.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getNomeServizio(), AttivazionePolicy.model().FILTRO.NOME_SERVIZIO.getFieldType()));
  262.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.VERSIONE_SERVIZIO,false), "?");
  263.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getVersioneServizio(), AttivazionePolicy.model().FILTRO.VERSIONE_SERVIZIO.getFieldType()));
  264.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.AZIONE,false), "?");
  265.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getAzione(), AttivazionePolicy.model().FILTRO.AZIONE.getFieldType()));
  266.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.TOKEN_CLAIMS,false), "?");
  267.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getTokenClaims(), AttivazionePolicy.model().FILTRO.TOKEN_CLAIMS.getFieldType()));
  268.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_ENABLED,false), "?");
  269.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getInformazioneApplicativaEnabled(), AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_ENABLED.getFieldType()));
  270.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_TIPO,false), "?");
  271.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getInformazioneApplicativaTipo(), AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_TIPO.getFieldType()));
  272.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_NOME,false), "?");
  273.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getInformazioneApplicativaNome(), AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_NOME.getFieldType()));
  274.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_VALORE,false), "?");
  275.         lstObjects.add(new JDBCObject(attivazionePolicy_filtro.getInformazioneApplicativaValore(), AttivazionePolicy.model().FILTRO.INFORMAZIONE_APPLICATIVA_VALORE.getFieldType()));
  276.         AttivazionePolicyRaggruppamento attivazionePolicy_groupBy = attivazionePolicy.getGroupBy();
  277.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.ENABLED,false), "?");
  278.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getEnabled(), AttivazionePolicy.model().GROUP_BY.ENABLED.getFieldType()));
  279.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.RUOLO_PORTA,false), "?");
  280.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getRuoloPorta(), AttivazionePolicy.model().GROUP_BY.RUOLO_PORTA.getFieldType()));
  281.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.PROTOCOLLO,false), "?");
  282.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getProtocollo(), AttivazionePolicy.model().GROUP_BY.PROTOCOLLO.getFieldType()));
  283.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.FRUITORE,false), "?");
  284.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getFruitore(), AttivazionePolicy.model().GROUP_BY.FRUITORE.getFieldType()));
  285.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE,false), "?");
  286.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getServizioApplicativoFruitore(), AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_FRUITORE.getFieldType()));
  287.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO,false), "?");
  288.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getIdentificativoAutenticato(), AttivazionePolicy.model().GROUP_BY.IDENTIFICATIVO_AUTENTICATO.getFieldType()));
  289.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.TOKEN,false), "?");
  290.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getToken(), AttivazionePolicy.model().GROUP_BY.TOKEN.getFieldType()));
  291.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.EROGATORE,false), "?");
  292.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getErogatore(), AttivazionePolicy.model().GROUP_BY.EROGATORE.getFieldType()));
  293.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_EROGATORE,false), "?");
  294.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getServizioApplicativoErogatore(), AttivazionePolicy.model().GROUP_BY.SERVIZIO_APPLICATIVO_EROGATORE.getFieldType()));
  295.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.SERVIZIO,false), "?");
  296.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getServizio(), AttivazionePolicy.model().GROUP_BY.SERVIZIO.getFieldType()));
  297.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.AZIONE,false), "?");
  298.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getAzione(), AttivazionePolicy.model().GROUP_BY.AZIONE.getFieldType()));
  299.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_ENABLED,false), "?");
  300.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getInformazioneApplicativaEnabled(), AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_ENABLED.getFieldType()));
  301.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_TIPO,false), "?");
  302.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getInformazioneApplicativaTipo(), AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_TIPO.getFieldType()));
  303.         sqlQueryObjectUpdate.addUpdateField(this.getAttivazionePolicyFieldConverter().toColumn(AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_NOME,false), "?");
  304.         lstObjects.add(new JDBCObject(attivazionePolicy_groupBy.getInformazioneApplicativaNome(), AttivazionePolicy.model().GROUP_BY.INFORMAZIONE_APPLICATIVA_NOME.getFieldType()));
  305.         sqlQueryObjectUpdate.addWhereCondition("id=?");
  306.         lstObjects.add(new JDBCObject(tableId, Long.class));

  307.         if(isUpdate) {
  308.             // Update attivazionePolicy
  309.             jdbcUtilities.executeUpdate(sqlQueryObjectUpdate.createSQLUpdate(), jdbcProperties.isShowSql(),
  310.                 lstObjects.toArray(new JDBCObject[]{}));
  311.         }


  312.     }
  313.    
  314.     @Override
  315.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy id, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  316.        
  317.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  318.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  319.                 this.getMapTableToPKColumnEngine(),
  320.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  321.                 this.getAttivazionePolicyFieldConverter(), this, null, updateFields);
  322.     }
  323.    
  324.     @Override
  325.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy id, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  326.        
  327.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  328.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  329.                 this.getMapTableToPKColumnEngine(),
  330.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  331.                 this.getAttivazionePolicyFieldConverter(), this, condition, updateFields);
  332.     }
  333.    
  334.     @Override
  335.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy id, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  336.        
  337.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  338.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  339.                 this.getMapTableToPKColumnEngine(),
  340.                 this.getRootTablePrimaryKeyValuesEngine(jdbcProperties, log, connection, sqlQueryObject, id),
  341.                 this.getAttivazionePolicyFieldConverter(), this, updateModels);
  342.     }  
  343.    
  344.     @Override
  345.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  346.         java.util.List<Object> ids = new java.util.ArrayList<>();
  347.         ids.add(tableId);
  348.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  349.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  350.                 this.getMapTableToPKColumnEngine(),
  351.                 ids,
  352.                 this.getAttivazionePolicyFieldConverter(), this, null, updateFields);
  353.     }
  354.    
  355.     @Override
  356.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, IExpression condition, UpdateField ... updateFields) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  357.         java.util.List<Object> ids = new java.util.ArrayList<>();
  358.         ids.add(tableId);
  359.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  360.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  361.                 this.getMapTableToPKColumnEngine(),
  362.                 ids,
  363.                 this.getAttivazionePolicyFieldConverter(), this, condition, updateFields);
  364.     }
  365.    
  366.     @Override
  367.     public void updateFields(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, UpdateModel ... updateModels) throws NotFoundException, NotImplementedException, ServiceException, Exception {
  368.         java.util.List<Object> ids = new java.util.ArrayList<>();
  369.         ids.add(tableId);
  370.         GenericJDBCUtilities.updateFields(jdbcProperties, log, connection, sqlQueryObject,
  371.                 this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()),
  372.                 this.getMapTableToPKColumnEngine(),
  373.                 ids,
  374.                 this.getAttivazionePolicyFieldConverter(), this, updateModels);
  375.     }
  376.    
  377.     @Override
  378.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy oldId, AttivazionePolicy attivazionePolicy, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  379.    
  380.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, oldId)) {
  381.             this.update(jdbcProperties, log, connection, sqlQueryObject, oldId, attivazionePolicy,idMappingResolutionBehaviour);
  382.         } else {
  383.             this.create(jdbcProperties, log, connection, sqlQueryObject, attivazionePolicy,idMappingResolutionBehaviour);
  384.         }
  385.        
  386.     }
  387.    
  388.     @Override
  389.     public void updateOrCreate(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId, AttivazionePolicy attivazionePolicy, org.openspcoop2.generic_project.beans.IDMappingBehaviour idMappingResolutionBehaviour) throws NotImplementedException,ServiceException,Exception {
  390.         if(this.exists(jdbcProperties, log, connection, sqlQueryObject, tableId)) {
  391.             this.update(jdbcProperties, log, connection, sqlQueryObject, tableId, attivazionePolicy,idMappingResolutionBehaviour);
  392.         } else {
  393.             this.create(jdbcProperties, log, connection, sqlQueryObject, attivazionePolicy,idMappingResolutionBehaviour);
  394.         }
  395.     }
  396.    
  397.     @Override
  398.     public void delete(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, AttivazionePolicy attivazionePolicy) throws NotImplementedException,ServiceException,Exception {
  399.        
  400.        
  401.         Long longId = null;
  402.         if( (attivazionePolicy.getId()!=null) && (attivazionePolicy.getId()>0) ){
  403.             longId = attivazionePolicy.getId();
  404.         }
  405.         else{
  406.             IdActivePolicy idAttivazionePolicy = this.convertToId(jdbcProperties,log,connection,sqlQueryObject,attivazionePolicy);
  407.             longId = this.findIdAttivazionePolicy(jdbcProperties,log,connection,sqlQueryObject,idAttivazionePolicy,false);
  408.             if(longId == null){
  409.                 return; // entry not exists
  410.             }
  411.         }      
  412.        
  413.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, longId);
  414.        
  415.     }

  416.     private void deleteEngine(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, Long id) throws NotImplementedException,ServiceException,Exception {
  417.    
  418.         if(id!=null && id.longValue()<=0){
  419.             throw new ServiceException("Id is less equals 0");
  420.         }
  421.        
  422.         org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities jdbcUtilities =
  423.                 new org.openspcoop2.generic_project.dao.jdbc.utils.JDBCPreparedStatementUtilities(sqlQueryObject.getTipoDatabaseOpenSPCoop2(), log, connection);
  424.        
  425.         ISQLQueryObject sqlQueryObjectDelete = sqlQueryObject.newSQLQueryObject();
  426.        

  427.         // Object attivazionePolicy
  428.         sqlQueryObjectDelete.setANDLogicOperator(true);
  429.         sqlQueryObjectDelete.addDeleteTable(this.getAttivazionePolicyFieldConverter().toTable(AttivazionePolicy.model()));
  430.         if(id != null)
  431.             sqlQueryObjectDelete.addWhereCondition("id=?");

  432.         // Delete attivazionePolicy
  433.         jdbcUtilities.execute(sqlQueryObjectDelete.createSQLDelete(), jdbcProperties.isShowSql(),
  434.             new JDBCObject(id,Long.class));

  435.     }

  436.     @Override
  437.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, IdActivePolicy idAttivazionePolicy) throws NotImplementedException,ServiceException,Exception {

  438.         Long id = null;
  439.         try{
  440.             id = this.findIdAttivazionePolicy(jdbcProperties, log, connection, sqlQueryObject, idAttivazionePolicy, true);
  441.         }catch(NotFoundException notFound){
  442.             return;
  443.         }
  444.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  445.        
  446.     }
  447.    
  448.     @Override
  449.     public NonNegativeNumber deleteAll(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject) throws NotImplementedException,ServiceException,Exception {
  450.        
  451.         return this.deleteAll(jdbcProperties, log, connection, sqlQueryObject, new JDBCExpression(this.getAttivazionePolicyFieldConverter()));

  452.     }

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

  455.         java.util.List<Long> lst = this.findAllTableIds(jdbcProperties, log, connection, sqlQueryObject, new JDBCPaginatedExpression(expression));
  456.        
  457.         for(Long id : lst) {
  458.             this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, id);
  459.         }
  460.        
  461.         return new NonNegativeNumber(lst.size());
  462.    
  463.     }



  464.     // -- DB
  465.    
  466.     @Override
  467.     public void deleteById(JDBCServiceManagerProperties jdbcProperties, Logger log, Connection connection, ISQLQueryObject sqlQueryObject, long tableId) throws ServiceException, NotImplementedException, Exception {
  468.         this.deleteEngine(jdbcProperties, log, connection, sqlQueryObject, Long.valueOf(tableId));
  469.     }
  470.    
  471.     @Override
  472.     public int nativeUpdate(JDBCServiceManagerProperties jdbcProperties, Logger log,Connection connection,ISQLQueryObject sqlObject, String sql,Object ... param) throws ServiceException,NotImplementedException, Exception {
  473.    
  474.         return org.openspcoop2.generic_project.dao.jdbc.utils.GenericJDBCUtilities.nativeUpdate(jdbcProperties, log, connection, sqlObject,
  475.                                                                                             sql,param);
  476.    
  477.     }
  478. }