DriverConfigurazioneDB_porteDelegateSearchDriver.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.config.driver.db;

  21. import java.sql.Connection;
  22. import java.sql.PreparedStatement;
  23. import java.sql.ResultSet;
  24. import java.util.ArrayList;
  25. import java.util.List;

  26. import org.apache.commons.lang.StringUtils;
  27. import org.openspcoop2.core.commons.DBUtils;
  28. import org.openspcoop2.core.commons.Filtri;
  29. import org.openspcoop2.core.commons.ISearch;
  30. import org.openspcoop2.core.commons.Liste;
  31. import org.openspcoop2.core.commons.SearchUtils;
  32. import org.openspcoop2.core.config.CorrelazioneApplicativaElemento;
  33. import org.openspcoop2.core.config.CorrelazioneApplicativaRispostaElemento;
  34. import org.openspcoop2.core.config.MessageSecurityFlowParameter;
  35. import org.openspcoop2.core.config.MtomProcessorFlowParameter;
  36. import org.openspcoop2.core.config.PortaDelegata;
  37. import org.openspcoop2.core.config.Proprieta;
  38. import org.openspcoop2.core.config.ServizioApplicativo;
  39. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  40. import org.openspcoop2.core.constants.CostantiDB;
  41. import org.openspcoop2.core.id.IDServizio;
  42. import org.openspcoop2.core.id.IDSoggetto;
  43. import org.openspcoop2.utils.jdbc.JDBCUtilities;
  44. import org.openspcoop2.utils.sql.ISQLQueryObject;
  45. import org.openspcoop2.utils.sql.SQLObjectFactory;

  46. /**
  47.  * DriverConfigurazioneDB_porteDelegateSearchDriver
  48.  *
  49.  *
  50.  * @author Sandra Giangrandi (sandra@link.it)
  51.  * @author Stefano Corallo (corallo@link.it)
  52.  * @author $Author$
  53.  * @version $Rev$, $Date$
  54.  */
  55. public class DriverConfigurazioneDB_porteDelegateSearchDriver {

  56.     private DriverConfigurazioneDB driver = null;
  57.     private DriverConfigurazioneDB_porteDelegateDriver porteDelegateDriver = null;
  58.    
  59.     protected DriverConfigurazioneDB_porteDelegateSearchDriver(DriverConfigurazioneDB driver) {
  60.         this.driver = driver;
  61.         this.porteDelegateDriver = new DriverConfigurazioneDB_porteDelegateDriver(driver);
  62.     }
  63.    
  64.     protected List<String> portaDelegataRuoliList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  65.         String nomeMetodo = "portaDelegataRuoliList";
  66.         int idLista = Liste.PORTE_DELEGATE_RUOLI;
  67.         String nomeTabella = CostantiDB.PORTE_DELEGATE_RUOLI;
  68.         return _portaDelegataRuoliList(idPD, ricerca,
  69.                 nomeMetodo, nomeTabella, idLista);
  70.     }
  71.     protected List<String> portaDelegataRuoliTokenList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  72.         String nomeMetodo = "portaDelegataRuoliTokenList";
  73.         int idLista = Liste.PORTE_DELEGATE_TOKEN_RUOLI;
  74.         String nomeTabella = CostantiDB.PORTE_DELEGATE_TOKEN_RUOLI;
  75.         return _portaDelegataRuoliList(idPD, ricerca,
  76.                 nomeMetodo, nomeTabella, idLista);
  77.     }
  78.     private List<String> _portaDelegataRuoliList(long idPD, ISearch ricerca,
  79.             String nomeMetodo, String nomeTabella, int idLista) throws DriverConfigurazioneException {

  80.         int offset;
  81.         int limit;
  82.         String search;
  83.         String queryString;

  84.         limit = ricerca.getPageSize(idLista);
  85.         offset = ricerca.getIndexIniziale(idLista);
  86.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));

  87.         Connection con = null;
  88.         PreparedStatement stmt = null;
  89.         ResultSet risultato = null;

  90.         if (this.driver.atomica) {
  91.             try {
  92.                 con = this.driver.getConnectionFromDatasource(nomeMetodo);
  93.             } catch (Exception e) {
  94.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  95.             }

  96.         } else
  97.             con = this.driver.globalConnection;

  98.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  99.         List<String> listIdRuoli = null;
  100.         try {

  101.             if (!search.equals("")) {
  102.                 //query con search
  103.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  104.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  105.                 sqlQueryObject.addFromTable(nomeTabella);
  106.                 sqlQueryObject.addSelectCountField("*", "cont");
  107.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  108.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+nomeTabella+".id_porta");
  109.                 sqlQueryObject.addWhereLikeCondition(nomeTabella+".ruolo", search, true, true);
  110.                
  111.                 sqlQueryObject.setSelectDistinct(true);
  112.                 sqlQueryObject.setANDLogicOperator(true);
  113.                 queryString = sqlQueryObject.createSQLQuery();
  114.             } else {
  115.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  116.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  117.                 sqlQueryObject.addFromTable(nomeTabella);
  118.                 sqlQueryObject.addSelectCountField("*", "cont");
  119.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  120.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+nomeTabella+".id_porta");

  121.                 sqlQueryObject.setSelectDistinct(true);
  122.                 sqlQueryObject.setANDLogicOperator(true);
  123.                 queryString = sqlQueryObject.createSQLQuery();
  124.             }
  125.             stmt = con.prepareStatement(queryString);
  126.             stmt.setLong(1, idPD);

  127.             risultato = stmt.executeQuery();
  128.             if (risultato.next())
  129.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  130.             risultato.close();
  131.             stmt.close();

  132.             // ricavo le entries
  133.             if (limit == 0) // con limit
  134.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  135.             if (!search.equals("")) { // con search
  136.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  137.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  138.                 sqlQueryObject.addFromTable(nomeTabella);
  139.                 sqlQueryObject.addSelectField(nomeTabella+".ruolo");
  140.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  141.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+nomeTabella+".id_porta");
  142.                 sqlQueryObject.addWhereLikeCondition(nomeTabella+".ruolo", search, true, true);
  143.                
  144.                 sqlQueryObject.setSelectDistinct(true);
  145.                 sqlQueryObject.setANDLogicOperator(true);
  146.                 sqlQueryObject.addOrderBy(nomeTabella+".ruolo");
  147.                 sqlQueryObject.setSortType(true);
  148.                 sqlQueryObject.setLimit(limit);
  149.                 sqlQueryObject.setOffset(offset);
  150.                 queryString = sqlQueryObject.createSQLQuery();
  151.             } else {
  152.                 // senza search
  153.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  154.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  155.                 sqlQueryObject.addFromTable(nomeTabella);
  156.                 sqlQueryObject.addSelectField(nomeTabella+".ruolo");
  157.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  158.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+nomeTabella+".id_porta");
  159.                
  160.                 sqlQueryObject.setSelectDistinct(true);
  161.                 sqlQueryObject.setANDLogicOperator(true);
  162.                 sqlQueryObject.addOrderBy(nomeTabella+".ruolo");
  163.                 sqlQueryObject.setSortType(true);
  164.                 sqlQueryObject.setLimit(limit);
  165.                 sqlQueryObject.setOffset(offset);
  166.                 queryString = sqlQueryObject.createSQLQuery();
  167.             }
  168.             stmt = con.prepareStatement(queryString);
  169.             stmt.setLong(1, idPD);

  170.             risultato = stmt.executeQuery();

  171.             listIdRuoli = new ArrayList<>();
  172.             while (risultato.next()) {

  173.                 listIdRuoli.add(risultato.getString(1));

  174.             }

  175.         } catch (Exception qe) {
  176.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  177.         } finally {

  178.             //Chiudo statement and resultset
  179.             JDBCUtilities.closeResources(risultato, stmt);

  180.             this.driver.closeConnection(con);
  181.         }
  182.        
  183.         return listIdRuoli;
  184.     }
  185.    
  186.    
  187.    
  188.     protected List<String> portaDelegataScopeList(long idPD, ISearch ricerca) throws DriverConfigurazioneException {
  189.         String nomeMetodo = "portaDelegataScopeList";
  190.         int idLista = Liste.PORTE_DELEGATE_SCOPE;
  191.         int offset;
  192.         int limit;
  193.         String search;
  194.         String queryString;

  195.         limit = ricerca.getPageSize(idLista);
  196.         offset = ricerca.getIndexIniziale(idLista);
  197.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));

  198.         Connection con = null;
  199.         PreparedStatement stmt = null;
  200.         ResultSet risultato = null;

  201.         if (this.driver.atomica) {
  202.             try {
  203.                 con = this.driver.getConnectionFromDatasource(nomeMetodo);
  204.             } catch (Exception e) {
  205.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  206.             }

  207.         } else
  208.             con = this.driver.globalConnection;

  209.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  210.         List<String> listIdScope = null;
  211.         try {

  212.             if (!search.equals("")) {
  213.                 //query con search
  214.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  215.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  216.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_SCOPE);
  217.                 sqlQueryObject.addSelectCountField("*", "cont");
  218.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  219.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+CostantiDB.PORTE_DELEGATE_SCOPE+".id_porta");
  220.                 sqlQueryObject.addWhereLikeCondition(CostantiDB.PORTE_DELEGATE_SCOPE+".scope", search, true, true);
  221.                
  222.                 sqlQueryObject.setSelectDistinct(true);
  223.                 sqlQueryObject.setANDLogicOperator(true);
  224.                 queryString = sqlQueryObject.createSQLQuery();
  225.             } else {
  226.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  227.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  228.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_SCOPE);
  229.                 sqlQueryObject.addSelectCountField("*", "cont");
  230.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  231.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+CostantiDB.PORTE_DELEGATE_SCOPE+".id_porta");

  232.                 sqlQueryObject.setSelectDistinct(true);
  233.                 sqlQueryObject.setANDLogicOperator(true);
  234.                 queryString = sqlQueryObject.createSQLQuery();
  235.             }
  236.             stmt = con.prepareStatement(queryString);
  237.             stmt.setLong(1, idPD);

  238.             risultato = stmt.executeQuery();
  239.             if (risultato.next())
  240.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  241.             risultato.close();
  242.             stmt.close();

  243.             // ricavo le entries
  244.             if (limit == 0) // con limit
  245.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  246.             if (!search.equals("")) { // con search
  247.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  248.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  249.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_SCOPE);
  250.                 sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE_SCOPE+".scope");
  251.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  252.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+CostantiDB.PORTE_DELEGATE_SCOPE+".id_porta");
  253.                 sqlQueryObject.addWhereLikeCondition(CostantiDB.PORTE_DELEGATE_SCOPE+".scope", search, true, true);
  254.                
  255.                 sqlQueryObject.setSelectDistinct(true);
  256.                 sqlQueryObject.setANDLogicOperator(true);
  257.                 sqlQueryObject.addOrderBy(CostantiDB.PORTE_DELEGATE_SCOPE+".scope");
  258.                 sqlQueryObject.setSortType(true);
  259.                 sqlQueryObject.setLimit(limit);
  260.                 sqlQueryObject.setOffset(offset);
  261.                 queryString = sqlQueryObject.createSQLQuery();
  262.             } else {
  263.                 // senza search
  264.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  265.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  266.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_SCOPE);
  267.                 sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE_SCOPE+".scope");
  268.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id=?");
  269.                 sqlQueryObject.addWhereCondition(CostantiDB.PORTE_DELEGATE+".id="+CostantiDB.PORTE_DELEGATE_SCOPE+".id_porta");
  270.                
  271.                 sqlQueryObject.setSelectDistinct(true);
  272.                 sqlQueryObject.setANDLogicOperator(true);
  273.                 sqlQueryObject.addOrderBy(CostantiDB.PORTE_DELEGATE_SCOPE+".scope");
  274.                 sqlQueryObject.setSortType(true);
  275.                 sqlQueryObject.setLimit(limit);
  276.                 sqlQueryObject.setOffset(offset);
  277.                 queryString = sqlQueryObject.createSQLQuery();
  278.             }
  279.             stmt = con.prepareStatement(queryString);
  280.             stmt.setLong(1, idPD);

  281.             risultato = stmt.executeQuery();

  282.             listIdScope = new ArrayList<>();
  283.             while (risultato.next()) {

  284.                 listIdScope.add(risultato.getString(1));

  285.             }

  286.         } catch (Exception qe) {
  287.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  288.         } finally {

  289.             //Chiudo statement and resultset
  290.             JDBCUtilities.closeResources(risultato, stmt);

  291.             this.driver.closeConnection(con);
  292.         }
  293.        
  294.         return listIdScope;
  295.     }
  296.    
  297.     protected List<PortaDelegata> porteDelegateList(long idSoggetto, ISearch ricerca) throws DriverConfigurazioneException {
  298.         String nomeMetodo = "porteDelegateList";
  299.         int idLista = Liste.PORTE_DELEGATE_BY_SOGGETTO;
  300.         int offset;
  301.         int limit;
  302.         String search;
  303.         String queryString;

  304.         limit = ricerca.getPageSize(idLista);
  305.         offset = ricerca.getIndexIniziale(idLista);
  306.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));

  307.         Connection con = null;
  308.         PreparedStatement stmt=null;
  309.         ResultSet risultato=null;
  310.         ArrayList<PortaDelegata> lista = new ArrayList<>();

  311.         if (this.driver.atomica) {
  312.             try {
  313.                 con = this.driver.getConnectionFromDatasource("porteDelegateList");
  314.             } catch (Exception e) {
  315.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  316.             }

  317.         } else
  318.             con = this.driver.globalConnection;

  319.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  320.         try {

  321.             if (!search.equals("")) {
  322.                 //query con search
  323.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  324.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  325.                 sqlQueryObject.addSelectCountField("*", "cont");
  326.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  327.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  328.                 sqlQueryObject.setANDLogicOperator(true);
  329.                 queryString = sqlQueryObject.createSQLQuery();
  330.             } else {
  331.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  332.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  333.                 sqlQueryObject.addSelectCountField("*", "cont");
  334.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  335.                 sqlQueryObject.setANDLogicOperator(true);
  336.                 queryString = sqlQueryObject.createSQLQuery();
  337.             }
  338.             stmt = con.prepareStatement(queryString);
  339.             stmt.setLong(1, idSoggetto);
  340.             risultato = stmt.executeQuery();
  341.             if (risultato.next())
  342.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  343.             risultato.close();
  344.             stmt.close();

  345.             // ricavo le entries
  346.             if (limit == 0) // con limit
  347.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  348.             if (!search.equals("")) { // con search
  349.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  350.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  351.                 sqlQueryObject.addSelectField("id");
  352.                 sqlQueryObject.addSelectField("nome_porta");
  353.                 sqlQueryObject.addSelectField("id_soggetto");
  354.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  355.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  356.                 sqlQueryObject.setANDLogicOperator(true);
  357.                 sqlQueryObject.addOrderBy("nome_porta");
  358.                 sqlQueryObject.setSortType(true);
  359.                 sqlQueryObject.setLimit(limit);
  360.                 sqlQueryObject.setOffset(offset);
  361.                 queryString = sqlQueryObject.createSQLQuery();
  362.             } else {
  363.                 // senza search
  364.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  365.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  366.                 sqlQueryObject.addSelectField("id");
  367.                 sqlQueryObject.addSelectField("nome_porta");
  368.                 sqlQueryObject.addSelectField("id_soggetto");
  369.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  370.                 sqlQueryObject.setANDLogicOperator(true);
  371.                 sqlQueryObject.addOrderBy("nome_porta");
  372.                 sqlQueryObject.setSortType(true);
  373.                 sqlQueryObject.setLimit(limit);
  374.                 sqlQueryObject.setOffset(offset);
  375.                 queryString = sqlQueryObject.createSQLQuery();
  376.             }
  377.             stmt = con.prepareStatement(queryString);
  378.             stmt.setLong(1, idSoggetto);
  379.             risultato = stmt.executeQuery();

  380.             PortaDelegata pd;
  381.             while (risultato.next()) {
  382.                 pd = this.porteDelegateDriver.getPortaDelegata(risultato.getLong("id"),con);
  383.                 lista.add(pd);
  384.             }

  385.             return lista;

  386.         } catch (Exception qe) {
  387.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  388.         } finally {

  389.             //Chiudo statement and resultset
  390.             JDBCUtilities.closeResources(risultato, stmt);

  391.             this.driver.closeConnection(con);
  392.         }
  393.     }
  394.    
  395.    
  396.     protected List<Proprieta> porteDelegatePropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  397.         int offset;
  398.         int limit;
  399.         int idLista = Liste.PORTE_DELEGATE_PROP;
  400.         String search;
  401.         String queryString;

  402.         limit = ricerca.getPageSize(idLista);
  403.         offset = ricerca.getIndexIniziale(idLista);
  404.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));      


  405.         Connection con = null;
  406.         PreparedStatement stmt=null;
  407.         ResultSet risultato=null;
  408.         ArrayList<Proprieta> lista = new ArrayList<>();

  409.         if (this.driver.atomica) {
  410.             try {
  411.                 con = this.driver.getConnectionFromDatasource("porteDelegatePropList");
  412.             } catch (Exception e) {
  413.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Exception accedendo al datasource :" + e.getMessage(),e);

  414.             }

  415.         } else
  416.             con = this.driver.globalConnection;

  417.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  418.         try {

  419.             if (!search.equals("")) {
  420.                 //query con search
  421.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  422.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_PROP);
  423.                 sqlQueryObject.addSelectCountField("*", "cont");
  424.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  425.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  426.                 sqlQueryObject.setANDLogicOperator(true);
  427.                 queryString = sqlQueryObject.createSQLQuery();
  428.             } else {
  429.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  430.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_PROP);
  431.                 sqlQueryObject.addSelectCountField("*", "cont");
  432.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  433.                 queryString = sqlQueryObject.createSQLQuery();
  434.             }
  435.             stmt = con.prepareStatement(queryString);
  436.             stmt.setLong(1, idPortaDelegata);
  437.             risultato = stmt.executeQuery();
  438.             if (risultato.next())
  439.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  440.             risultato.close();
  441.             stmt.close();

  442.             // ricavo le entries
  443.             if (limit == 0) // con limit
  444.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  445.             if (!search.equals("")) { // con search
  446.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  447.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_PROP);
  448.                 sqlQueryObject.addSelectField("id");
  449.                 sqlQueryObject.addSelectField("id_porta");
  450.                 sqlQueryObject.addSelectField("nome");
  451.                 sqlQueryObject.addSelectField("valore");
  452.                 sqlQueryObject.addSelectField("enc_value");
  453.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  454.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  455.                 sqlQueryObject.setANDLogicOperator(true);
  456.                 sqlQueryObject.addOrderBy("nome");
  457.                 sqlQueryObject.setSortType(true);
  458.                 sqlQueryObject.setLimit(limit);
  459.                 sqlQueryObject.setOffset(offset);
  460.                 queryString = sqlQueryObject.createSQLQuery();
  461.             } else {
  462.                 // senza search
  463.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  464.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_PROP);
  465.                 sqlQueryObject.addSelectField("id");
  466.                 sqlQueryObject.addSelectField("id_porta");
  467.                 sqlQueryObject.addSelectField("nome");
  468.                 sqlQueryObject.addSelectField("valore");
  469.                 sqlQueryObject.addSelectField("enc_value");
  470.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  471.                 sqlQueryObject.addOrderBy("nome");
  472.                 sqlQueryObject.setSortType(true);
  473.                 sqlQueryObject.setLimit(limit);
  474.                 sqlQueryObject.setOffset(offset);
  475.                 queryString = sqlQueryObject.createSQLQuery();
  476.             }
  477.             stmt = con.prepareStatement(queryString);
  478.             stmt.setLong(1, idPortaDelegata);
  479.             risultato = stmt.executeQuery();

  480.             Proprieta prop = null;
  481.             while (risultato.next()) {

  482.                 prop = new Proprieta();

  483.                 prop.setId(risultato.getLong("id"));
  484.                 prop.setNome(risultato.getString("nome"));
  485.                
  486.                 String plainValue = risultato.getString("valore");
  487.                 String encValue = risultato.getString("enc_value");
  488.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  489.                     prop.setValore(encValue);
  490.                 }
  491.                 else {
  492.                     prop.setValore(plainValue);
  493.                 }

  494.                 lista.add(prop);
  495.             }

  496.             return lista;

  497.         } catch (Exception qe) {
  498.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Errore : " + qe.getMessage(),qe);
  499.         } finally {
  500.             //Chiudo statement and resultset
  501.             JDBCUtilities.closeResources(risultato, stmt);
  502.             this.driver.closeConnection(con);
  503.         }
  504.     }
  505.    
  506.    
  507.    
  508.     protected List<Proprieta> porteDelegateAutenticazioneCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  509.         int offset;
  510.         int limit;
  511.         int idLista = Liste.PORTE_DELEGATE_PROPRIETA_AUTENTICAZIONE;
  512.         String search;
  513.         String queryString;

  514.         limit = ricerca.getPageSize(idLista);
  515.         offset = ricerca.getIndexIniziale(idLista);
  516.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));      


  517.         Connection con = null;
  518.         PreparedStatement stmt=null;
  519.         ResultSet risultato=null;
  520.         ArrayList<Proprieta> lista = new ArrayList<>();

  521.         if (this.driver.atomica) {
  522.             try {
  523.                 con = this.driver.getConnectionFromDatasource("porteDelegatePropList");
  524.             } catch (Exception e) {
  525.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Exception accedendo al datasource :" + e.getMessage(),e);

  526.             }

  527.         } else
  528.             con = this.driver.globalConnection;

  529.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  530.         try {

  531.             if (!search.equals("")) {
  532.                 //query con search
  533.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  534.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTENTICAZIONE_PROP);
  535.                 sqlQueryObject.addSelectCountField("*", "cont");
  536.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  537.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  538.                 sqlQueryObject.setANDLogicOperator(true);
  539.                 queryString = sqlQueryObject.createSQLQuery();
  540.             } else {
  541.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  542.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTENTICAZIONE_PROP);
  543.                 sqlQueryObject.addSelectCountField("*", "cont");
  544.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  545.                 queryString = sqlQueryObject.createSQLQuery();
  546.             }
  547.             stmt = con.prepareStatement(queryString);
  548.             stmt.setLong(1, idPortaDelegata);
  549.             risultato = stmt.executeQuery();
  550.             if (risultato.next())
  551.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  552.             risultato.close();
  553.             stmt.close();

  554.             // ricavo le entries
  555.             if (limit == 0) // con limit
  556.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  557.             if (!search.equals("")) { // con search
  558.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  559.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTENTICAZIONE_PROP);
  560.                 sqlQueryObject.addSelectField("id");
  561.                 sqlQueryObject.addSelectField("id_porta");
  562.                 sqlQueryObject.addSelectField("nome");
  563.                 sqlQueryObject.addSelectField("valore");
  564.                 sqlQueryObject.addSelectField("enc_value");
  565.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  566.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  567.                 sqlQueryObject.setANDLogicOperator(true);
  568.                 sqlQueryObject.addOrderBy("nome");
  569.                 sqlQueryObject.setSortType(true);
  570.                 sqlQueryObject.setLimit(limit);
  571.                 sqlQueryObject.setOffset(offset);
  572.                 queryString = sqlQueryObject.createSQLQuery();
  573.             } else {
  574.                 // senza search
  575.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  576.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTENTICAZIONE_PROP);
  577.                 sqlQueryObject.addSelectField("id");
  578.                 sqlQueryObject.addSelectField("id_porta");
  579.                 sqlQueryObject.addSelectField("nome");
  580.                 sqlQueryObject.addSelectField("valore");
  581.                 sqlQueryObject.addSelectField("enc_value");
  582.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  583.                 sqlQueryObject.addOrderBy("nome");
  584.                 sqlQueryObject.setSortType(true);
  585.                 sqlQueryObject.setLimit(limit);
  586.                 sqlQueryObject.setOffset(offset);
  587.                 queryString = sqlQueryObject.createSQLQuery();
  588.             }
  589.             stmt = con.prepareStatement(queryString);
  590.             stmt.setLong(1, idPortaDelegata);
  591.             risultato = stmt.executeQuery();

  592.             Proprieta prop = null;
  593.             while (risultato.next()) {

  594.                 prop = new Proprieta();

  595.                 prop.setId(risultato.getLong("id"));
  596.                 prop.setNome(risultato.getString("nome"));
  597.                
  598.                 String plainValue = risultato.getString("valore");
  599.                 String encValue = risultato.getString("enc_value");
  600.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  601.                     prop.setValore(encValue);
  602.                 }
  603.                 else {
  604.                     prop.setValore(plainValue);
  605.                 }

  606.                 lista.add(prop);
  607.             }

  608.             return lista;

  609.         } catch (Exception qe) {
  610.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Errore : " + qe.getMessage(),qe);
  611.         } finally {
  612.             //Chiudo statement and resultset
  613.             JDBCUtilities.closeResources(risultato, stmt);
  614.             this.driver.closeConnection(con);
  615.         }
  616.     }
  617.    
  618.     protected List<Proprieta> porteDelegateAutorizzazioneCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  619.         int offset;
  620.         int limit;
  621.         int idLista = Liste.PORTE_DELEGATE_PROPRIETA_AUTORIZZAZIONE;
  622.         String search;
  623.         String queryString;

  624.         limit = ricerca.getPageSize(idLista);
  625.         offset = ricerca.getIndexIniziale(idLista);
  626.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));      


  627.         Connection con = null;
  628.         PreparedStatement stmt=null;
  629.         ResultSet risultato=null;
  630.         ArrayList<Proprieta> lista = new ArrayList<>();

  631.         if (this.driver.atomica) {
  632.             try {
  633.                 con = this.driver.getConnectionFromDatasource("porteDelegatePropList");
  634.             } catch (Exception e) {
  635.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Exception accedendo al datasource :" + e.getMessage(),e);

  636.             }

  637.         } else
  638.             con = this.driver.globalConnection;

  639.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  640.         try {

  641.             if (!search.equals("")) {
  642.                 //query con search
  643.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  644.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_PROP);
  645.                 sqlQueryObject.addSelectCountField("*", "cont");
  646.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  647.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  648.                 sqlQueryObject.setANDLogicOperator(true);
  649.                 queryString = sqlQueryObject.createSQLQuery();
  650.             } else {
  651.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  652.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_PROP);
  653.                 sqlQueryObject.addSelectCountField("*", "cont");
  654.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  655.                 queryString = sqlQueryObject.createSQLQuery();
  656.             }
  657.             stmt = con.prepareStatement(queryString);
  658.             stmt.setLong(1, idPortaDelegata);
  659.             risultato = stmt.executeQuery();
  660.             if (risultato.next())
  661.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  662.             risultato.close();
  663.             stmt.close();

  664.             // ricavo le entries
  665.             if (limit == 0) // con limit
  666.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  667.             if (!search.equals("")) { // con search
  668.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  669.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_PROP);
  670.                 sqlQueryObject.addSelectField("id");
  671.                 sqlQueryObject.addSelectField("id_porta");
  672.                 sqlQueryObject.addSelectField("nome");
  673.                 sqlQueryObject.addSelectField("valore");
  674.                 sqlQueryObject.addSelectField("enc_value");
  675.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  676.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  677.                 sqlQueryObject.setANDLogicOperator(true);
  678.                 sqlQueryObject.addOrderBy("nome");
  679.                 sqlQueryObject.setSortType(true);
  680.                 sqlQueryObject.setLimit(limit);
  681.                 sqlQueryObject.setOffset(offset);
  682.                 queryString = sqlQueryObject.createSQLQuery();
  683.             } else {
  684.                 // senza search
  685.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  686.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_PROP);
  687.                 sqlQueryObject.addSelectField("id");
  688.                 sqlQueryObject.addSelectField("id_porta");
  689.                 sqlQueryObject.addSelectField("nome");
  690.                 sqlQueryObject.addSelectField("valore");
  691.                 sqlQueryObject.addSelectField("enc_value");
  692.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  693.                 sqlQueryObject.addOrderBy("nome");
  694.                 sqlQueryObject.setSortType(true);
  695.                 sqlQueryObject.setLimit(limit);
  696.                 sqlQueryObject.setOffset(offset);
  697.                 queryString = sqlQueryObject.createSQLQuery();
  698.             }
  699.             stmt = con.prepareStatement(queryString);
  700.             stmt.setLong(1, idPortaDelegata);
  701.             risultato = stmt.executeQuery();

  702.             Proprieta prop = null;
  703.             while (risultato.next()) {

  704.                 prop = new Proprieta();

  705.                 prop.setId(risultato.getLong("id"));
  706.                 prop.setNome(risultato.getString("nome"));
  707.                
  708.                 String plainValue = risultato.getString("valore");
  709.                 String encValue = risultato.getString("enc_value");
  710.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  711.                     prop.setValore(encValue);
  712.                 }
  713.                 else {
  714.                     prop.setValore(plainValue);
  715.                 }

  716.                 lista.add(prop);
  717.             }

  718.             return lista;

  719.         } catch (Exception qe) {
  720.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Errore : " + qe.getMessage(),qe);
  721.         } finally {
  722.             //Chiudo statement and resultset
  723.             JDBCUtilities.closeResources(risultato, stmt);
  724.             this.driver.closeConnection(con);
  725.         }
  726.     }
  727.    
  728.     protected List<Proprieta> porteDelegateAutorizzazioneContenutoCustomPropList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  729.         int offset;
  730.         int limit;
  731.         int idLista = Liste.PORTE_DELEGATE_PROPRIETA_AUTORIZZAZIONE_CONTENUTO;
  732.         String search;
  733.         String queryString;

  734.         limit = ricerca.getPageSize(idLista);
  735.         offset = ricerca.getIndexIniziale(idLista);
  736.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));      


  737.         Connection con = null;
  738.         PreparedStatement stmt=null;
  739.         ResultSet risultato=null;
  740.         ArrayList<Proprieta> lista = new ArrayList<>();

  741.         if (this.driver.atomica) {
  742.             try {
  743.                 con = this.driver.getConnectionFromDatasource("porteDelegatePropList");
  744.             } catch (Exception e) {
  745.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Exception accedendo al datasource :" + e.getMessage(),e);

  746.             }

  747.         } else
  748.             con = this.driver.globalConnection;

  749.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  750.         try {

  751.             if (!search.equals("")) {
  752.                 //query con search
  753.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  754.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_CONTENUTI_PROP);
  755.                 sqlQueryObject.addSelectCountField("*", "cont");
  756.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  757.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  758.                 sqlQueryObject.setANDLogicOperator(true);
  759.                 queryString = sqlQueryObject.createSQLQuery();
  760.             } else {
  761.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  762.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_CONTENUTI_PROP);
  763.                 sqlQueryObject.addSelectCountField("*", "cont");
  764.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  765.                 queryString = sqlQueryObject.createSQLQuery();
  766.             }
  767.             stmt = con.prepareStatement(queryString);
  768.             stmt.setLong(1, idPortaDelegata);
  769.             risultato = stmt.executeQuery();
  770.             if (risultato.next())
  771.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  772.             risultato.close();
  773.             stmt.close();

  774.             // ricavo le entries
  775.             if (limit == 0) // con limit
  776.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  777.             if (!search.equals("")) { // con search
  778.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  779.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_CONTENUTI_PROP);
  780.                 sqlQueryObject.addSelectField("id");
  781.                 sqlQueryObject.addSelectField("id_porta");
  782.                 sqlQueryObject.addSelectField("nome");
  783.                 sqlQueryObject.addSelectField("valore");
  784.                 sqlQueryObject.addSelectField("enc_value");
  785.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  786.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  787.                 sqlQueryObject.setANDLogicOperator(true);
  788.                 sqlQueryObject.addOrderBy("nome");
  789.                 sqlQueryObject.setSortType(true);
  790.                 sqlQueryObject.setLimit(limit);
  791.                 sqlQueryObject.setOffset(offset);
  792.                 queryString = sqlQueryObject.createSQLQuery();
  793.             } else {
  794.                 // senza search
  795.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  796.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_AUTORIZZAZIONE_CONTENUTI_PROP);
  797.                 sqlQueryObject.addSelectField("id");
  798.                 sqlQueryObject.addSelectField("id_porta");
  799.                 sqlQueryObject.addSelectField("nome");
  800.                 sqlQueryObject.addSelectField("valore");
  801.                 sqlQueryObject.addSelectField("enc_value");
  802.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  803.                 sqlQueryObject.addOrderBy("nome");
  804.                 sqlQueryObject.setSortType(true);
  805.                 sqlQueryObject.setLimit(limit);
  806.                 sqlQueryObject.setOffset(offset);
  807.                 queryString = sqlQueryObject.createSQLQuery();
  808.             }
  809.             stmt = con.prepareStatement(queryString);
  810.             stmt.setLong(1, idPortaDelegata);
  811.             risultato = stmt.executeQuery();

  812.             Proprieta prop = null;
  813.             while (risultato.next()) {

  814.                 prop = new Proprieta();

  815.                 prop.setId(risultato.getLong("id"));
  816.                 prop.setNome(risultato.getString("nome"));
  817.                
  818.                 String plainValue = risultato.getString("valore");
  819.                 String encValue = risultato.getString("enc_value");
  820.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  821.                     prop.setValore(encValue);
  822.                 }
  823.                 else {
  824.                     prop.setValore(plainValue);
  825.                 }

  826.                 lista.add(prop);
  827.             }

  828.             return lista;

  829.         } catch (Exception qe) {
  830.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::porteDelegatePropList] Errore : " + qe.getMessage(),qe);
  831.         } finally {
  832.             //Chiudo statement and resultset
  833.             JDBCUtilities.closeResources(risultato, stmt);
  834.             this.driver.closeConnection(con);
  835.         }
  836.     }

  837.     protected List<PortaDelegata> porteDelegateList(String superuser, ISearch ricerca) throws DriverConfigurazioneException {
  838.         String nomeMetodo = "porteDelegateList";
  839.         int idLista = Liste.PORTE_DELEGATE;
  840.         int offset;
  841.         int limit;
  842.         String search;
  843.         String queryString;

  844.         limit = ricerca.getPageSize(idLista);
  845.         offset = ricerca.getIndexIniziale(idLista);
  846.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  847.         String filterProtocollo = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLO);
  848.         String filterProtocolli = SearchUtils.getFilter(ricerca, idLista, Filtri.FILTRO_PROTOCOLLI);
  849.         List<String> tipoSoggettiProtocollo = null;
  850.         try {
  851.             tipoSoggettiProtocollo = Filtri.convertToTipiSoggetti(filterProtocollo, filterProtocolli);
  852.         }catch(Exception e) {
  853.             throw new DriverConfigurazioneException(e.getMessage(),e);
  854.         }
  855.        
  856.         this.driver.logDebug("search : " + search);
  857.         this.driver.logDebug("filterProtocollo : " + filterProtocollo);
  858.         this.driver.logDebug("filterProtocolli : " + filterProtocolli);

  859.         Connection con = null;
  860.         PreparedStatement stmt=null;
  861.         ResultSet risultato=null;
  862.         ArrayList<PortaDelegata> lista = new ArrayList<>();

  863.         if (this.driver.atomica) {
  864.             try {
  865.                 con = this.driver.getConnectionFromDatasource("porteDelegateList");
  866.             } catch (Exception e) {
  867.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  868.             }

  869.         } else
  870.             con = this.driver.globalConnection;

  871.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  872.         try {

  873.             if (!search.equals("")) {
  874.                 //query con search
  875.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  876.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  877.                 sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  878.                 sqlQueryObject.addSelectCountField("*", "cont");
  879.                 sqlQueryObject.addWhereCondition("id_soggetto = "+CostantiDB.SOGGETTI+".id");
  880.                 if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  881.                     sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
  882.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  883.                 if(tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
  884.                     sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
  885.                 }
  886.                 sqlQueryObject.setANDLogicOperator(true);
  887.                 queryString = sqlQueryObject.createSQLQuery();
  888.             } else {
  889.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  890.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  891.                 sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  892.                 sqlQueryObject.addSelectCountField("*", "cont");
  893.                 sqlQueryObject.addWhereCondition("id_soggetto = "+CostantiDB.SOGGETTI+".id");
  894.                 if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  895.                     sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
  896.                 if(tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
  897.                     sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
  898.                 }
  899.                 sqlQueryObject.setANDLogicOperator(true);
  900.                 queryString = sqlQueryObject.createSQLQuery();
  901.             }
  902.             stmt = con.prepareStatement(queryString);
  903.             if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  904.                 stmt.setString(1, superuser);
  905.             risultato = stmt.executeQuery();
  906.             if (risultato.next())
  907.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  908.             risultato.close();
  909.             stmt.close();

  910.             // ricavo le entries
  911.             if (limit == 0) // con limit
  912.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  913.             if (!search.equals("")) { // con search
  914.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  915.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  916.                 sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  917.                 sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".id");
  918.                 sqlQueryObject.addSelectField("nome_porta");
  919.                 sqlQueryObject.addWhereCondition("id_soggetto = "+CostantiDB.SOGGETTI+".id");
  920.                 if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  921.                     sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
  922.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  923.                 if(tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
  924.                     sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
  925.                 }
  926.                 sqlQueryObject.setANDLogicOperator(true);
  927.                 sqlQueryObject.addOrderBy("nome_porta");
  928.                 sqlQueryObject.setSortType(true);
  929.                 sqlQueryObject.setLimit(limit);
  930.                 sqlQueryObject.setOffset(offset);
  931.                 queryString = sqlQueryObject.createSQLQuery();
  932.             } else {
  933.                 // senza search
  934.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  935.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  936.                 sqlQueryObject.addFromTable(CostantiDB.SOGGETTI);
  937.                 sqlQueryObject.addSelectField(CostantiDB.PORTE_DELEGATE+".id");
  938.                 sqlQueryObject.addSelectField("nome_porta");
  939.                 sqlQueryObject.addWhereCondition("id_soggetto = "+CostantiDB.SOGGETTI+".id");
  940.                 if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  941.                     sqlQueryObject.addWhereCondition(CostantiDB.SOGGETTI+".superuser = ?");
  942.                 if(tipoSoggettiProtocollo!=null && tipoSoggettiProtocollo.size()>0) {
  943.                     sqlQueryObject.addWhereINCondition("tipo_soggetto", true, tipoSoggettiProtocollo.toArray(new String[1]));
  944.                 }
  945.                 sqlQueryObject.setANDLogicOperator(true);
  946.                 sqlQueryObject.addOrderBy("nome_porta");
  947.                 sqlQueryObject.setSortType(true);
  948.                 sqlQueryObject.setLimit(limit);
  949.                 sqlQueryObject.setOffset(offset);
  950.                 queryString = sqlQueryObject.createSQLQuery();
  951.             }
  952.             stmt = con.prepareStatement(queryString);
  953.             if(this.driver.useSuperUser && superuser!=null && (!"".equals(superuser)))
  954.                 stmt.setString(1, superuser);
  955.             risultato = stmt.executeQuery();

  956.             PortaDelegata pd;
  957.             while (risultato.next()) {

  958.                 pd = this.porteDelegateDriver.getPortaDelegata(risultato.getLong("id"),con);
  959.                 lista.add(pd);
  960.             }

  961.             return lista;

  962.         } catch (Exception qe) {
  963.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  964.         } finally {

  965.             //Chiudo statement and resultset
  966.             JDBCUtilities.closeResources(risultato, stmt);

  967.             this.driver.closeConnection(con);
  968.         }
  969.     }
  970.    
  971.    
  972.     protected List<ServizioApplicativo> porteDelegateServizioApplicativoList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  973.         String nomeMetodo = "porteDelegateServizioApplicativoList";
  974.         int idLista = Liste.PORTE_DELEGATE_SERVIZIO_APPLICATIVO;
  975.         String nomeTabella = CostantiDB.PORTE_DELEGATE_SA;
  976.         return _porteDelegateServizioApplicativoList(idPortaDelegata, ricerca,
  977.                 nomeMetodo, nomeTabella, idLista);
  978.     }
  979.     protected List<ServizioApplicativo> porteDelegateServizioApplicativoTokenList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  980.         String nomeMetodo = "porteDelegateServizioApplicativoTokenList";
  981.         int idLista = Liste.PORTE_DELEGATE_TOKEN_SERVIZIO_APPLICATIVO;
  982.         String nomeTabella = CostantiDB.PORTE_DELEGATE_TOKEN_SA;
  983.         return _porteDelegateServizioApplicativoList(idPortaDelegata, ricerca,
  984.                 nomeMetodo, nomeTabella, idLista);
  985.     }
  986.     private List<ServizioApplicativo> _porteDelegateServizioApplicativoList(long idPortaDelegata, ISearch ricerca,
  987.             String nomeMetodo, String nomeTabella, int idLista) throws DriverConfigurazioneException {
  988.         int offset;
  989.         int limit;
  990.         String search;
  991.         String queryString;

  992.         limit = ricerca.getPageSize(idLista);
  993.         offset = ricerca.getIndexIniziale(idLista);
  994.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  995.         Connection con = null;
  996.         PreparedStatement stmt=null;
  997.         PreparedStatement stmt1=null;
  998.         ResultSet risultato=null;
  999.         ResultSet rs1=null;
  1000.         ArrayList<ServizioApplicativo> lista = new ArrayList<>();

  1001.         if (this.driver.atomica) {
  1002.             try {
  1003.                 con = this.driver.getConnectionFromDatasource("porteDelegateServizioApplicativoList");
  1004.             } catch (Exception e) {
  1005.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1006.             }

  1007.         } else
  1008.             con = this.driver.globalConnection;

  1009.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1010.         try {

  1011.             if (!search.equals("")) {
  1012.                 //query con search
  1013.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1014.                 sqlQueryObject.addFromTable(nomeTabella);
  1015.                 sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
  1016.                 sqlQueryObject.addSelectCountField("*", "cont");
  1017.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1018.                 sqlQueryObject.addWhereCondition(nomeTabella+".id_servizio_applicativo="+CostantiDB.SERVIZI_APPLICATIVI+".id");
  1019.                 sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+".nome", search, true, true);
  1020.                 sqlQueryObject.setANDLogicOperator(true);
  1021.                 queryString = sqlQueryObject.createSQLQuery();
  1022.             } else {
  1023.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1024.                 sqlQueryObject.addFromTable(nomeTabella);
  1025.                 sqlQueryObject.addSelectCountField("*", "cont");
  1026.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1027.                 queryString = sqlQueryObject.createSQLQuery();
  1028.             }
  1029.             stmt = con.prepareStatement(queryString);
  1030.             stmt.setLong(1, idPortaDelegata);
  1031.             risultato = stmt.executeQuery();
  1032.             if (risultato.next())
  1033.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1034.             risultato.close();
  1035.             stmt.close();

  1036.             // ricavo le entries
  1037.             if (limit == 0) // con limit
  1038.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  1039.             if (!search.equals("")) { // con search
  1040.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1041.                 sqlQueryObject.addFromTable(nomeTabella);
  1042.                 sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
  1043.                 sqlQueryObject.addSelectField(nomeTabella,"id_servizio_applicativo");
  1044.                 sqlQueryObject.addSelectField(nomeTabella,"id_porta");
  1045.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1046.                 sqlQueryObject.addWhereCondition(nomeTabella+".id_servizio_applicativo="+CostantiDB.SERVIZI_APPLICATIVI+".id");
  1047.                 sqlQueryObject.addWhereLikeCondition(CostantiDB.SERVIZI_APPLICATIVI+".nome", search, true, true);
  1048.                 sqlQueryObject.setANDLogicOperator(true);
  1049.                 sqlQueryObject.addOrderBy("id_servizio_applicativo");
  1050.                 sqlQueryObject.setSortType(true);
  1051.                 sqlQueryObject.setLimit(limit);
  1052.                 sqlQueryObject.setOffset(offset);
  1053.                 queryString = sqlQueryObject.createSQLQuery();
  1054.             } else {
  1055.                 // senza search
  1056.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1057.                 sqlQueryObject.addFromTable(nomeTabella);
  1058.                 sqlQueryObject.addSelectField("id_servizio_applicativo");
  1059.                 sqlQueryObject.addSelectField("id_porta");
  1060.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1061.                 sqlQueryObject.addOrderBy("id_servizio_applicativo");
  1062.                 sqlQueryObject.setSortType(true);
  1063.                 sqlQueryObject.setLimit(limit);
  1064.                 sqlQueryObject.setOffset(offset);
  1065.                 queryString = sqlQueryObject.createSQLQuery();
  1066.             }
  1067.             stmt = con.prepareStatement(queryString);
  1068.             stmt.setLong(1, idPortaDelegata);
  1069.             risultato = stmt.executeQuery();

  1070.             ServizioApplicativo sa = null;

  1071.             long idServizioApplicativo = 0;
  1072.             while (risultato.next()) {
  1073.                 idServizioApplicativo = risultato.getLong("id_servizio_applicativo");

  1074.                 sa = new ServizioApplicativo();

  1075.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1076.                 sqlQueryObject.addFromTable(CostantiDB.SERVIZI_APPLICATIVI);
  1077.                 sqlQueryObject.addSelectField("*");
  1078.                 sqlQueryObject.addWhereCondition("id = ?");
  1079.                 queryString = sqlQueryObject.createSQLQuery();

  1080.                 stmt1 = con.prepareStatement(queryString);
  1081.                 stmt1.setLong(1, idServizioApplicativo);

  1082.                 rs1 = stmt1.executeQuery();

  1083.                 // recupero i dati del servizio applicativo
  1084.                 if (rs1.next()) {
  1085.                     sa.setId(idServizioApplicativo);
  1086.                     sa.setNome(rs1.getString("nome"));
  1087.                     sa.setDescrizione(rs1.getString("descrizione"));
  1088.                     sa.setIdSoggetto(rs1.getLong("id_soggetto"));
  1089.                 } else
  1090.                     throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore recuperando i dati del Servizio Applicativo.");

  1091.                 rs1.close();
  1092.                 stmt1.close();
  1093.                 lista.add(sa);

  1094.             }

  1095.             return lista;

  1096.         } catch (Exception qe) {
  1097.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1098.         } finally {

  1099.             //Chiudo statement and resultset
  1100.             JDBCUtilities.closeResources(risultato, stmt);
  1101.             JDBCUtilities.closeResources(rs1, stmt1);
  1102.            
  1103.             this.driver.closeConnection(con);
  1104.         }
  1105.     }

  1106.     protected List<MessageSecurityFlowParameter> porteDelegateMessageSecurityRequestList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1107.         String nomeMetodo = "porteDelegateMessageSecurityRequestList";
  1108.         int idLista = Liste.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST;
  1109.         int offset;
  1110.         int limit;
  1111.         String search;
  1112.         String queryString;

  1113.         limit = ricerca.getPageSize(idLista);
  1114.         offset = ricerca.getIndexIniziale(idLista);
  1115.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1116.         Connection con = null;
  1117.         PreparedStatement stmt=null;
  1118.         ResultSet risultato=null;
  1119.         ArrayList<MessageSecurityFlowParameter> lista = new ArrayList<>();

  1120.         if (this.driver.atomica) {
  1121.             try {
  1122.                 con = this.driver.getConnectionFromDatasource("porteDelegateMessageSecurityRequestList");
  1123.             } catch (Exception e) {
  1124.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1125.             }

  1126.         } else
  1127.             con = this.driver.globalConnection;

  1128.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1129.         try {

  1130.             if (!search.equals("")) {
  1131.                 //query con search
  1132.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1133.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST);
  1134.                 sqlQueryObject.addSelectCountField("*", "cont");
  1135.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1136.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1137.                 sqlQueryObject.setANDLogicOperator(true);
  1138.                 queryString = sqlQueryObject.createSQLQuery();
  1139.             } else {
  1140.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1141.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST);
  1142.                 sqlQueryObject.addSelectCountField("*", "cont");
  1143.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1144.                 queryString = sqlQueryObject.createSQLQuery();
  1145.             }
  1146.             stmt = con.prepareStatement(queryString);
  1147.             stmt.setLong(1, idPortaDelegata);
  1148.             risultato = stmt.executeQuery();
  1149.             if (risultato.next())
  1150.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1151.             risultato.close();
  1152.             stmt.close();

  1153.             // ricavo le entries
  1154.             if (limit == 0) // con limit
  1155.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;

  1156.             if (!search.equals("")) { // con search
  1157.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1158.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST);
  1159.                 sqlQueryObject.addSelectField("id_porta");
  1160.                 sqlQueryObject.addSelectField("nome");
  1161.                 sqlQueryObject.addSelectField("valore");
  1162.                 sqlQueryObject.addSelectField("enc_value");
  1163.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1164.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1165.                 sqlQueryObject.setANDLogicOperator(true);
  1166.                 sqlQueryObject.addOrderBy("nome");
  1167.                 sqlQueryObject.setSortType(true);
  1168.                 sqlQueryObject.setLimit(limit);
  1169.                 sqlQueryObject.setOffset(offset);
  1170.                 queryString = sqlQueryObject.createSQLQuery();
  1171.             } else {
  1172.                 // senza search
  1173.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1174.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_REQUEST);
  1175.                 sqlQueryObject.addSelectField("id_porta");
  1176.                 sqlQueryObject.addSelectField("nome");
  1177.                 sqlQueryObject.addSelectField("valore");
  1178.                 sqlQueryObject.addSelectField("enc_value");
  1179.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1180.                 sqlQueryObject.addOrderBy("nome");
  1181.                 sqlQueryObject.setSortType(true);
  1182.                 sqlQueryObject.setLimit(limit);
  1183.                 sqlQueryObject.setOffset(offset);
  1184.                 queryString = sqlQueryObject.createSQLQuery();
  1185.             }
  1186.             stmt = con.prepareStatement(queryString);
  1187.             stmt.setLong(1, idPortaDelegata);
  1188.             risultato = stmt.executeQuery();

  1189.             MessageSecurityFlowParameter wsreq;
  1190.             while (risultato.next()) {

  1191.                 wsreq = new MessageSecurityFlowParameter();

  1192.                 wsreq.setId(risultato.getLong("id_porta"));
  1193.                 wsreq.setNome(risultato.getString("nome"));
  1194.                
  1195.                 String plainValue = risultato.getString("valore");
  1196.                 String encValue = risultato.getString("enc_value");
  1197.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  1198.                     wsreq.setValore(encValue);
  1199.                 }
  1200.                 else {
  1201.                     wsreq.setValore(plainValue);
  1202.                 }

  1203.                 lista.add(wsreq);
  1204.             }

  1205.             return lista;

  1206.         } catch (Exception qe) {
  1207.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1208.         } finally {

  1209.             //Chiudo statement and resultset
  1210.             JDBCUtilities.closeResources(risultato, stmt);

  1211.             this.driver.closeConnection(con);
  1212.         }
  1213.     }

  1214.     protected List<MessageSecurityFlowParameter> porteDelegateMessageSecurityResponseList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1215.         String nomeMetodo = "porteDelegateMessageSecurityResponseList";
  1216.         int idLista = Liste.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE;
  1217.         int offset;
  1218.         int limit;
  1219.         String search;
  1220.         String queryString;

  1221.         limit = ricerca.getPageSize(idLista);
  1222.         offset = ricerca.getIndexIniziale(idLista);
  1223.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1224.         Connection con = null;
  1225.         PreparedStatement stmt=null;
  1226.         ResultSet risultato=null;
  1227.         ArrayList<MessageSecurityFlowParameter> lista = new ArrayList<>();

  1228.         if (this.driver.atomica) {
  1229.             try {
  1230.                 con = this.driver.getConnectionFromDatasource("porteDelegateMessageSecurityResponseList");
  1231.             } catch (Exception e) {
  1232.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1233.             }

  1234.         } else
  1235.             con = this.driver.globalConnection;

  1236.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1237.         try {

  1238.             if (!search.equals("")) {
  1239.                 //query con search
  1240.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1241.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE);
  1242.                 sqlQueryObject.addSelectCountField("*", "cont");
  1243.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1244.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1245.                 sqlQueryObject.setANDLogicOperator(true);
  1246.                 queryString = sqlQueryObject.createSQLQuery();
  1247.             } else {
  1248.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1249.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE);
  1250.                 sqlQueryObject.addSelectCountField("*", "cont");
  1251.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1252.                 queryString = sqlQueryObject.createSQLQuery();
  1253.             }
  1254.             stmt = con.prepareStatement(queryString);
  1255.             stmt.setLong(1, idPortaDelegata);
  1256.             risultato = stmt.executeQuery();
  1257.             if (risultato.next())
  1258.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1259.             risultato.close();
  1260.             stmt.close();

  1261.             // ricavo le entries
  1262.             if (limit == 0) // con limit
  1263.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;

  1264.             if (!search.equals("")) { // con search
  1265.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1266.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE);
  1267.                 sqlQueryObject.addSelectField("id_porta");
  1268.                 sqlQueryObject.addSelectField("nome");
  1269.                 sqlQueryObject.addSelectField("valore");
  1270.                 sqlQueryObject.addSelectField("enc_value");
  1271.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1272.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1273.                 sqlQueryObject.setANDLogicOperator(true);
  1274.                 sqlQueryObject.addOrderBy("nome");
  1275.                 sqlQueryObject.setSortType(true);
  1276.                 sqlQueryObject.setLimit(limit);
  1277.                 sqlQueryObject.setOffset(offset);
  1278.                 queryString = sqlQueryObject.createSQLQuery();
  1279.             } else {
  1280.                 // senza search
  1281.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1282.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MESSAGE_SECURITY_RESPONSE);
  1283.                 sqlQueryObject.addSelectField("id_porta");
  1284.                 sqlQueryObject.addSelectField("nome");
  1285.                 sqlQueryObject.addSelectField("valore");
  1286.                 sqlQueryObject.addSelectField("enc_value");
  1287.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1288.                 sqlQueryObject.addOrderBy("nome");
  1289.                 sqlQueryObject.setSortType(true);
  1290.                 sqlQueryObject.setLimit(limit);
  1291.                 sqlQueryObject.setOffset(offset);
  1292.                 queryString = sqlQueryObject.createSQLQuery();
  1293.             }
  1294.             stmt = con.prepareStatement(queryString);
  1295.             stmt.setLong(1, idPortaDelegata);
  1296.             risultato = stmt.executeQuery();

  1297.             MessageSecurityFlowParameter wsresp;
  1298.             while (risultato.next()) {

  1299.                 wsresp = new MessageSecurityFlowParameter();

  1300.                 wsresp.setId(risultato.getLong("id_porta"));
  1301.                 wsresp.setNome(risultato.getString("nome"));
  1302.                
  1303.                 String plainValue = risultato.getString("valore");
  1304.                 String encValue = risultato.getString("enc_value");
  1305.                 if(encValue!=null && StringUtils.isNotEmpty(encValue)) {
  1306.                     wsresp.setValore(encValue);
  1307.                 }
  1308.                 else {
  1309.                     wsresp.setValore(plainValue);
  1310.                 }

  1311.                 lista.add(wsresp);
  1312.             }

  1313.             return lista;

  1314.         } catch (Exception qe) {
  1315.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1316.         } finally {

  1317.             //Chiudo statement and resultset
  1318.             JDBCUtilities.closeResources(risultato, stmt);

  1319.             this.driver.closeConnection(con);
  1320.         }
  1321.     }

  1322.     protected List<CorrelazioneApplicativaElemento> porteDelegateCorrelazioneApplicativaList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1323.         String nomeMetodo = "porteDelegateCorrelazioneApplicativaList";
  1324.         int idLista = Liste.PORTE_DELEGATE_CORRELAZIONE_APPLICATIVA;
  1325.         int offset;
  1326.         int limit;
  1327.         String search;
  1328.         String queryString;

  1329.         limit = ricerca.getPageSize(idLista);
  1330.         offset = ricerca.getIndexIniziale(idLista);
  1331.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1332.         Connection con = null;
  1333.         PreparedStatement stmt=null;
  1334.         ResultSet risultato=null;
  1335.         ArrayList<CorrelazioneApplicativaElemento> lista = new ArrayList<>();

  1336.         if (this.driver.atomica) {
  1337.             try {
  1338.                 con = this.driver.getConnectionFromDatasource("porteDelegateCorrelazioneApplicativaList");
  1339.             } catch (Exception e) {
  1340.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1341.             }

  1342.         } else
  1343.             con = this.driver.globalConnection;

  1344.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1345.         try {

  1346.             if (!search.equals("")) {
  1347.                 //query con search
  1348.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1349.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE);
  1350.                 sqlQueryObject.addSelectCountField("*", "cont");
  1351.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1352.                 sqlQueryObject.addWhereLikeCondition("nome_elemento", search, true, true);
  1353.                 sqlQueryObject.setANDLogicOperator(true);
  1354.                 queryString = sqlQueryObject.createSQLQuery();
  1355.             } else {
  1356.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1357.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE);
  1358.                 sqlQueryObject.addSelectCountField("*", "cont");
  1359.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1360.                 queryString = sqlQueryObject.createSQLQuery();
  1361.             }
  1362.             stmt = con.prepareStatement(queryString);
  1363.             stmt.setLong(1, idPortaDelegata);
  1364.             risultato = stmt.executeQuery();
  1365.             if (risultato.next())
  1366.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1367.             risultato.close();
  1368.             stmt.close();

  1369.             // ricavo le entries
  1370.             if (limit == 0) // con limit
  1371.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  1372.             if (!search.equals("")) { // con search
  1373.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1374.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE);
  1375.                 sqlQueryObject.addSelectField("id");
  1376.                 sqlQueryObject.addSelectField("nome_elemento");
  1377.                 sqlQueryObject.addSelectField("mode_correlazione");
  1378.                 sqlQueryObject.addSelectField("id_porta");
  1379.                 sqlQueryObject.addSelectField("identificazione_fallita");
  1380.                 sqlQueryObject.addSelectField("riuso_id");
  1381.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1382.                 sqlQueryObject.addWhereLikeCondition("nome_elemento", search, true, true);
  1383.                 sqlQueryObject.setANDLogicOperator(true);
  1384.                 sqlQueryObject.addOrderBy("id");
  1385.                 sqlQueryObject.setSortType(true);
  1386.                 sqlQueryObject.setLimit(limit);
  1387.                 sqlQueryObject.setOffset(offset);
  1388.                 queryString = sqlQueryObject.createSQLQuery();
  1389.             } else {
  1390.                 // senza search
  1391.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1392.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE);
  1393.                 sqlQueryObject.addSelectField("id");
  1394.                 sqlQueryObject.addSelectField("nome_elemento");
  1395.                 sqlQueryObject.addSelectField("mode_correlazione");
  1396.                 sqlQueryObject.addSelectField("id_porta");
  1397.                 sqlQueryObject.addSelectField("identificazione_fallita");
  1398.                 sqlQueryObject.addSelectField("riuso_id");
  1399.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1400.                 sqlQueryObject.addOrderBy("id");
  1401.                 sqlQueryObject.setSortType(true);
  1402.                 sqlQueryObject.setLimit(limit);
  1403.                 sqlQueryObject.setOffset(offset);
  1404.                 queryString = sqlQueryObject.createSQLQuery();
  1405.             }
  1406.             stmt = con.prepareStatement(queryString);
  1407.             stmt.setLong(1, idPortaDelegata);
  1408.             risultato = stmt.executeQuery();

  1409.             CorrelazioneApplicativaElemento cae = null;

  1410.             //long idServizioApplicativo = 0;
  1411.             while (risultato.next()) {
  1412.                 cae = new CorrelazioneApplicativaElemento();
  1413.                 cae.setId(risultato.getLong("id"));
  1414.                 cae.setNome(risultato.getString("nome_elemento"));
  1415.                 cae.setIdentificazione(DriverConfigurazioneDBLib.getEnumCorrelazioneApplicativaRichiestaIdentificazione(risultato.getString("mode_correlazione")));
  1416.                 cae.setIdentificazioneFallita(DriverConfigurazioneDBLib.getEnumCorrelazioneApplicativaGestioneIdentificazioneFallita(risultato.getString("identificazione_fallita")));
  1417.                 cae.setRiusoIdentificativo(DriverConfigurazioneDBLib.getEnumStatoFunzionalita(risultato.getString("riuso_id")));
  1418.                 lista.add(cae);
  1419.             }

  1420.             return lista;

  1421.         } catch (Exception qe) {
  1422.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1423.         } finally {

  1424.             //Chiudo statement and resultset
  1425.             JDBCUtilities.closeResources(risultato, stmt);

  1426.             this.driver.closeConnection(con);
  1427.         }
  1428.     }

  1429.     protected List<CorrelazioneApplicativaRispostaElemento> porteDelegateCorrelazioneApplicativaRispostaList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1430.         String nomeMetodo = "porteDelegateCorrelazioneApplicativaRispostaList";
  1431.         int idLista = Liste.PORTE_DELEGATE_CORRELAZIONE_APPLICATIVA_RISPOSTA;
  1432.         int offset;
  1433.         int limit;
  1434.         String search;
  1435.         String queryString;

  1436.         limit = ricerca.getPageSize(idLista);
  1437.         offset = ricerca.getIndexIniziale(idLista);
  1438.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1439.         Connection con = null;
  1440.         PreparedStatement stmt=null;
  1441.         ResultSet risultato=null;
  1442.         ArrayList<CorrelazioneApplicativaRispostaElemento> lista = new ArrayList<>();

  1443.         if (this.driver.atomica) {
  1444.             try {
  1445.                 con = this.driver.getConnectionFromDatasource("porteDelegateCorrelazioneApplicativaRispostaList");
  1446.             } catch (Exception e) {
  1447.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1448.             }

  1449.         } else
  1450.             con = this.driver.globalConnection;

  1451.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1452.         try {

  1453.             if (!search.equals("")) {
  1454.                 //query con search
  1455.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1456.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE_RISPOSTA);
  1457.                 sqlQueryObject.addSelectCountField("*", "cont");
  1458.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1459.                 sqlQueryObject.addWhereLikeCondition("nome_elemento", search, true, true);
  1460.                 sqlQueryObject.setANDLogicOperator(true);
  1461.                 queryString = sqlQueryObject.createSQLQuery();
  1462.             } else {
  1463.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1464.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE_RISPOSTA);
  1465.                 sqlQueryObject.addSelectCountField("*", "cont");
  1466.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1467.                 queryString = sqlQueryObject.createSQLQuery();
  1468.             }
  1469.             stmt = con.prepareStatement(queryString);
  1470.             stmt.setLong(1, idPortaDelegata);
  1471.             risultato = stmt.executeQuery();
  1472.             if (risultato.next())
  1473.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1474.             risultato.close();
  1475.             stmt.close();

  1476.             // ricavo le entries
  1477.             if (limit == 0) // con limit
  1478.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  1479.             if (!search.equals("")) { // con search
  1480.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1481.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE_RISPOSTA);
  1482.                 sqlQueryObject.addSelectField("id");
  1483.                 sqlQueryObject.addSelectField("nome_elemento");
  1484.                 sqlQueryObject.addSelectField("mode_correlazione");
  1485.                 sqlQueryObject.addSelectField("id_porta");
  1486.                 sqlQueryObject.addSelectField("identificazione_fallita");
  1487.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1488.                 sqlQueryObject.addWhereLikeCondition("nome_elemento", search, true, true);
  1489.                 sqlQueryObject.setANDLogicOperator(true);
  1490.                 sqlQueryObject.addOrderBy("id");
  1491.                 sqlQueryObject.setSortType(true);
  1492.                 sqlQueryObject.setLimit(limit);
  1493.                 sqlQueryObject.setOffset(offset);
  1494.                 queryString = sqlQueryObject.createSQLQuery();
  1495.             } else {
  1496.                 // senza search
  1497.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1498.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_CORRELAZIONE_RISPOSTA);
  1499.                 sqlQueryObject.addSelectField("id");
  1500.                 sqlQueryObject.addSelectField("nome_elemento");
  1501.                 sqlQueryObject.addSelectField("mode_correlazione");
  1502.                 sqlQueryObject.addSelectField("id_porta");
  1503.                 sqlQueryObject.addSelectField("identificazione_fallita");
  1504.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1505.                 sqlQueryObject.addOrderBy("id");
  1506.                 sqlQueryObject.setSortType(true);
  1507.                 sqlQueryObject.setLimit(limit);
  1508.                 sqlQueryObject.setOffset(offset);
  1509.                 queryString = sqlQueryObject.createSQLQuery();
  1510.             }
  1511.             stmt = con.prepareStatement(queryString);
  1512.             stmt.setLong(1, idPortaDelegata);
  1513.             risultato = stmt.executeQuery();

  1514.             CorrelazioneApplicativaRispostaElemento cae = null;

  1515.             //long idServizioApplicativo = 0;
  1516.             while (risultato.next()) {
  1517.                 cae = new CorrelazioneApplicativaRispostaElemento();
  1518.                 cae.setId(risultato.getLong("id"));
  1519.                 cae.setNome(risultato.getString("nome_elemento"));
  1520.                 cae.setIdentificazione(DriverConfigurazioneDBLib.getEnumCorrelazioneApplicativaRispostaIdentificazione(risultato.getString("mode_correlazione")));
  1521.                 cae.setIdentificazioneFallita(DriverConfigurazioneDBLib.getEnumCorrelazioneApplicativaGestioneIdentificazioneFallita(risultato.getString("identificazione_fallita")));
  1522.                 lista.add(cae);
  1523.             }

  1524.             return lista;

  1525.         } catch (Exception qe) {
  1526.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1527.         } finally {

  1528.             //Chiudo statement and resultset
  1529.             JDBCUtilities.closeResources(risultato, stmt);

  1530.             this.driver.closeConnection(con);
  1531.         }
  1532.     }
  1533.    
  1534.     protected List<PortaDelegata> serviziFruitoriPorteDelegateList(long idSoggetto, String tipoServizio,String nomeServizio,Long idServizio,
  1535.             String tipoSoggettoErogatore, String nomeSoggettoErogatore, Long idSoggettoErogatore, ISearch ricerca) throws DriverConfigurazioneException {
  1536.         String nomeMetodo = "serviziFruitoriPorteDelegateList";
  1537.         int idLista = Liste.SERVIZI_FRUITORI_PORTE_DELEGATE;
  1538.         int offset;
  1539.         int limit;
  1540.         String search;
  1541.         String queryString;

  1542.         limit = ricerca.getPageSize(idLista);
  1543.         offset = ricerca.getIndexIniziale(idLista);
  1544.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));
  1545.         ricerca.getSearchString(idLista);

  1546.         Connection con = null;
  1547.         PreparedStatement stmt = null;
  1548.         ResultSet risultato = null;

  1549.         ArrayList<PortaDelegata> lista = new ArrayList<PortaDelegata>();

  1550.         if (this.driver.atomica) {
  1551.             try {
  1552.                 con = this.driver.getConnectionFromDatasource(nomeMetodo);

  1553.             } catch (Exception e) {
  1554.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1555.             }

  1556.         } else
  1557.             con = this.driver.globalConnection;

  1558.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1559.         try {

  1560.             if (!search.equals("")) {
  1561.                 //query con search
  1562.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1563.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1564.                 sqlQueryObject.addSelectCountField("*", "cont");
  1565.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  1566.                 if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1567.                     sqlQueryObject.addWhereCondition(false, "id_soggetto_erogatore=?" , "tipo_soggetto_erogatore=? AND nome_soggetto_erogatore=?");
  1568.                 }
  1569.                 else{
  1570.                     sqlQueryObject.addWhereCondition("tipo_soggetto_erogatore=?");
  1571.                     sqlQueryObject.addWhereCondition("nome_soggetto_erogatore=?");
  1572.                 }
  1573.                 if(idServizio!=null && idServizio > 0){
  1574.                     sqlQueryObject.addWhereCondition(false, "id_servizio=?" , "tipo_servizio=? AND nome_servizio=?");
  1575.                 }
  1576.                 else{
  1577.                     sqlQueryObject.addWhereCondition("tipo_servizio=?");
  1578.                     sqlQueryObject.addWhereCondition("nome_servizio=?");
  1579.                 }
  1580.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  1581.                 sqlQueryObject.setANDLogicOperator(true);
  1582.                 queryString = sqlQueryObject.createSQLQuery();
  1583.             } else {
  1584.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1585.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1586.                 sqlQueryObject.addSelectCountField("*", "cont");
  1587.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  1588.                 if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1589.                     sqlQueryObject.addWhereCondition(false, "id_soggetto_erogatore=?" , "tipo_soggetto_erogatore=? AND nome_soggetto_erogatore=?");
  1590.                 }
  1591.                 else{
  1592.                     sqlQueryObject.addWhereCondition("tipo_soggetto_erogatore=?");
  1593.                     sqlQueryObject.addWhereCondition("nome_soggetto_erogatore=?");
  1594.                 }
  1595.                 if(idServizio!=null && idServizio > 0){
  1596.                     sqlQueryObject.addWhereCondition(false, "id_servizio=?" , "tipo_servizio=? AND nome_servizio=?");
  1597.                 }
  1598.                 else{
  1599.                     sqlQueryObject.addWhereCondition("tipo_servizio=?");
  1600.                     sqlQueryObject.addWhereCondition("nome_servizio=?");
  1601.                 }
  1602.                 sqlQueryObject.setANDLogicOperator(true);
  1603.                 queryString = sqlQueryObject.createSQLQuery();
  1604.             }
  1605.             stmt = con.prepareStatement(queryString);

  1606.             int index = 1;
  1607.            
  1608.             stmt.setLong(index++, idSoggetto);
  1609.            
  1610.             if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1611.                 stmt.setLong(index++, idSoggettoErogatore);
  1612.             }
  1613.             stmt.setString(index++, tipoSoggettoErogatore);
  1614.             stmt.setString(index++, nomeSoggettoErogatore);
  1615.            
  1616.             if(idServizio!=null && idServizio > 0){
  1617.                 stmt.setLong(index++, idServizio);
  1618.             }
  1619.             stmt.setString(index++, tipoServizio);
  1620.             stmt.setString(index++, nomeServizio);

  1621.             risultato = stmt.executeQuery();
  1622.             if (risultato.next())
  1623.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1624.             risultato.close();
  1625.             stmt.close();

  1626.             // ricavo le entries
  1627.             if (limit == 0) // con limit
  1628.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;
  1629.             if (!search.equals("")) { // con search
  1630.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1631.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1632.                 sqlQueryObject.addSelectField("id");
  1633.                 sqlQueryObject.addSelectField("nome_porta");
  1634.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  1635.                 if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1636.                     sqlQueryObject.addWhereCondition(false, "id_soggetto_erogatore=?" , "tipo_soggetto_erogatore=? AND nome_soggetto_erogatore=?");
  1637.                 }
  1638.                 else{
  1639.                     sqlQueryObject.addWhereCondition("tipo_soggetto_erogatore=?");
  1640.                     sqlQueryObject.addWhereCondition("nome_soggetto_erogatore=?");
  1641.                 }
  1642.                 if(idServizio!=null && idServizio > 0){
  1643.                     sqlQueryObject.addWhereCondition(false, "id_servizio=?" , "tipo_servizio=? AND nome_servizio=?");
  1644.                 }
  1645.                 else{
  1646.                     sqlQueryObject.addWhereCondition("tipo_servizio=?");
  1647.                     sqlQueryObject.addWhereCondition("nome_servizio=?");
  1648.                 }
  1649.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  1650.                 sqlQueryObject.setSelectDistinct(true);
  1651.                 sqlQueryObject.setANDLogicOperator(true);
  1652.                 sqlQueryObject.addOrderBy("nome_porta");
  1653.                 sqlQueryObject.setSortType(true);
  1654.                 sqlQueryObject.setLimit(limit);
  1655.                 sqlQueryObject.setOffset(offset);
  1656.                 queryString = sqlQueryObject.createSQLQuery();
  1657.             } else {
  1658.                 // senza search
  1659.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1660.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1661.                 sqlQueryObject.addSelectField("id");
  1662.                 sqlQueryObject.addSelectField("nome_porta");
  1663.                 sqlQueryObject.addWhereCondition("id_soggetto = ?");
  1664.                 if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1665.                     sqlQueryObject.addWhereCondition(false, "id_soggetto_erogatore=?" , "tipo_soggetto_erogatore=? AND nome_soggetto_erogatore=?");
  1666.                 }
  1667.                 else{
  1668.                     sqlQueryObject.addWhereCondition("tipo_soggetto_erogatore=?");
  1669.                     sqlQueryObject.addWhereCondition("nome_soggetto_erogatore=?");
  1670.                 }
  1671.                 if(idServizio!=null && idServizio > 0){
  1672.                     sqlQueryObject.addWhereCondition(false, "id_servizio=?" , "tipo_servizio=? AND nome_servizio=?");
  1673.                 }
  1674.                 else{
  1675.                     sqlQueryObject.addWhereCondition("tipo_servizio=?");
  1676.                     sqlQueryObject.addWhereCondition("nome_servizio=?");
  1677.                 }
  1678.                 sqlQueryObject.setSelectDistinct(true);
  1679.                 sqlQueryObject.setANDLogicOperator(true);
  1680.                 sqlQueryObject.addOrderBy("nome_porta");
  1681.                 sqlQueryObject.setSortType(true);
  1682.                 sqlQueryObject.setLimit(limit);
  1683.                 sqlQueryObject.setOffset(offset);
  1684.                 queryString = sqlQueryObject.createSQLQuery();
  1685.             }
  1686.             stmt = con.prepareStatement(queryString);

  1687.             index = 1;
  1688.            
  1689.             stmt.setLong(index++, idSoggetto);
  1690.            
  1691.             if(idSoggettoErogatore!=null && idSoggettoErogatore > 0){
  1692.                 stmt.setLong(index++, idSoggettoErogatore);
  1693.             }
  1694.             stmt.setString(index++, tipoSoggettoErogatore);
  1695.             stmt.setString(index++, nomeSoggettoErogatore);
  1696.            
  1697.             if(idServizio!=null && idServizio > 0){
  1698.                 stmt.setLong(index++, idServizio);
  1699.             }
  1700.             stmt.setString(index++, tipoServizio);
  1701.             stmt.setString(index++, nomeServizio);

  1702.             risultato = stmt.executeQuery();

  1703.             PortaDelegata pd = null;

  1704.             while (risultato.next()) {

  1705.                 pd = this.porteDelegateDriver.getPortaDelegata(risultato.getLong("id"));

  1706.                 lista.add(pd);

  1707.             }

  1708.             return lista;

  1709.         } catch (Exception se) {

  1710.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception: " + se.getMessage(),se);
  1711.         } finally {
  1712.             //Chiudo statement and resultset
  1713.             JDBCUtilities.closeResources(risultato, stmt);
  1714.             this.driver.closeConnection(con);
  1715.         }
  1716.     }
  1717.    
  1718.     protected List<PortaDelegata> getPorteDelegateByFruitore(IDSoggetto fruitore,ISearch filters) throws DriverConfigurazioneException{
  1719.         return getPorteDelegate(null, fruitore,filters);
  1720.     }

  1721.     /**
  1722.      * Recupera tutte le porte delegate del soggetto fruitore, relative al servizio idServizio (se diverso da null), erogato dal soggetto erogatore del servizio.
  1723.      * @param idSE L'id del servizio, puo essere null in tal caso si comporta come il metodo getPorteDelegateByFruitore
  1724.      * @return List<PortaDelegata>
  1725.      * @throws DriverConfigurazioneException
  1726.      */
  1727.     protected List<PortaDelegata> getPorteDelegate(IDServizio idSE,IDSoggetto fruitore,ISearch filters) throws DriverConfigurazioneException{
  1728.         Connection con = null;
  1729.         PreparedStatement stmt = null;
  1730.         ResultSet risultato = null;
  1731.         String queryString = "";
  1732.         int idLista = Liste.PORTE_DELEGATE;


  1733.         int limit = filters.getPageSize(idLista);
  1734.         int offset = filters.getIndexIniziale(idLista);
  1735.         String search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(filters.getSearchString(idLista)) ? "" : filters.getSearchString(idLista));

  1736.         if (this.driver.atomica) {
  1737.             try {
  1738.                 con = this.driver.getConnectionFromDatasource("getPorteDelegate(idServizio,fruitore)");
  1739.             } catch (Exception e) {
  1740.                 throw new DriverConfigurazioneException(
  1741.                         "[DriverConfigurazioneDB::getPorteDelegate] Exception accedendo al datasource :"
  1742.                                 + e.getMessage(),e);

  1743.             }

  1744.         } else
  1745.             con = this.driver.globalConnection;
  1746.         ArrayList<PortaDelegata> lista = null;
  1747.         try {

  1748.             IDSoggetto erogatore = null;
  1749.             String nomeErogatore = null;
  1750.             String tipoErogatore = null;
  1751.             String tipoServizio = null;
  1752.             String nomeServizio = null;
  1753.             Integer versioneServizio = null;

  1754.             if(idSE!=null){
  1755.                 erogatore = idSE.getSoggettoErogatore();
  1756.                 nomeErogatore = erogatore.getNome();
  1757.                 tipoErogatore = erogatore.getTipo();
  1758.                 tipoServizio = idSE.getTipo();
  1759.                 nomeServizio = idSE.getNome();
  1760.                 versioneServizio = idSE.getVersione();
  1761.             }

  1762.             long idSoggettoFruitore = DBUtils.getIdSoggetto(fruitore.getNome(), fruitore.getTipo(), con, this.driver.tipoDB);

  1763.             long idSoggettoErogatore =-1;
  1764.             long idServizio = -1;
  1765.             if(idSE!=null){
  1766.                 idSoggettoErogatore = DBUtils.getIdSoggetto(erogatore.getNome(), erogatore.getTipo(), con, this.driver.tipoDB);
  1767.                 idServizio = DBUtils.getIdServizio(nomeServizio, tipoServizio, versioneServizio, erogatore.getNome(), erogatore.getTipo(), con, this.driver.tipoDB);
  1768.             }


  1769.             ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1770.             sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1771.             sqlQueryObject.addSelectCountField("*", "cont");
  1772.             sqlQueryObject.setANDLogicOperator(true);
  1773.             if (!search.equals("")) {
  1774.                 //query con search
  1775.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);
  1776.             }
  1777.             queryString = sqlQueryObject.createSQLQuery();

  1778.             stmt = con.prepareStatement(queryString);
  1779.             risultato = stmt.executeQuery();
  1780.             if (risultato.next())
  1781.                 filters.setNumEntries(idLista,risultato.getInt(1));
  1782.             risultato.close();
  1783.             stmt.close();

  1784.             // ricavo le entries
  1785.             if (limit == 0) // con limit
  1786.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;


  1787.             sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1788.             sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE);
  1789.             sqlQueryObject.addSelectField("id");
  1790.             sqlQueryObject.addSelectField("nome_porta");
  1791.             sqlQueryObject.addWhereCondition("id_soggetto=?");
  1792.             sqlQueryObject.setANDLogicOperator(true);

  1793.             if(idSE!=null){
  1794.                 sqlQueryObject.addWhereCondition(false,"id_servizio=?","tipo_servizio=? AND nome_servizio=?");
  1795.                 sqlQueryObject.addWhereCondition(false,"id_soggetto_erogatore=?","nome_soggetto_erogatore=? AND tipo_soggetto_erogatore=?");
  1796.             }

  1797.             if (!search.equals("")) {
  1798.                 // con search
  1799.                 sqlQueryObject.addWhereLikeCondition("nome_porta", search, true, true);            
  1800.             }
  1801.             //limit and order by
  1802.             sqlQueryObject.addOrderBy("nome_porta");
  1803.             sqlQueryObject.setSortType(true);
  1804.             sqlQueryObject.setLimit(limit);
  1805.             sqlQueryObject.setOffset(offset);
  1806.             queryString = sqlQueryObject.createSQLQuery();

  1807.             stmt = con.prepareStatement(queryString);

  1808.             stmt.setLong(1, idSoggettoFruitore);
  1809.             if(idSE!=null){
  1810.                 stmt.setLong(2, idServizio);
  1811.                 stmt.setString(3, tipoServizio);
  1812.                 stmt.setString(4, nomeServizio);
  1813.                 stmt.setLong(5, idSoggettoErogatore);
  1814.                 stmt.setString(6, nomeErogatore);
  1815.                 stmt.setString(7, tipoErogatore);
  1816.             }

  1817.             risultato = stmt.executeQuery();
  1818.             lista=new ArrayList<PortaDelegata>();
  1819.             while(risultato.next()){
  1820.                 long id=risultato.getLong("id");
  1821.                 PortaDelegata pd = this.porteDelegateDriver.getPortaDelegata(id);
  1822.                 lista.add(pd);
  1823.             }

  1824.             return lista;
  1825.         } catch (Exception qe) {
  1826.             throw new DriverConfigurazioneException(qe);
  1827.         } finally {

  1828.             JDBCUtilities.closeResources(risultato, stmt);
  1829.            
  1830.             this.driver.closeConnection(con);

  1831.         }

  1832.     }
  1833.    
  1834.     protected List<MtomProcessorFlowParameter> porteDelegateMTOMRequestList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1835.         String nomeMetodo = "porteDelegateMTOMRequestList";
  1836.         int idLista = Liste.PORTE_DELEGATE_MTOM_REQUEST;
  1837.         int offset;
  1838.         int limit;
  1839.         String search;
  1840.         String queryString;

  1841.         limit = ricerca.getPageSize(idLista);
  1842.         offset = ricerca.getIndexIniziale(idLista);
  1843.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1844.         Connection con = null;
  1845.         PreparedStatement stmt=null;
  1846.         ResultSet risultato=null;
  1847.         ArrayList<MtomProcessorFlowParameter> lista = new ArrayList<>();

  1848.         if (this.driver.atomica) {
  1849.             try {
  1850.                 con = this.driver.getConnectionFromDatasource(nomeMetodo);
  1851.             } catch (Exception e) {
  1852.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1853.             }

  1854.         } else
  1855.             con = this.driver.globalConnection;

  1856.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1857.         try {

  1858.             if (!search.equals("")) {
  1859.                 //query con search
  1860.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1861.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_REQUEST);
  1862.                 sqlQueryObject.addSelectCountField("*", "cont");
  1863.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1864.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1865.                 sqlQueryObject.setANDLogicOperator(true);
  1866.                 queryString = sqlQueryObject.createSQLQuery();
  1867.             } else {
  1868.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1869.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_REQUEST);
  1870.                 sqlQueryObject.addSelectCountField("*", "cont");
  1871.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1872.                 queryString = sqlQueryObject.createSQLQuery();
  1873.             }
  1874.             stmt = con.prepareStatement(queryString);
  1875.             stmt.setLong(1, idPortaDelegata);
  1876.             risultato = stmt.executeQuery();
  1877.             if (risultato.next())
  1878.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1879.             risultato.close();
  1880.             stmt.close();

  1881.             // ricavo le entries
  1882.             if (limit == 0) // con limit
  1883.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;

  1884.             if (!search.equals("")) { // con search
  1885.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1886.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_REQUEST);
  1887.                 sqlQueryObject.addSelectField("id_porta");
  1888.                 sqlQueryObject.addSelectField("nome");
  1889.                 sqlQueryObject.addSelectField("pattern");
  1890.                 sqlQueryObject.addSelectField("content_type");
  1891.                 sqlQueryObject.addSelectField("required");
  1892.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1893.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1894.                 sqlQueryObject.setANDLogicOperator(true);
  1895.                 sqlQueryObject.addOrderBy("nome");
  1896.                 sqlQueryObject.setSortType(true);
  1897.                 sqlQueryObject.setLimit(limit);
  1898.                 sqlQueryObject.setOffset(offset);
  1899.                 queryString = sqlQueryObject.createSQLQuery();
  1900.             } else {
  1901.                 // senza search
  1902.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1903.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_REQUEST);
  1904.                 sqlQueryObject.addSelectField("id_porta");
  1905.                 sqlQueryObject.addSelectField("nome");
  1906.                 sqlQueryObject.addSelectField("pattern");
  1907.                 sqlQueryObject.addSelectField("content_type");
  1908.                 sqlQueryObject.addSelectField("required");
  1909.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1910.                 sqlQueryObject.addOrderBy("nome");
  1911.                 sqlQueryObject.setSortType(true);
  1912.                 sqlQueryObject.setLimit(limit);
  1913.                 sqlQueryObject.setOffset(offset);
  1914.                 queryString = sqlQueryObject.createSQLQuery();
  1915.             }
  1916.             stmt = con.prepareStatement(queryString);
  1917.             stmt.setLong(1, idPortaDelegata);
  1918.             risultato = stmt.executeQuery();

  1919.             MtomProcessorFlowParameter reqPar;
  1920.             while (risultato.next()) {

  1921.                 reqPar = new MtomProcessorFlowParameter();
  1922.                
  1923.                 reqPar.setId(risultato.getLong("id_porta"));
  1924.                 reqPar.setNome(risultato.getString("nome"));
  1925.                 reqPar.setPattern(risultato.getString("pattern"));
  1926.                 reqPar.setContentType(risultato.getString("content_type"));
  1927.                 int required = risultato.getInt("required");
  1928.                 boolean isrequired = false;
  1929.                 if (required == CostantiDB.TRUE)
  1930.                     isrequired = true;
  1931.                 reqPar.setRequired(isrequired);

  1932.                

  1933.                 lista.add(reqPar);
  1934.             }

  1935.             return lista;

  1936.         } catch (Exception qe) {
  1937.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  1938.         } finally {

  1939.             //Chiudo statement and resultset
  1940.             JDBCUtilities.closeResources(risultato, stmt);

  1941.             this.driver.closeConnection(con);
  1942.         }
  1943.     }

  1944.     protected List<MtomProcessorFlowParameter> porteDelegateMTOMResponseList(long idPortaDelegata, ISearch ricerca) throws DriverConfigurazioneException {
  1945.         String nomeMetodo = "porteDelegateMTOMResponseList";
  1946.         int idLista = Liste.PORTE_DELEGATE_MTOM_RESPONSE;
  1947.         int offset;
  1948.         int limit;
  1949.         String search;
  1950.         String queryString;

  1951.         limit = ricerca.getPageSize(idLista);
  1952.         offset = ricerca.getIndexIniziale(idLista);
  1953.         search = (org.openspcoop2.core.constants.Costanti.SESSION_ATTRIBUTE_VALUE_RICERCA_UNDEFINED.equals(ricerca.getSearchString(idLista)) ? "" : ricerca.getSearchString(idLista));


  1954.         Connection con = null;
  1955.         PreparedStatement stmt=null;
  1956.         ResultSet risultato=null;
  1957.         ArrayList<MtomProcessorFlowParameter> lista = new ArrayList<>();

  1958.         if (this.driver.atomica) {
  1959.             try {
  1960.                 con = this.driver.getConnectionFromDatasource(nomeMetodo);
  1961.             } catch (Exception e) {
  1962.                 throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Exception accedendo al datasource :" + e.getMessage(),e);

  1963.             }

  1964.         } else
  1965.             con = this.driver.globalConnection;

  1966.         this.driver.logDebug("operazione this.driver.atomica = " + this.driver.atomica);

  1967.         try {

  1968.             if (!search.equals("")) {
  1969.                 //query con search
  1970.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1971.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_RESPONSE);
  1972.                 sqlQueryObject.addSelectCountField("*", "cont");
  1973.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1974.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  1975.                 sqlQueryObject.setANDLogicOperator(true);
  1976.                 queryString = sqlQueryObject.createSQLQuery();
  1977.             } else {
  1978.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1979.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_RESPONSE);
  1980.                 sqlQueryObject.addSelectCountField("*", "cont");
  1981.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  1982.                 queryString = sqlQueryObject.createSQLQuery();
  1983.             }
  1984.             stmt = con.prepareStatement(queryString);
  1985.             stmt.setLong(1, idPortaDelegata);
  1986.             risultato = stmt.executeQuery();
  1987.             if (risultato.next())
  1988.                 ricerca.setNumEntries(idLista,risultato.getInt(1));
  1989.             risultato.close();
  1990.             stmt.close();

  1991.             // ricavo le entries
  1992.             if (limit == 0) // con limit
  1993.                 limit = ISQLQueryObject.LIMIT_DEFAULT_VALUE;

  1994.             if (!search.equals("")) { // con search
  1995.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  1996.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_RESPONSE);
  1997.                 sqlQueryObject.addSelectField("id_porta");
  1998.                 sqlQueryObject.addSelectField("nome");
  1999.                 sqlQueryObject.addSelectField("pattern");
  2000.                 sqlQueryObject.addSelectField("content_type");
  2001.                 sqlQueryObject.addSelectField("required");
  2002.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  2003.                 sqlQueryObject.addWhereLikeCondition("nome", search, true, true);
  2004.                 sqlQueryObject.setANDLogicOperator(true);
  2005.                 sqlQueryObject.addOrderBy("nome");
  2006.                 sqlQueryObject.setSortType(true);
  2007.                 sqlQueryObject.setLimit(limit);
  2008.                 sqlQueryObject.setOffset(offset);
  2009.                 queryString = sqlQueryObject.createSQLQuery();
  2010.             } else {
  2011.                 // senza search
  2012.                 ISQLQueryObject sqlQueryObject = SQLObjectFactory.createSQLQueryObject(this.driver.tipoDB);
  2013.                 sqlQueryObject.addFromTable(CostantiDB.PORTE_DELEGATE_MTOM_RESPONSE);
  2014.                 sqlQueryObject.addSelectField("id_porta");
  2015.                 sqlQueryObject.addSelectField("nome");
  2016.                 sqlQueryObject.addSelectField("pattern");
  2017.                 sqlQueryObject.addSelectField("content_type");
  2018.                 sqlQueryObject.addSelectField("required");
  2019.                 sqlQueryObject.addWhereCondition("id_porta = ?");
  2020.                 sqlQueryObject.addOrderBy("nome");
  2021.                 sqlQueryObject.setSortType(true);
  2022.                 sqlQueryObject.setLimit(limit);
  2023.                 sqlQueryObject.setOffset(offset);
  2024.                 queryString = sqlQueryObject.createSQLQuery();
  2025.             }
  2026.             stmt = con.prepareStatement(queryString);
  2027.             stmt.setLong(1, idPortaDelegata);
  2028.             risultato = stmt.executeQuery();

  2029.             MtomProcessorFlowParameter resPar;
  2030.             while (risultato.next()) {
  2031.                
  2032.                 resPar = new MtomProcessorFlowParameter();
  2033.                
  2034.                 resPar.setId(risultato.getLong("id_porta"));
  2035.                 resPar.setNome(risultato.getString("nome"));
  2036.                 resPar.setPattern(risultato.getString("pattern"));
  2037.                 resPar.setContentType(risultato.getString("content_type"));
  2038.                 int required = risultato.getInt("required");
  2039.                 boolean isrequired = false;
  2040.                 if (required == CostantiDB.TRUE)
  2041.                     isrequired = true;
  2042.                 resPar.setRequired(isrequired);

  2043.                

  2044.                 lista.add(resPar);
  2045.             }

  2046.             return lista;

  2047.         } catch (Exception qe) {
  2048.             throw new DriverConfigurazioneException("[DriverConfigurazioneDB::" + nomeMetodo + "] Errore : " + qe.getMessage(),qe);
  2049.         } finally {

  2050.             //Chiudo statement and resultset
  2051.             JDBCUtilities.closeResources(risultato, stmt);

  2052.             this.driver.closeConnection(con);
  2053.         }
  2054.     }
  2055. }