DriverRegistroServiziDB_accordiLIB.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.core.registry.driver.db;
- import static org.openspcoop2.core.constants.CostantiDB.CREATE;
- import static org.openspcoop2.core.constants.CostantiDB.DELETE;
- import static org.openspcoop2.core.constants.CostantiDB.UPDATE;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.util.ArrayList;
- import java.util.List;
- import org.openspcoop2.core.byok.IDriverBYOK;
- import org.openspcoop2.core.commons.DBUtils;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.constants.ProprietariProtocolProperty;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.id.IDGruppo;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.Azione;
- import org.openspcoop2.core.registry.Documento;
- import org.openspcoop2.core.registry.GruppoAccordo;
- import org.openspcoop2.core.registry.PortType;
- import org.openspcoop2.core.registry.Resource;
- import org.openspcoop2.core.registry.constants.CostantiRegistroServizi;
- import org.openspcoop2.core.registry.constants.FormatoSpecifica;
- import org.openspcoop2.core.registry.constants.MessageType;
- import org.openspcoop2.core.registry.constants.ProfiloCollaborazione;
- import org.openspcoop2.core.registry.constants.ProprietariDocumento;
- import org.openspcoop2.core.registry.constants.RuoliDocumento;
- import org.openspcoop2.core.registry.constants.ServiceBinding;
- import org.openspcoop2.core.registry.constants.StatoFunzionalita;
- import org.openspcoop2.core.registry.driver.BeanUtilities;
- import org.openspcoop2.core.registry.driver.DriverRegistroServiziException;
- import org.openspcoop2.core.registry.driver.IDAccordoFactory;
- import org.openspcoop2.utils.date.DateManager;
- import org.openspcoop2.utils.jdbc.JDBCUtilities;
- import org.openspcoop2.utils.sql.ISQLQueryObject;
- import org.openspcoop2.utils.sql.SQLObjectFactory;
- import org.slf4j.Logger;
- /**
- * Classe utilizzata per effettuare query ad un registro dei servizi openspcoop
- * formato db.
- *
- *
- * @author Sandra Giangrandi (sandra@link.it)
- * @author Stefano Corallo (corallo@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DriverRegistroServiziDB_accordiLIB {
-
- private DriverRegistroServiziDB_accordiLIB() {}
-
- private static final String ACCORDO_DIVERSO_NULL = "L'accordo non può essere null.";
- private static final String NOME_ACCORDO_NON_VALIDO = "Il nome dell'accordo non è valido.";
-
- private static void logDebug(Logger log, String msg) {
- if(log!=null) {
- log.debug(msg);
- }
- }
-
- private static void logError(Logger log, String msg, Exception e) {
- if(log!=null) {
- log.error(msg,e);
- }
- }
-
- public static void createAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio,
- Connection con, String tabellaSoggetti, Logger log, IDAccordoFactory idAccordoFactory, IDriverBYOK driverBYOK) throws DriverRegistroServiziException {
- if (accordoServizio == null)
- throw new DriverRegistroServiziException(ACCORDO_DIVERSO_NULL);
- String nome = accordoServizio.getNome();
- if (nome == null || nome.equals(""))
- throw new DriverRegistroServiziException(NOME_ACCORDO_NON_VALIDO);
- ServiceBinding serviceBinding = accordoServizio.getServiceBinding();
- MessageType messageType = accordoServizio.getMessageType();
-
- StatoFunzionalita confermaRicezione = accordoServizio.getConfermaRicezione();
- StatoFunzionalita conegnaInOrdine = accordoServizio.getConsegnaInOrdine();
- String descrizione = accordoServizio.getDescrizione();
- StatoFunzionalita filtroDuplicati = accordoServizio.getFiltroDuplicati();
- StatoFunzionalita identificativoCollaborazione = accordoServizio.getIdCollaborazione();
- StatoFunzionalita identificativoRiferimentoRichiesta = accordoServizio.getIdRiferimentoRichiesta();
- ProfiloCollaborazione profiloCollaborazione = accordoServizio.getProfiloCollaborazione();
- String scadenza = accordoServizio.getScadenza();
- boolean utilizzioSenzaAzione = accordoServizio.getUtilizzoSenzaAzione();
- String wsdlConcettuale = (accordoServizio.getByteWsdlConcettuale()!=null ? new String(accordoServizio.getByteWsdlConcettuale()) : null);
- String wsdlDefinitorio = (accordoServizio.getByteWsdlDefinitorio()!=null ? new String(accordoServizio.getByteWsdlDefinitorio()) : null);
- String wsdlLogicoErogatore = (accordoServizio.getByteWsdlLogicoErogatore()!=null ? new String(accordoServizio.getByteWsdlLogicoErogatore()) : null);
- String wsdlLogicoFruitore = (accordoServizio.getByteWsdlLogicoFruitore()!=null ? new String(accordoServizio.getByteWsdlLogicoFruitore()) : null);
- String conversazioneConcettuale = (accordoServizio.getByteSpecificaConversazioneConcettuale()!=null ? new String(accordoServizio.getByteSpecificaConversazioneConcettuale()) : null);
- String conversazioneErogatore = (accordoServizio.getByteSpecificaConversazioneErogatore()!=null ? new String(accordoServizio.getByteSpecificaConversazioneErogatore()) : null);
- String conversazioneFruitore = (accordoServizio.getByteSpecificaConversazioneFruitore()!=null ? new String(accordoServizio.getByteSpecificaConversazioneFruitore()) : null);
- String superUser = accordoServizio.getSuperUser();
- FormatoSpecifica formatoSpecifica = accordoServizio.getFormatoSpecifica();
- wsdlConcettuale = wsdlConcettuale!=null && !"".equals(wsdlConcettuale.trim().replace("\n", "")) ? wsdlConcettuale : null;
- wsdlDefinitorio = wsdlDefinitorio!=null && !"".equals(wsdlDefinitorio.trim().replace("\n", "")) ? wsdlDefinitorio : null;
- wsdlLogicoErogatore = wsdlLogicoErogatore!=null && !"".equals(wsdlLogicoErogatore.trim().replace("\n", "")) ? wsdlLogicoErogatore : null;
- wsdlLogicoFruitore = wsdlLogicoFruitore!=null && !"".equals(wsdlLogicoFruitore.trim().replace("\n", "")) ? wsdlLogicoFruitore : null;
- conversazioneConcettuale = conversazioneConcettuale!=null && !"".equals(conversazioneConcettuale.trim().replace("\n", "")) ? conversazioneConcettuale : null;
- conversazioneErogatore = conversazioneErogatore!=null && !"".equals(conversazioneErogatore.trim().replace("\n", "")) ? conversazioneErogatore : null;
- conversazioneFruitore = conversazioneFruitore!=null && !"".equals(conversazioneFruitore.trim().replace("\n", "")) ? conversazioneFruitore : null;
- String utenteRichiedente = null;
- if(accordoServizio.getProprietaOggetto()!=null && accordoServizio.getProprietaOggetto().getUtenteRichiedente()!=null) {
- utenteRichiedente = accordoServizio.getProprietaOggetto().getUtenteRichiedente();
- }
- else {
- utenteRichiedente = superUser;
- }
-
- Timestamp dataCreazione = null;
- if(accordoServizio.getProprietaOggetto()!=null && accordoServizio.getProprietaOggetto().getDataCreazione()!=null) {
- dataCreazione = new Timestamp(accordoServizio.getProprietaOggetto().getDataCreazione().getTime());
- }
- else if(accordoServizio.getOraRegistrazione()!=null){
- dataCreazione = new Timestamp(accordoServizio.getOraRegistrazione().getTime());
- }
- else {
- dataCreazione = DateManager.getTimestamp();
- }
-
- String sqlQuery = "";
- PreparedStatement stm = null;
-
- try {
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.ACCORDI);
- sqlQueryObject.addInsertField("service_binding", "?");
- sqlQueryObject.addInsertField("message_type", "?");
- sqlQueryObject.addInsertField("conferma_ricezione", "?");
- sqlQueryObject.addInsertField("consegna_in_ordine", "?");
- sqlQueryObject.addInsertField("descrizione", "?");
- sqlQueryObject.addInsertField("filtro_duplicati", "?");
- sqlQueryObject.addInsertField("identificativo_collaborazione", "?");
- sqlQueryObject.addInsertField("id_riferimento_richiesta", "?");
- sqlQueryObject.addInsertField("nome", "?");
- sqlQueryObject.addInsertField("profilo_collaborazione", "?");
- sqlQueryObject.addInsertField("scadenza", "?");
- sqlQueryObject.addInsertField("formato_specifica", "?");
- sqlQueryObject.addInsertField("wsdl_concettuale", "?");
- sqlQueryObject.addInsertField("wsdl_definitorio", "?");
- sqlQueryObject.addInsertField("wsdl_logico_erogatore", "?");
- sqlQueryObject.addInsertField("wsdl_logico_fruitore", "?");
- sqlQueryObject.addInsertField("spec_conv_concettuale", "?");
- sqlQueryObject.addInsertField("spec_conv_erogatore", "?");
- sqlQueryObject.addInsertField("spec_conv_fruitore", "?");
- sqlQueryObject.addInsertField("superuser", "?");
- sqlQueryObject.addInsertField("utilizzo_senza_azione", "?");
- sqlQueryObject.addInsertField("privato", "?");
- if(accordoServizio.getStatoPackage()!=null)
- sqlQueryObject.addInsertField("stato", "?");
- sqlQueryObject.addInsertField("canale", "?");
- if(accordoServizio.getSoggettoReferente()!=null)
- sqlQueryObject.addInsertField("id_referente", "?");
- sqlQueryObject.addInsertField("versione", "?");
- if(accordoServizio.getOraRegistrazione()!=null)
- sqlQueryObject.addInsertField("ora_registrazione", "?");
- if(utenteRichiedente!=null) {
- sqlQueryObject.addInsertField(CostantiDB.PROPRIETA_OGGETTO_UTENTE_RICHIEDENTE, "?");
- }
- if(dataCreazione!=null) {
- sqlQueryObject.addInsertField(CostantiDB.PROPRIETA_OGGETTO_DATA_CREAZIONE, "?");
- }
- sqlQuery = sqlQueryObject.createSQLInsert();
- stm = con.prepareStatement(sqlQuery);
- int index = 1;
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(serviceBinding));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(messageType));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(confermaRicezione));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(conegnaInOrdine));
- stm.setString(index++, descrizione);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(filtroDuplicati));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(identificativoCollaborazione));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(identificativoRiferimentoRichiesta));
- stm.setString(index++, nome);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(profiloCollaborazione));
- stm.setString(index++, scadenza);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(formatoSpecifica));
- stm.setString(index++, wsdlConcettuale!=null && !wsdlConcettuale.trim().equals("") ? wsdlConcettuale : null);
- stm.setString(index++, wsdlDefinitorio!=null && !wsdlDefinitorio.trim().equals("") ? wsdlDefinitorio : null );
- stm.setString(index++ ,wsdlLogicoErogatore!=null && !wsdlLogicoErogatore.trim().equals("") ? wsdlLogicoErogatore : null );
- stm.setString(index++, wsdlLogicoFruitore!=null && !wsdlLogicoFruitore.trim().equals("") ? wsdlLogicoFruitore : null );
- stm.setString(index++, conversazioneConcettuale!=null && !conversazioneConcettuale.trim().equals("") ? conversazioneConcettuale : null);
- stm.setString(index++ ,conversazioneErogatore!=null && !conversazioneErogatore.trim().equals("") ? conversazioneErogatore : null );
- stm.setString(index++, conversazioneFruitore!=null && !conversazioneFruitore.trim().equals("") ? conversazioneFruitore : null );
- stm.setString(index++, superUser);
- stm.setInt(index++, utilizzioSenzaAzione ? CostantiDB.TRUE : CostantiDB.FALSE);
- if (accordoServizio.getPrivato()!=null && accordoServizio.getPrivato())
- stm.setInt(index++, 1);
- else
- stm.setInt(index++, 0);
- if(accordoServizio.getStatoPackage()!=null){
- stm.setString(index, accordoServizio.getStatoPackage());
- index++;
- }
- stm.setString(index, accordoServizio.getCanale());
- index++;
-
- long idReferente = -1;
- if(accordoServizio.getSoggettoReferente()!=null){
- idReferente = DBUtils.getIdSoggetto(accordoServizio.getSoggettoReferente().getNome(), accordoServizio.getSoggettoReferente().getTipo(), con, DriverRegistroServiziDB_LIB.tipoDB, tabellaSoggetti);
- if(idReferente<=0){
- throw new DriverRegistroServiziException("Soggetto Referente ["+accordoServizio.getSoggettoReferente().getTipo()+"/"+accordoServizio.getSoggettoReferente().getNome()+"] non trovato");
- }
- stm.setLong(index, idReferente);
- index++;
- }
- stm.setInt(index, accordoServizio.getVersione());
- index++;
- if(accordoServizio.getOraRegistrazione()!=null){
- stm.setTimestamp(index, new Timestamp(accordoServizio.getOraRegistrazione().getTime()));
- index++;
- }
-
- if(utenteRichiedente!=null) {
- stm.setString(index, utenteRichiedente);
- index++;
- }
-
- if(dataCreazione!=null) {
- stm.setTimestamp(index, dataCreazione);
- index++;
- }
- String msgDebug = "inserisco accordoServizio : " + DriverRegistroServiziDB_LIB.formatSQLString(sqlQuery,
- serviceBinding, messageType,
- confermaRicezione, conegnaInOrdine, descrizione,
- filtroDuplicati, identificativoCollaborazione, identificativoRiferimentoRichiesta, nome, profiloCollaborazione, scadenza,
- wsdlConcettuale, wsdlDefinitorio, wsdlLogicoErogatore, wsdlLogicoFruitore,
- conversazioneConcettuale, conversazioneErogatore, conversazioneFruitore,
- superUser, accordoServizio.getUtilizzoSenzaAzione(),
- (accordoServizio.getPrivato()!=null && accordoServizio.getPrivato()));
- log.debug(msgDebug);
- // eseguo la query
- stm.executeUpdate();
- stm.close();
- // recupero l-id dell'accordo appena inserito
- IDSoggetto soggettoReferente = null;
- if(accordoServizio.getSoggettoReferente()!=null){
- soggettoReferente = new IDSoggetto(accordoServizio.getSoggettoReferente().getTipo(),accordoServizio.getSoggettoReferente().getNome());
- }
- IDAccordo idAccordoObject = idAccordoFactory.getIDAccordoFromValues(accordoServizio.getNome(),soggettoReferente,accordoServizio.getVersione());
- long idAccordo = DBUtils.getIdAccordoServizioParteComune(idAccordoObject, con, DriverRegistroServiziDB_LIB.tipoDB);
- if (idAccordo<=0) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::createAccordoServizio] non riesco a trovare l'id del'Accordo inserito");
- }
- accordoServizio.setId(idAccordo);
- // aggiungo le eventuali azioni che c-erano
-
- Azione azione = null;
- for (int i = 0; i < accordoServizio.sizeAzioneList(); i++) {
- azione = accordoServizio.getAzione(i);
- DriverRegistroServiziDB_accordiSoapLIB.CRUDAzione(CostantiDB.CREATE,accordoServizio, azione, con, idAccordo, driverBYOK);
- }
- logDebug(log, "inserite " + accordoServizio.sizeAzioneList() + " azioni relative all'accordo :" + nome + " id :" + idAccordo);
- PortType pt = null;
- for (int i = 0; i < accordoServizio.sizePortTypeList(); i++) {
- pt = accordoServizio.getPortType(i);
- DriverRegistroServiziDB_accordiSoapLIB.CRUDPortType(CostantiDB.CREATE,accordoServizio,pt, con, idAccordo, driverBYOK);
- }
- logDebug(log, "inserite " + accordoServizio.sizePortTypeList() + " porttype relative all'accordo :" + nome + " id :" + idAccordo);
- Resource resource = null;
- for (int i = 0; i < accordoServizio.sizeResourceList(); i++) {
- resource = accordoServizio.getResource(i);
- DriverRegistroServiziDB_accordiRestLIB.CRUDResource(CostantiDB.CREATE,accordoServizio,resource, con, idAccordo, driverBYOK);
- }
- logDebug(log, "inserite " + accordoServizio.sizeResourceList() + " resources relative all'accordo :" + nome + " id :" + idAccordo);
-
- // Gruppi
- if(accordoServizio.getGruppi()!=null && accordoServizio.getGruppi().sizeGruppoList()>0) {
- for (int i = 0; i < accordoServizio.getGruppi().sizeGruppoList(); i++) {
- GruppoAccordo gruppo = accordoServizio.getGruppi().getGruppo(i);
- DriverRegistroServiziDB_accordiLIB.CRUDAccordoGruppo(CostantiDB.CREATE,accordoServizio, gruppo, con, idAccordo);
- }
- logDebug(log, "inserite " + accordoServizio.sizeAzioneList() + " gruppi relative all'accordo :" + nome + " id :" + idAccordo);
- }
-
- // Accordo servizio composto
- if(accordoServizio.getServizioComposto()!=null){
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.CREATE,
- accordoServizio.getServizioComposto(), con, idAccordo);
- }
- // Documenti generici accordo di servizio
- List<Documento> documenti = new ArrayList<>();
- // Allegati
- for(int i=0; i<accordoServizio.sizeAllegatoList(); i++){
- Documento doc = accordoServizio.getAllegato(i);
- doc.setRuolo(RuoliDocumento.allegato.toString());
- documenti.add(doc);
- }
- // Specifiche Semiformali
- for(int i=0; i<accordoServizio.sizeSpecificaSemiformaleList(); i++){
- Documento doc = accordoServizio.getSpecificaSemiformale(i);
- doc.setRuolo(RuoliDocumento.specificaSemiformale.toString());
- documenti.add(doc);
- }
- // Specifiche Coordinamento
- if(accordoServizio.getServizioComposto()!=null){
- for(int i=0; i<accordoServizio.getServizioComposto().sizeSpecificaCoordinamentoList(); i++){
- Documento doc = accordoServizio.getServizioComposto().getSpecificaCoordinamento(i);
- doc.setRuolo(RuoliDocumento.specificaCoordinamento.toString());
- documenti.add(doc);
- }
- }
- // CRUD
- DriverRegistroServiziDB_documentiLIB.CRUDDocumento(CostantiDB.CREATE, documenti, idAccordo, ProprietariDocumento.accordoServizio, con, DriverRegistroServiziDB_LIB.tipoDB);
-
- // ProtocolProperties
- DriverRegistroServiziDB_LIB.CRUDProtocolProperty(CostantiDB.CREATE, accordoServizio.getProtocolPropertyList(),
- idAccordo, ProprietariProtocolProperty.ACCORDO_SERVIZIO_PARTE_COMUNE, con, DriverRegistroServiziDB_LIB.tipoDB, driverBYOK);
-
- } catch (SQLException se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::createAccordoServizioParteComune] SQLException [" + se.getMessage() + "].",se);
- } catch (DriverRegistroServiziException e) {
- throw new DriverRegistroServiziException(e.getMessage(),e);
- }catch (Exception e) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::createAccordoServizioParteComune] Exception [" + e.getMessage() + "].",e);
- }finally {
- JDBCUtilities.closeResources(stm);
- }
- }
-
-
-
- public static void updateAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio,
- Connection con, String tabellaSoggetti, Logger log, IDAccordoFactory idAccordoFactory, IDriverBYOK driverBYOK) throws DriverRegistroServiziException {
- if (accordoServizio == null)
- throw new DriverRegistroServiziException(ACCORDO_DIVERSO_NULL);
- String nome = accordoServizio.getNome();
- if (nome == null || nome.equals(""))
- throw new DriverRegistroServiziException(NOME_ACCORDO_NON_VALIDO);
- PreparedStatement stm = null;
- ResultSet rs =null;
- String sqlQuery = "";
- ServiceBinding serviceBinding = accordoServizio.getServiceBinding();
- MessageType messageType = accordoServizio.getMessageType();
-
- StatoFunzionalita confermaRicezione = accordoServizio.getConfermaRicezione();
- StatoFunzionalita conegnaInOrdine = accordoServizio.getConsegnaInOrdine();
- String descrizione = accordoServizio.getDescrizione();
- StatoFunzionalita filtroDuplicati = accordoServizio.getFiltroDuplicati();
- StatoFunzionalita identificativoCollaborazione = accordoServizio.getIdCollaborazione();
- StatoFunzionalita identificativoRiferimentoRichiesta = accordoServizio.getIdRiferimentoRichiesta();
- ProfiloCollaborazione profiloCollaborazione = accordoServizio.getProfiloCollaborazione();
- String scadenza = accordoServizio.getScadenza();
- boolean utilizzioSenzaAzione = accordoServizio.getUtilizzoSenzaAzione();
- FormatoSpecifica formatoSpecifica = accordoServizio.getFormatoSpecifica();
-
- String wsdlConcettuale = (accordoServizio.getByteWsdlConcettuale()!=null ? new String(accordoServizio.getByteWsdlConcettuale()) : null);
- String wsdlDefinitorio = (accordoServizio.getByteWsdlDefinitorio()!=null ? new String(accordoServizio.getByteWsdlDefinitorio()) : null);
- String wsdlLogicoErogatore = (accordoServizio.getByteWsdlLogicoErogatore()!=null ? new String(accordoServizio.getByteWsdlLogicoErogatore()) : null);
- String wsdlLogicoFruitore = (accordoServizio.getByteWsdlLogicoFruitore()!=null ? new String(accordoServizio.getByteWsdlLogicoFruitore()) : null);
- String conversazioneConcettuale = (accordoServizio.getByteSpecificaConversazioneConcettuale()!=null ? new String(accordoServizio.getByteSpecificaConversazioneConcettuale()) : null);
- String conversazioneErogatore = (accordoServizio.getByteSpecificaConversazioneErogatore()!=null ? new String(accordoServizio.getByteSpecificaConversazioneErogatore()) : null);
- String conversazioneFruitore = (accordoServizio.getByteSpecificaConversazioneFruitore()!=null ? new String(accordoServizio.getByteSpecificaConversazioneFruitore()) : null);
- String superUser = accordoServizio.getSuperUser();
- wsdlConcettuale = wsdlConcettuale!=null && !"".equals(wsdlConcettuale.trim().replace("\n", "")) ? wsdlConcettuale : null;
- wsdlDefinitorio = wsdlDefinitorio!=null && !"".equals(wsdlDefinitorio.trim().replace("\n", "")) ? wsdlDefinitorio : null;
- wsdlLogicoErogatore = wsdlLogicoErogatore!=null && !"".equals(wsdlLogicoErogatore.trim().replace("\n", "")) ? wsdlLogicoErogatore : null;
- wsdlLogicoFruitore = wsdlLogicoFruitore!=null && !"".equals(wsdlLogicoFruitore.trim().replace("\n", "")) ? wsdlLogicoFruitore : null;
- conversazioneConcettuale = conversazioneConcettuale!=null && !"".equals(conversazioneConcettuale.trim().replace("\n", "")) ? conversazioneConcettuale : null;
- conversazioneErogatore = conversazioneErogatore!=null && !"".equals(conversazioneErogatore.trim().replace("\n", "")) ? conversazioneErogatore : null;
- conversazioneFruitore = conversazioneFruitore!=null && !"".equals(conversazioneFruitore.trim().replace("\n", "")) ? conversazioneFruitore : null;
- try {
- IDAccordo idAccordoAttualeInseritoDB = null;
- if(accordoServizio.getOldIDAccordoForUpdate()!=null){
- idAccordoAttualeInseritoDB = accordoServizio.getOldIDAccordoForUpdate();
- }else{
- idAccordoAttualeInseritoDB = idAccordoFactory.getIDAccordoFromAccordo(accordoServizio);
- }
- long idAccordoLong = -1;
- try{
- idAccordoLong = DBUtils.getIdAccordoServizioParteComune(idAccordoAttualeInseritoDB, con,DriverRegistroServiziDB_LIB.tipoDB);
- }catch(Exception e){
- if(accordoServizio.getOldIDAccordoForUpdate()!=null){
- // Provo con soggetto attuale
- if(accordoServizio.getSoggettoReferente()!=null){
- idAccordoAttualeInseritoDB = idAccordoFactory.getIDAccordoFromValues(idAccordoAttualeInseritoDB.getNome(),
- new IDSoggetto(accordoServizio.getSoggettoReferente().getTipo(),
- accordoServizio.getSoggettoReferente().getNome()),
- idAccordoAttualeInseritoDB.getVersione());
- }else{
- idAccordoAttualeInseritoDB = idAccordoFactory.getIDAccordoFromValues(idAccordoAttualeInseritoDB.getNome(),null,
- idAccordoAttualeInseritoDB.getVersione());
- }
- idAccordoLong = DBUtils.getIdAccordoServizioParteComune(idAccordoAttualeInseritoDB, con,DriverRegistroServiziDB_LIB.tipoDB);
- }else{
- throw e;
- }
- }
- if (idAccordoLong <= 0)
- throw new DriverRegistroServiziException("Impossibile recuperare l'id dell'Accordo di Servizio : " + nome);
- String utenteUltimaModifica = null;
- if(accordoServizio.getProprietaOggetto()!=null && accordoServizio.getProprietaOggetto().getUtenteUltimaModifica()!=null) {
- utenteUltimaModifica = accordoServizio.getProprietaOggetto().getUtenteUltimaModifica();
- }
- else {
- utenteUltimaModifica = superUser;
- }
-
- Timestamp dataUltimaModifica = null;
- if(accordoServizio.getProprietaOggetto()!=null && accordoServizio.getProprietaOggetto().getDataUltimaModifica()!=null) {
- dataUltimaModifica = new Timestamp(accordoServizio.getProprietaOggetto().getDataUltimaModifica().getTime());
- }
- else {
- dataUltimaModifica = DateManager.getTimestamp();
- }
-
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addUpdateTable(CostantiDB.ACCORDI);
- sqlQueryObject.addUpdateField("service_binding", "?");
- sqlQueryObject.addUpdateField("message_type", "?");
- sqlQueryObject.addUpdateField("conferma_ricezione", "?");
- sqlQueryObject.addUpdateField("consegna_in_ordine", "?");
- sqlQueryObject.addUpdateField("descrizione", "?");
- sqlQueryObject.addUpdateField("filtro_duplicati", "?");
- sqlQueryObject.addUpdateField("identificativo_collaborazione", "?");
- sqlQueryObject.addUpdateField("id_riferimento_richiesta", "?");
- sqlQueryObject.addUpdateField("nome", "?");
- sqlQueryObject.addUpdateField("profilo_collaborazione", "?");
- sqlQueryObject.addUpdateField("scadenza", "?");
- sqlQueryObject.addUpdateField("formato_specifica", "?");
- sqlQueryObject.addUpdateField("wsdl_concettuale", "?");
- sqlQueryObject.addUpdateField("wsdl_definitorio", "?");
- sqlQueryObject.addUpdateField("wsdl_logico_erogatore", "?");
- sqlQueryObject.addUpdateField("wsdl_logico_fruitore", "?");
- sqlQueryObject.addUpdateField("spec_conv_concettuale", "?");
- sqlQueryObject.addUpdateField("spec_conv_erogatore", "?");
- sqlQueryObject.addUpdateField("spec_conv_fruitore", "?");
- sqlQueryObject.addUpdateField("superuser", "?");
- sqlQueryObject.addUpdateField("utilizzo_senza_azione", "?");
- sqlQueryObject.addUpdateField("privato", "?");
- if(accordoServizio.getStatoPackage()!=null){
- sqlQueryObject.addUpdateField("stato", "?");
- }
- sqlQueryObject.addUpdateField("canale", "?");
-
- if(accordoServizio.getOraRegistrazione()!=null)
- sqlQueryObject.addUpdateField("ora_registrazione", "?");
- sqlQueryObject.addUpdateField("id_referente", "?");
- sqlQueryObject.addUpdateField("versione", "?");
-
- if(utenteUltimaModifica!=null) {
- sqlQueryObject.addUpdateField(CostantiDB.PROPRIETA_OGGETTO_UTENTE_ULTIMA_MODIFICA, "?");
- }
- if(dataUltimaModifica!=null) {
- sqlQueryObject.addUpdateField(CostantiDB.PROPRIETA_OGGETTO_DATA_ULTIMA_MODIFICA, "?");
- }
- sqlQueryObject.addWhereCondition("id=?");
- sqlQuery = sqlQueryObject.createSQLUpdate();
- stm = con.prepareStatement(sqlQuery);
- int index = 1;
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(serviceBinding));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(messageType));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(confermaRicezione));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(conegnaInOrdine));
- stm.setString(index++, descrizione);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(filtroDuplicati));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(identificativoCollaborazione));
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(identificativoRiferimentoRichiesta));
- stm.setString(index++, nome);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(profiloCollaborazione));
- stm.setString(index++, scadenza);
- stm.setString(index++, DriverRegistroServiziDB_LIB.getValue(formatoSpecifica));
- stm.setString(index++, wsdlConcettuale);
- stm.setString(index++, wsdlDefinitorio);
- stm.setString(index++, wsdlLogicoErogatore);
- stm.setString(index++, wsdlLogicoFruitore);
- stm.setString(index++, conversazioneConcettuale);
- stm.setString(index++, conversazioneErogatore);
- stm.setString(index++, conversazioneFruitore);
- stm.setString(index++, superUser);
- stm.setInt(index++, utilizzioSenzaAzione ? CostantiDB.TRUE : CostantiDB.FALSE);
- if(accordoServizio.getPrivato()!=null && accordoServizio.getPrivato())
- stm.setInt(index++, 1);
- else
- stm.setInt(index++, 0);
- if(accordoServizio.getStatoPackage()!=null){
- stm.setString(index++, accordoServizio.getStatoPackage());
- }
- stm.setString(index++, accordoServizio.getCanale());
-
- if(accordoServizio.getOraRegistrazione()!=null){
- stm.setTimestamp(index++, new Timestamp(accordoServizio.getOraRegistrazione().getTime()));
- }
- if(accordoServizio.getSoggettoReferente()!=null) {
- long idSRef = DBUtils.getIdSoggetto(accordoServizio.getSoggettoReferente().getNome(),
- accordoServizio.getSoggettoReferente().getTipo(), con, DriverRegistroServiziDB_LIB.tipoDB,tabellaSoggetti);
- stm.setLong(index++, idSRef);
- }else{
- stm.setLong(index++, CostantiRegistroServizi.SOGGETTO_REFERENTE_DEFAULT);
- }
- stm.setInt(index++, accordoServizio.getVersione());
- if(utenteUltimaModifica!=null) {
- stm.setString(index++, utenteUltimaModifica);
- }
-
- if(dataUltimaModifica!=null) {
- stm.setTimestamp(index++, dataUltimaModifica);
- }
-
- stm.setLong(index++, idAccordoLong);
- String msgDebug = "update accordoServizio : " +
- DriverRegistroServiziDB_LIB.formatSQLString(sqlQuery,
- serviceBinding, messageType,
- confermaRicezione, conegnaInOrdine, descrizione,
- filtroDuplicati, identificativoCollaborazione, identificativoRiferimentoRichiesta, nome, profiloCollaborazione, scadenza,
- wsdlConcettuale, wsdlDefinitorio, wsdlLogicoErogatore, wsdlLogicoFruitore,
- conversazioneConcettuale, conversazioneErogatore, conversazioneFruitore,
- superUser,utilizzioSenzaAzione, idAccordoLong);
- logDebug(log, msgDebug);
- stm.executeUpdate();
- stm.close();
- //aggiorno le azioni
- //possibile ottimizzazione
- //la lista contiene tutte e sole le azioni necessarie
- //prima cancello le azioni e poi reinserisco quelle nuove
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.ACCORDI_AZIONI);
- sqlQueryObject.addWhereCondition("id_accordo=?");
- String updateString = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(updateString);
- stm.setLong(1, idAccordoLong);
- int n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" azioni associate all'accordo "+idAccordoLong);
- for (int i = 0; i < accordoServizio.sizeAzioneList(); i++) {
- Azione azione = accordoServizio.getAzione(i);
- String profiloAzione = azione.getProfAzione();
- //se profilo azione = default allora utilizzo il profilo collaborazione dell'accordo
- if(profiloAzione!=null && profiloAzione.equals(CostantiRegistroServizi.PROFILO_AZIONE_DEFAULT))
- {
- azione.setProfiloCollaborazione(profiloCollaborazione);
- }
- DriverRegistroServiziDB_accordiSoapLIB.CRUDAzione(CostantiDB.CREATE, accordoServizio,azione, con, idAccordoLong, driverBYOK);
- }
- logDebug(log, "Inserite "+accordoServizio.sizeAzioneList()+" azioni associate all'accordo "+idAccordoLong);
- //aggiorno i port type
- //la lista contiene tutte e soli i port type necessari
- //prima cancello i port type e poi reinserisco quelle nuove
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_accordo = ?");
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<Long> idPT = new ArrayList<>();
- while(rs.next()){
- idPT.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
- logDebug(log, "Trovati "+idPT.size()+" port type...");
- while(!idPT.isEmpty()){
- Long idPortType = idPT.remove(0);
- // Seleziono id port type azione
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_port_type=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortType);
- rs=stm.executeQuery();
- List<Long> idPTAzione = new ArrayList<>();
- while(rs.next()){
- idPTAzione.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
- logDebug(log, "Trovati "+idPTAzione.size()+" port type azioni...");
- // Elimino i messages
- while(!idPTAzione.isEmpty()){
- Long idPortTypeAzione = idPTAzione.remove(0);
- logDebug(log, "Eliminazione message con id["+idPortTypeAzione+"]...");
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE_AZIONI_OPERATION_MESSAGES);
- sqlQueryObject.addWhereCondition("id_port_type_azione=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortTypeAzione);
- n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" messages di un'azione con id["+idPortTypeAzione+"] del port type ["+idPortType+"] associate all'accordo "+idAccordoLong);
- }
- logDebug(log, "Elimino port type azione del port types ["+idPortType+"]...");
- // Elimino port types azioni
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObject.addWhereCondition("id_port_type=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortType);
- n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" azioni del port type ["+idPortType+"] associate all'accordo "+idAccordoLong);
- }
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE);
- sqlQueryObject.addWhereCondition("id_accordo=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" port type associate all'accordo "+idAccordoLong);
- PortType pt = null;
- for (int i = 0; i < accordoServizio.sizePortTypeList(); i++) {
- pt = accordoServizio.getPortType(i);
- DriverRegistroServiziDB_accordiSoapLIB.CRUDPortType(CostantiDB.CREATE,accordoServizio,pt, con, idAccordoLong, driverBYOK);
- }
- logDebug(log, "inserite " + accordoServizio.sizePortTypeList() + " porttype relative all'accordo :" + nome + " id :" + idAccordoLong);
- // risorse
- //la lista contiene tutte e sole le risorse necessarie
- //prima cancello le risorse e poi reinserisco quelle nuove
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.API_RESOURCES);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_accordo = ?");
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<Long> idResources = new ArrayList<>();
- while(rs.next()){
- idResources.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
-
- n=0;
- while(!idResources.isEmpty()){
- Long idR = idResources.remove(0);
- Resource resource = new Resource();
- resource.setId(idR);
- n = n + DriverRegistroServiziDB_accordiRestLIB.CRUDResource(CostantiDB.DELETE, accordoServizio, resource, con, idAccordoLong, driverBYOK);
- }
- logDebug(log, "Cancellate "+n+" resources associate all'accordo :" + nome + " id :" + idAccordoLong);
-
- Resource resource = null;
- for (int i = 0; i < accordoServizio.sizeResourceList(); i++) {
- resource = accordoServizio.getResource(i);
- DriverRegistroServiziDB_accordiRestLIB.CRUDResource(CostantiDB.CREATE,accordoServizio,resource, con, idAccordoLong, driverBYOK);
- }
- logDebug(log, "inserite " + accordoServizio.sizeResourceList() + " resources relative all'accordo :" + nome + " id :" + idAccordoLong);
-
-
-
- // Gruppi
- //la lista contiene tutte e sole le risorse necessarie
- //prima cancello le risorse e poi reinserisco quelle nuove
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addSelectAliasField(CostantiDB.GRUPPI, "id", "identificativoGruppo");
- sqlQueryObject.addSelectAliasField(CostantiDB.GRUPPI, "nome", "nomeGruppo");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo = "+CostantiDB.GRUPPI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo = ?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<GruppoAccordo> gruppi = new ArrayList<>();
- while(rs.next()){
- GruppoAccordo gruppo = new GruppoAccordo();
- gruppo.setNome(rs.getString("nomeGruppo"));
- gruppo.setId(rs.getLong("identificativoGruppo"));
- gruppi.add(gruppo);
- }
- rs.close();
- stm.close();
-
- while(!gruppi.isEmpty()){
- GruppoAccordo gruppo = gruppi.remove(0);
- DriverRegistroServiziDB_accordiLIB.CRUDAccordoGruppo(CostantiDB.DELETE, accordoServizio, gruppo, con, idAccordoLong);
- }
- logDebug(log, "Cancellate "+n+" resources associate all'accordo :" + nome + " id :" + idAccordoLong);
-
- if(accordoServizio.getGruppi()!=null && accordoServizio.getGruppi().sizeGruppoList()>0) {
- for (int i = 0; i < accordoServizio.getGruppi().sizeGruppoList(); i++) {
- GruppoAccordo gruppo = accordoServizio.getGruppi().getGruppo(i);
- DriverRegistroServiziDB_accordiLIB.CRUDAccordoGruppo(CostantiDB.CREATE,accordoServizio, gruppo, con, idAccordoLong);
- }
- logDebug(log, "inserite " + accordoServizio.sizeAzioneList() + " gruppi relative all'accordo :" + nome + " id :" + idAccordoLong);
- }
-
-
-
- // Accordo servizio composto
- if(accordoServizio.getServizioComposto()!=null){
- // Elimino eventualmente se prima era presente
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.DELETE,
- null, con, idAccordoLong);
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.CREATE,
- accordoServizio.getServizioComposto(), con, idAccordoLong);
- }else{
- // Elimino eventualmente se prima era presente
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.DELETE,
- null, con, idAccordoLong);
- }
- // Documenti generici accordo di servizio
- List<Documento> documenti = new ArrayList<Documento>();
- // Allegati
- for(int i=0; i<accordoServizio.sizeAllegatoList(); i++){
- Documento doc = accordoServizio.getAllegato(i);
- doc.setRuolo(RuoliDocumento.allegato.toString());
- documenti.add(doc);
- }
- // Specifiche Semiformali
- for(int i=0; i<accordoServizio.sizeSpecificaSemiformaleList(); i++){
- Documento doc = accordoServizio.getSpecificaSemiformale(i);
- doc.setRuolo(RuoliDocumento.specificaSemiformale.toString());
- documenti.add(doc);
- }
- // Specifiche Coordinamento
- if(accordoServizio.getServizioComposto()!=null){
- for(int i=0; i<accordoServizio.getServizioComposto().sizeSpecificaCoordinamentoList(); i++){
- Documento doc = accordoServizio.getServizioComposto().getSpecificaCoordinamento(i);
- doc.setRuolo(RuoliDocumento.specificaCoordinamento.toString());
- documenti.add(doc);
- }
- }
- // CRUD
- DriverRegistroServiziDB_documentiLIB.CRUDDocumento(CostantiDB.UPDATE, documenti, idAccordoLong, ProprietariDocumento.accordoServizio, con, DriverRegistroServiziDB_LIB.tipoDB);
-
- // ProtocolProperties
- DriverRegistroServiziDB_LIB.CRUDProtocolProperty(CostantiDB.UPDATE, accordoServizio.getProtocolPropertyList(),
- idAccordoLong, ProprietariProtocolProperty.ACCORDO_SERVIZIO_PARTE_COMUNE, con, DriverRegistroServiziDB_LIB.tipoDB, driverBYOK);
-
-
- }catch (SQLException se) {
- logError(log, se.getMessage(),se);
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::updateAccordoServizio] SQLException [" + se.getMessage() + "].",se);
- }
- catch (Exception se) {
- logError(log, se.getMessage(),se);
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::updateAccordoServizio] Exception [" + se.getMessage() + "].",se);
- }finally {
- JDBCUtilities.closeResources(rs, stm);
- }
- }
-
-
-
- public static long CRUDAccordoGruppo(int type, AccordoServizioParteComune as,GruppoAccordo gruppo, Connection con, long idAccordo) throws DriverRegistroServiziException {
- PreparedStatement updateStmt = null;
- String updateQuery;
- long n = 0;
- if (idAccordo <= 0)
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB_LIB::CRUDAccordoGruppo] ID Accordo non valido.");
-
- try {
-
- IDGruppo idGruppo = new IDGruppo(gruppo.getNome());
- long idGruppoLong = DBUtils.getIdGruppo(idGruppo, con, DriverRegistroServiziDB_LIB.tipoDB);
- if(idGruppoLong<=0) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB_LIB::CRUDAccordoGruppo] Gruppo con nome '"+idGruppo.getNome()+"' non esistente.");
- }
-
- switch (type) {
- case CREATE:
-
- // create
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addInsertTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addInsertField("id_accordo", "?");
- sqlQueryObject.addInsertField("id_gruppo", "?");
- updateQuery = sqlQueryObject.createSQLInsert();
- updateStmt = con.prepareStatement(updateQuery);
- int index = 1;
- updateStmt.setLong(index++, idAccordo);
- updateStmt.setLong(index++, idGruppoLong);
- DriverRegistroServiziDB_LIB.logDebug("CRUDAccordoGruppo CREATE :\n"+
- DriverRegistroServiziDB_LIB.formatSQLString(updateQuery,idAccordo,idGruppoLong));
- n = updateStmt.executeUpdate();
- updateStmt.close();
- DriverRegistroServiziDB_LIB.logDebug("CRUDAccordoGruppo type = " + type + " row affected =" + n);
- break;
- case UPDATE:
-
- throw new DriverRegistroServiziException("Non supportato");
- case DELETE:
- // delete
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addWhereCondition("id_accordo=?");
- sqlQueryObject.addWhereCondition("id_gruppo=?");
- sqlQueryObject.setANDLogicOperator(true);
- String sqlQuery = sqlQueryObject.createSQLDelete();
- updateStmt = con.prepareStatement(sqlQuery);
- index = 1;
- updateStmt.setLong(index++, idAccordo);
- updateStmt.setLong(index++, idGruppoLong);
- n=updateStmt.executeUpdate();
- updateStmt.close();
- DriverRegistroServiziDB_LIB.logDebug("CRUDAccordoGruppo type = " + type + " row affected =" + n);
-
- break;
- }
- return n;
- } catch (SQLException se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB_LIB::CRUDAccordoGruppo] SQLException : " + se.getMessage(),se);
- } catch (Exception se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB_LIB::CRUDAccordoGruppo] Exception : " + se.getMessage(),se);
- } finally {
- JDBCUtilities.closeResources(updateStmt);
- }
- }
-
-
-
- public static ISQLQueryObject getSQLRicercaAccordiValidi() throws Exception{
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
-
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI);
-
- sqlQueryObject.addWhereExistsCondition(false, DriverRegistroServiziDB_accordiLIB.getSQLRicercaServiziValidi(CostantiDB.ACCORDI+".id",false));
-
- return sqlQueryObject;
- }
-
- /**
- *
- * @return Ritorna l' ISQLQueryObject con ? settato come id accordo, in modo da poterlo usare con il setParameter dello statement
- * @throws Exception
- */
-
- public static ISQLQueryObject getSQLRicercaServiziValidiByIdAccordo(boolean isErogazione) throws Exception{
- return DriverRegistroServiziDB_accordiLIB.getSQLRicercaServiziValidi("?",isErogazione);
- }
-
- private static ISQLQueryObject getSQLRicercaServiziValidi(String idAccordo,boolean isErogazione) throws Exception{
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
-
- // select * from port_type where
- sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE);
- // port_type.id_accordo=8
- sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".id_accordo="+idAccordo);
- // (EXISTS (select * from port_type_azioni where port_type_azioni.id_port_type=port_type.id))
- ISQLQueryObject sqlQueryObjectExistsAlmenoUnAzione = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObjectExistsAlmenoUnAzione.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAlmenoUnAzione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObject.addWhereExistsCondition(false, sqlQueryObjectExistsAlmenoUnAzione);
- // Gestione profili di collaborazione
- ISQLQueryObject sqlQueryServiziValidi = DriverRegistroServiziDB_accordiLIB.getSQLIndividuazioneServiziValidi(DriverRegistroServiziDB_LIB.tipoDB,isErogazione);
- sqlQueryObject.addWhereCondition("( "+sqlQueryServiziValidi.createSQLConditions()+" )");
- // And tra le condizioni
- sqlQueryObject.setANDLogicOperator(true);
- return sqlQueryObject;
- }
-
- public static ISQLQueryObject getSQLIndividuazioneServiziValidi(String tipoDatabase,boolean isErogazione) throws Exception{
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
-
-
- // (port_type.profilo_collaborazione='oneway')
- sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".profilo_collaborazione='oneway'");
-
-
- // (port_type.profilo_collaborazione='sincrono')
- sqlQueryObject.addWhereCondition(CostantiDB.PORT_TYPE+".profilo_collaborazione='sincrono'");
-
-
- // (
- // port_type.profilo_collaborazione='asincronoAsimmetrico' AND
- //
- // EXISTS (select * from port_type_azioni where port_type_azioni.id_port_type=port_type.id AND
- // port_type_azioni.correlata_servizio is null AND
- // port_type_azioni.correlata is null
- // ) AND
- //
- // EXISTS (select * from port_type_azioni where port_type_azioni.id_port_type=port_type.id AND
- // port_type_azioni.correlata_servizio is not null AND
- // port_type_azioni.correlata_servizio=port_type.nome AND
- // port_type_azioni.correlata is not null AND
- // port_type_azioni.correlata IN (
- // select nome from port_type_azioni where port_type_azioni.id_port_type=port_type.id)
- // )
- // )
- // )
- ISQLQueryObject sqlQueryObjectExistsAsinAsimRichiesta = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinAsimRichiesta.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinAsimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinAsimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio is null");
- sqlQueryObjectExistsAsinAsimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata is null");
- sqlQueryObjectExistsAsinAsimRichiesta.setANDLogicOperator(true);
-
- ISQLQueryObject sqlQueryObjectExistsAsinAsimRisposta = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinAsimRisposta.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinAsimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinAsimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio is not null");
- sqlQueryObjectExistsAsinAsimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio="+CostantiDB.PORT_TYPE+".nome");
- sqlQueryObjectExistsAsinAsimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata is not null");
- ISQLQueryObject sqlQueryObjectExistsAsinAsimRispostaCheckCorrelata = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinAsimRispostaCheckCorrelata.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinAsimRispostaCheckCorrelata.addSelectField(CostantiDB.PORT_TYPE_AZIONI, "nome");
- sqlQueryObjectExistsAsinAsimRispostaCheckCorrelata.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinAsimRisposta.addWhereINSelectSQLCondition(false, CostantiDB.PORT_TYPE_AZIONI+".correlata", sqlQueryObjectExistsAsinAsimRispostaCheckCorrelata);
- sqlQueryObjectExistsAsinAsimRisposta.setANDLogicOperator(true);
-
- sqlQueryObject.addWhereCondition(true,
- CostantiDB.PORT_TYPE+".profilo_collaborazione='asincronoAsimmetrico'",
- sqlQueryObject.getWhereExistsCondition(false, sqlQueryObjectExistsAsinAsimRichiesta),
- sqlQueryObject.getWhereExistsCondition(false,sqlQueryObjectExistsAsinAsimRisposta));
-
-
-
- /** (
- // port_type.profilo_collaborazione='asincronoSimmetrico' AND
- //
- // EXISTS (select * from port_type_azioni where port_type_azioni.id_port_type=port_type.id AND
- // port_type_azioni.correlata is null AND
- // port_type_azioni.correlata_servizio is null
- // ) AND
- //
- // EXISTS (select * from port_type as ptRicerca2,port_type_azioni where
- // ptRicerca2.id_accordo=port_type.id_accordo AND
- // ptRicerca2.profilo_collaborazione='asincronoSimmetrico' AND
- // ptRicerca2.nome <> port_type.nome AND
- // port_type_azioni.id_port_type=ptRicerca2.id AND
- // port_type_azioni.correlata_servizio is not null AND
- // port_type_azioni.correlata_servizio=port_type.nome AND
- // port_type_azioni.correlata is not null AND
- // port_type_azioni.correlata IN (
- // select nome from port_type_azioni where port_type_azioni.id_port_type=port_type.id
- // )
- // )
- // )*/
-
- ISQLQueryObject sqlQueryObjectExistsAsinSimRichiesta = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinSimRichiesta.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinSimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinSimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio is null");
- sqlQueryObjectExistsAsinSimRichiesta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata is null");
- sqlQueryObjectExistsAsinSimRichiesta.setANDLogicOperator(true);
-
- ISQLQueryObject sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- String portTypeAliasRicerca = "ptRicerca2";
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addFromTable(CostantiDB.PORT_TYPE+" as "+portTypeAliasRicerca);
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(portTypeAliasRicerca+".id_accordo="+CostantiDB.PORT_TYPE+".id_accordo");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(portTypeAliasRicerca+".profilo_collaborazione='asincronoSimmetrico'");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(portTypeAliasRicerca+".nome <> "+CostantiDB.PORT_TYPE+".nome");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+portTypeAliasRicerca+".id");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio is not null");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio="+CostantiDB.PORT_TYPE+".nome");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata is not null");
- ISQLQueryObject sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazioneCheckAzione = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazioneCheckAzione.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazioneCheckAzione.addSelectField(CostantiDB.PORT_TYPE_AZIONI, "nome");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazioneCheckAzione.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.addWhereINSelectSQLCondition(false, CostantiDB.PORT_TYPE_AZIONI+".correlata", sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazioneCheckAzione);
- sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione.setANDLogicOperator(true);
-
- sqlQueryObject.addWhereCondition(true,
- CostantiDB.PORT_TYPE+".profilo_collaborazione='asincronoSimmetrico'",
- sqlQueryObject.getWhereExistsCondition(false, sqlQueryObjectExistsAsinSimRichiesta),
- sqlQueryObject.getWhereExistsCondition(false,sqlQueryObjectExistsAsinSimRichiestaCheckCorrelazione));
-
-
-
- /** (
- // port_type.profilo_collaborazione='asincronoSimmetrico' AND
- //
- // EXISTS (select * from port_type_azioni where port_type_azioni.id_port_type=port_type.id AND
- // port_type_azioni.correlata is not null AND
- // port_type_azioni.correlata_servizio is not null AND
- // EXISTS (select * from port_type as ptRicerca2,port_type_azioni ptAzioniRicerca2 where
- // ptRicerca2.id_accordo=port_type.id_accordo AND
- // ptRicerca2.profilo_collaborazione='asincronoSimmetrico' AND
- // ptRicerca2.nome <> port_type.nome AND
- // ptAzioniRicerca2.id_port_type=ptRicerca2.id AND
- // ptAzioniRicerca2.correlata_servizio is null AND
- // ptRicerca2.nome=port_type_azioni.correlata_servizio AND
- // ptAzioniRicerca2.correlata is null AND
- // ptAzioniRicerca2.nome=port_type_azioni.correlata
- // )
- // )
- // )*/
- if(!isErogazione){
- ISQLQueryObject sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- String portTypeAliasRicercaAs = "ptRicerca2";
- String portTypeAzioniAliasRicercaAs = "ptAzioniRicerca2";
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addFromTable(CostantiDB.PORT_TYPE+" as "+portTypeAliasRicercaAs);
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addFromTable(CostantiDB.PORT_TYPE_AZIONI+" as "+portTypeAzioniAliasRicercaAs);
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAliasRicercaAs+".id_accordo="+CostantiDB.PORT_TYPE+".id_accordo");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAliasRicercaAs+".profilo_collaborazione='asincronoSimmetrico'");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAliasRicercaAs+".nome <> "+CostantiDB.PORT_TYPE+".nome");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAzioniAliasRicercaAs+".id_port_type="+portTypeAliasRicercaAs+".id");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAzioniAliasRicercaAs+".correlata_servizio is null");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAliasRicercaAs+".nome="+CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAzioniAliasRicercaAs+".correlata is null");
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.addWhereCondition(portTypeAzioniAliasRicercaAs+".nome="+CostantiDB.PORT_TYPE_AZIONI+".correlata");
-
- sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione.setANDLogicOperator(true);
-
- ISQLQueryObject sqlQueryObjectExistsAsinSimRisposta = SQLObjectFactory.createSQLQueryObject(tipoDatabase);
- sqlQueryObjectExistsAsinSimRisposta.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObjectExistsAsinSimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".id_port_type="+CostantiDB.PORT_TYPE+".id");
- sqlQueryObjectExistsAsinSimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata is not null");
- sqlQueryObjectExistsAsinSimRisposta.addWhereCondition(CostantiDB.PORT_TYPE_AZIONI+".correlata_servizio is not null");
- sqlQueryObjectExistsAsinSimRisposta.addWhereExistsCondition(false, sqlQueryObjectExistsAsinSimRispostaCheckCorrelazione);
- sqlQueryObjectExistsAsinSimRisposta.setANDLogicOperator(true);
-
- sqlQueryObject.addWhereCondition(true,
- CostantiDB.PORT_TYPE+".profilo_collaborazione='asincronoSimmetrico'",
- sqlQueryObject.getWhereExistsCondition(false, sqlQueryObjectExistsAsinSimRisposta));
- }
-
-
- // OR tra le condizioni
- sqlQueryObject.setANDLogicOperator(false);
-
- return sqlQueryObject;
-
- }
-
-
-
- public static void deleteAccordoServizioParteComune(org.openspcoop2.core.registry.AccordoServizioParteComune accordoServizio,
- Connection con, String tabellaSoggetti, Logger log, IDAccordoFactory idAccordoFactory, IDriverBYOK driverBYOK) throws DriverRegistroServiziException {
- if(tabellaSoggetti!=null) {
- // nop
- }
-
- if (accordoServizio == null)
- throw new DriverRegistroServiziException(ACCORDO_DIVERSO_NULL);
- String nome = accordoServizio.getNome();
- if (nome == null || nome.equals(""))
- throw new DriverRegistroServiziException(NOME_ACCORDO_NON_VALIDO);
- PreparedStatement stm = null;
- ResultSet rs = null;
- String sqlQuery = "";
-
- try {
- IDAccordo idAccordo = idAccordoFactory.getIDAccordoFromValues(nome,BeanUtilities.getSoggettoReferenteID(accordoServizio.getSoggettoReferente()),accordoServizio.getVersione());
- long idAccordoLong = DBUtils.getIdAccordoServizioParteComune(idAccordo, con, DriverRegistroServiziDB_LIB.tipoDB);
- if (idAccordoLong <= 0)
- throw new DriverRegistroServiziException("Impossibile recuperare l'id dell'Accordo di Servizio : " + nome);
- // elimino tutte le azioni correlate con questo accordo
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.ACCORDI_AZIONI);
- sqlQueryObject.addWhereCondition("id_accordo=?");
- String updateString = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(updateString);
- stm.setLong(1, idAccordoLong);
- logDebug(log, "delete azioni :" + DriverRegistroServiziDB_LIB.formatSQLString(sqlQuery, idAccordoLong));
- int n=stm.executeUpdate();
- stm.close();
- logDebug(log, "cancellate " + n + " azioni.");
-
- // elimino tutte i port type e struttura interna
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_accordo = ?");
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<Long> idPT = new ArrayList<>();
- while(rs.next()){
- idPT.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
- while(!idPT.isEmpty()){
- Long idPortType = idPT.remove(0);
- // gestione operation_messages
- List<Long> idPortTypeAzioni = new ArrayList<>();
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_port_type=?");
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortType);
- rs=stm.executeQuery();
- while(rs.next()){
- idPortTypeAzioni.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
- while(!idPortTypeAzioni.isEmpty()){
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE_AZIONI_OPERATION_MESSAGES);
- sqlQueryObject.addWhereCondition("id_port_type_azione=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortTypeAzioni.remove(0));
- n=stm.executeUpdate();
- stm.close();
- }
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE_AZIONI);
- sqlQueryObject.addWhereCondition("id_port_type=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idPortType);
- n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" azioni del port type ["+idPortType+"] associate all'accordo "+idAccordoLong);
- }
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.PORT_TYPE);
- sqlQueryObject.addWhereCondition("id_accordo=?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLDelete();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- n=stm.executeUpdate();
- stm.close();
- logDebug(log, "Cancellate "+n+" port type associate all'accordo "+idAccordoLong);
-
-
- // Risorse
- // elimino tutte le risorse api comprese di struttura interna
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.API_RESOURCES);
- sqlQueryObject.addSelectField("id");
- sqlQueryObject.addWhereCondition("id_accordo = ?");
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<Long> idResources = new ArrayList<>();
- while(rs.next()){
- idResources.add(rs.getLong("id"));
- }
- rs.close();
- stm.close();
-
- while(!idResources.isEmpty()){
- Long idR = idResources.remove(0);
- Resource resource = new Resource();
- resource.setId(idR);
- DriverRegistroServiziDB_accordiRestLIB.CRUDResource(CostantiDB.DELETE, accordoServizio, resource, con, idAccordoLong, driverBYOK);
- }
-
-
- // Gruppi
- //la lista contiene tutte e sole le risorse necessarie
- //prima cancello le risorse e poi reinserisco quelle nuove
-
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.ACCORDI_GRUPPI);
- sqlQueryObject.addFromTable(CostantiDB.GRUPPI);
- sqlQueryObject.addSelectAliasField(CostantiDB.GRUPPI, "id", "identificativoGruppo");
- sqlQueryObject.addSelectAliasField(CostantiDB.GRUPPI, "nome", "nomeGruppo");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_gruppo = "+CostantiDB.GRUPPI+".id");
- sqlQueryObject.addWhereCondition(CostantiDB.ACCORDI_GRUPPI+".id_accordo = ?");
- sqlQueryObject.setANDLogicOperator(true);
- sqlQuery = sqlQueryObject.createSQLQuery();
- stm=con.prepareStatement(sqlQuery);
- stm.setLong(1, idAccordoLong);
- rs=stm.executeQuery();
- List<GruppoAccordo> gruppi = new ArrayList<>();
- while(rs.next()){
- GruppoAccordo gruppo = new GruppoAccordo();
- gruppo.setNome(rs.getString("nomeGruppo"));
- gruppo.setId(rs.getLong("identificativoGruppo"));
- gruppi.add(gruppo);
- }
- rs.close();
- stm.close();
-
- while(!gruppi.isEmpty()){
- GruppoAccordo gruppo = gruppi.remove(0);
- DriverRegistroServiziDB_accordiLIB.CRUDAccordoGruppo(CostantiDB.DELETE, accordoServizio, gruppo, con, idAccordoLong);
- }
- logDebug(log, "Cancellate "+n+" resources associate all'accordo :" + nome + " id :" + idAccordoLong);
-
-
-
- // Documenti generici accordo di servizio
- // Allegati
- // Specifiche Semiformali
- // Speficiche Coordinamento
- DriverRegistroServiziDB_documentiLIB.CRUDDocumento(CostantiDB.DELETE, null, idAccordoLong, ProprietariDocumento.accordoServizio, con, DriverRegistroServiziDB_LIB.tipoDB);
- // Accordo servizio composto
- if(accordoServizio.getServizioComposto()!=null){
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.DELETE,
- accordoServizio.getServizioComposto(), con, idAccordoLong);
- }else{
- DriverRegistroServiziDB_accordiCooperazioneLIB.CRUDAccordoServizioParteComuneServizioComposto(CostantiDB.DELETE,
- null, con, idAccordoLong);
- }
-
- // ProtocolProperties
- DriverRegistroServiziDB_LIB.CRUDProtocolProperty(CostantiDB.DELETE, null,
- idAccordoLong, ProprietariProtocolProperty.ACCORDO_SERVIZIO_PARTE_COMUNE, con, DriverRegistroServiziDB_LIB.tipoDB, driverBYOK);
-
- // elimino accordoservizio
- sqlQueryObject = SQLObjectFactory.createSQLQueryObject(DriverRegistroServiziDB_LIB.tipoDB);
- sqlQueryObject.addDeleteTable(CostantiDB.ACCORDI);
- sqlQueryObject.addWhereCondition("id=?");
- updateString = sqlQueryObject.createSQLDelete();
- stm = con.prepareStatement(updateString);
- stm.setLong(1, idAccordoLong);
- logDebug(log, "delete accordoServizio :" + DriverRegistroServiziDB_LIB.formatSQLString(sqlQuery, idAccordoLong));
- stm.executeUpdate();
- stm.close();
- } catch (SQLException se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::deleteAccordoServizio] SQLException [" + se.getMessage() + "].",se);
- } catch (Exception se) {
- throw new DriverRegistroServiziException("[DriverRegistroServiziDB::deleteAccordoServizio] Exception [" + se.getMessage() + "].",se);
- }finally {
- JDBCUtilities.closeResources(rs, stm);
- }
- }
-
- }