DBOggettiInUsoUtils_pdd.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.protocol.engine.utils;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.List;
- import org.openspcoop2.core.constants.CostantiDB;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.utils.UtilsException;
- import org.openspcoop2.utils.jdbc.JDBCUtilities;
- import org.openspcoop2.utils.sql.ISQLQueryObject;
- import org.openspcoop2.utils.sql.SQLObjectFactory;
- /**
- * DBOggettiInUsoUtils_pdd
- *
- * @author Andrea Poli (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- *
- */
- public class DBOggettiInUsoUtils_pdd {
- protected static boolean isPddInUso(Connection con, String tipoDB, String nomePdd, List<String> whereIsInUso, boolean normalizeObjectIds) throws UtilsException {
- String nomeMetodo = "pddInUso";
- PreparedStatement stmt = null;
- ResultSet risultato = null;
- String queryString;
- try {
- // Controllo che il pdd non sia in uso
- ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(tipoDB);
- sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
- sqlQueryObject.addSelectField("*");
- sqlQueryObject.addWhereCondition("server = ?");
- queryString = sqlQueryObject.createSQLQuery();
- stmt = con.prepareStatement(queryString);
- stmt.setString(1, nomePdd);
- risultato = stmt.executeQuery();
- boolean isInUso = false;
- while (risultato.next()) {
- String tipo_soggetto = risultato.getString("tipo_soggetto");
- String nome_soggetto = risultato.getString("nome_soggetto");
- IDSoggetto idSoggetto = new IDSoggetto(tipo_soggetto, nome_soggetto);
- if(normalizeObjectIds) {
- String protocollo = ProtocolFactoryManager.getInstance().getProtocolByOrganizationType(tipo_soggetto);
- whereIsInUso.add(DBOggettiInUsoUtils.getProtocolPrefix(protocollo)+NamingUtils.getLabelSoggetto(protocollo, idSoggetto));
- }
- else {
- whereIsInUso.add(tipo_soggetto + "/" + nome_soggetto);
- }
- isInUso = true;
- }
- return isInUso;
- } catch (Exception se) {
- throw new UtilsException("[DBOggettiInUsoUtils::" + nomeMetodo + "] Exception: " + se.getMessage(),se);
- } finally {
- // Chiudo statement and resultset
- JDBCUtilities.closeResources(risultato, stmt);
- }
- }
- protected static String toString(String nomePdd, List<String> whereIsInUso, boolean prefix, String separator){
- String prefixString = "";
- if(prefix){
- prefixString = "La Porta di Dominio ["+nomePdd+"] non è eliminabile poichè: "+separator;
- }
- return prefixString+
- "risulta associata ad uno o più Soggetti: " + DBOggettiInUsoUtils.formatList(whereIsInUso,separator)+separator;
- }
-
- }