IDBuilder.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.web.ctrlstat.driver;

  21. import java.util.ArrayList;
  22. import java.util.List;

  23. import org.openspcoop2.core.allarmi.Allarme;
  24. import org.openspcoop2.core.allarmi.AllarmeHistory;
  25. import org.openspcoop2.core.config.AccessoConfigurazione;
  26. import org.openspcoop2.core.config.AccessoDatiAttributeAuthority;
  27. import org.openspcoop2.core.config.AccessoDatiAutenticazione;
  28. import org.openspcoop2.core.config.AccessoDatiAutorizzazione;
  29. import org.openspcoop2.core.config.AccessoDatiConsegnaApplicativi;
  30. import org.openspcoop2.core.config.AccessoDatiGestioneToken;
  31. import org.openspcoop2.core.config.AccessoDatiKeystore;
  32. import org.openspcoop2.core.config.AccessoDatiRichieste;
  33. import org.openspcoop2.core.config.AccessoRegistro;
  34. import org.openspcoop2.core.config.AccessoRegistroRegistro;
  35. import org.openspcoop2.core.config.Configurazione;
  36. import org.openspcoop2.core.config.ConfigurazioneUrlInvocazione;
  37. import org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola;
  38. import org.openspcoop2.core.config.GenericProperties;
  39. import org.openspcoop2.core.config.GestioneErrore;
  40. import org.openspcoop2.core.config.PortaApplicativa;
  41. import org.openspcoop2.core.config.PortaDelegata;
  42. import org.openspcoop2.core.config.RegistroPlugin;
  43. import org.openspcoop2.core.config.RegistroPluginArchivio;
  44. import org.openspcoop2.core.config.RoutingTable;
  45. import org.openspcoop2.core.config.ServizioApplicativo;
  46. import org.openspcoop2.core.config.SystemProperties;
  47. import org.openspcoop2.core.config.constants.CostantiConfigurazione;
  48. import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
  49. import org.openspcoop2.core.config.utils.UpdateProprietaOggetto;
  50. import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
  51. import org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale;
  52. import org.openspcoop2.core.controllo_traffico.ConfigurazionePolicy;
  53. import org.openspcoop2.core.id.IDAccordo;
  54. import org.openspcoop2.core.id.IDAccordoCooperazione;
  55. import org.openspcoop2.core.id.IDSoggetto;
  56. import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
  57. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  58. import org.openspcoop2.core.registry.AccordoCooperazione;
  59. import org.openspcoop2.core.registry.AccordoServizioParteComune;
  60. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  61. import org.openspcoop2.core.registry.Documento;
  62. import org.openspcoop2.core.registry.Gruppo;
  63. import org.openspcoop2.core.registry.PortType;
  64. import org.openspcoop2.core.registry.PortaDominio;
  65. import org.openspcoop2.core.registry.Ruolo;
  66. import org.openspcoop2.core.registry.Scope;
  67. import org.openspcoop2.core.registry.Soggetto;
  68. import org.openspcoop2.core.registry.driver.IDAccordoCooperazioneFactory;
  69. import org.openspcoop2.core.registry.driver.IDAccordoFactory;
  70. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  71. import org.openspcoop2.monitor.engine.alarm.wrapper.ConfigurazioneAllarmeBean;
  72. import org.openspcoop2.core.plugins.Plugin;
  73. import org.openspcoop2.pdd.core.keystore.RemoteStoreKeyEntry;
  74. import org.openspcoop2.pdd.monitor.driver.FilterSearch;
  75. import org.openspcoop2.utils.serialization.IOException;
  76. import org.openspcoop2.web.ctrlstat.dao.PdDControlStation;
  77. import org.openspcoop2.web.ctrlstat.dao.SoggettoCtrlStat;
  78. import org.openspcoop2.web.ctrlstat.plugins.IExtendedBean;
  79. import org.openspcoop2.web.lib.audit.dao.Filtro;
  80. import org.openspcoop2.web.lib.audit.log.Operation;
  81. import org.openspcoop2.web.lib.users.dao.User;



  82. /**
  83.  * Classe utilizzata per generare gli identificatori degli oggetti presenti nella govwayConsole.
  84.  *
  85.  *
  86.  * @author Andrea Poli (apoli@link.it)
  87.  * @author Stefano Corallo (corallo@link.it)
  88.  * @author Sandra Giangrandi (sandra@link.it)
  89.  * @author $Author$
  90.  * @version $Rev$, $Date$
  91.  *
  92.  */
  93. public class IDBuilder implements org.openspcoop2.utils.serialization.IDBuilder {

  94.     private boolean prefix = false;
  95.    
  96.     private IDAccordoFactory idAccordoFactory = null;
  97.     private IDAccordoCooperazioneFactory idAccordoCooperazioneFactory = null;
  98.     private IDServizioFactory idServizioFactory = null;
  99.    
  100.     public IDBuilder(boolean insertClassNamePrefix){
  101.         this.prefix = insertClassNamePrefix;
  102.         this.idAccordoFactory = IDAccordoFactory.getInstance();
  103.         this.idAccordoCooperazioneFactory = IDAccordoCooperazioneFactory.getInstance();
  104.         this.idServizioFactory = IDServizioFactory.getInstance();
  105.     }
  106.     public IDBuilder(){
  107.         this(false);
  108.     }
  109.    
  110.     public static IDBuilder getIDBuilder(){
  111.         return new IDBuilder();
  112.     }
  113.    
  114.     @Override
  115.     public String toID(Object o) throws IOException {
  116.        
  117.         if(o==null)
  118.             throw new IOException("Oggetto is null");
  119.        
  120.         try{
  121.        
  122.            
  123.             // ControlStation
  124.             if (o instanceof PdDControlStation) {
  125.                 PdDControlStation p = (PdDControlStation) o;
  126.                 String id = p.getNome();
  127.                 if(this.prefix){
  128.                     return "[PdDControlStation] "+ id;
  129.                 }else{
  130.                     return id;
  131.                 }
  132.             }
  133.             else if(o instanceof MappingFruizionePortaDelegata){
  134.                 MappingFruizionePortaDelegata mapping = (MappingFruizionePortaDelegata) o;
  135.                 StringBuilder bf = new StringBuilder();
  136.                 bf.append("FR[");
  137.                 bf.append(mapping.getIdFruitore().getTipo()+"/"+mapping.getIdFruitore().getNome());
  138.                 bf.append("] SERV[");
  139.                 bf.append(mapping.getIdServizio().toString());
  140.                 bf.append("] PD["+mapping.getIdPortaDelegata().getNome());
  141.                 bf.append("]");
  142.                 if(this.prefix){
  143.                     return "[MappingFruizionePortaDelegata] "+ bf.toString();
  144.                 }else{
  145.                     return bf.toString();
  146.                 }
  147.             }
  148.             else if(o instanceof MappingErogazionePortaApplicativa){
  149.                 MappingErogazionePortaApplicativa mapping = (MappingErogazionePortaApplicativa) o;
  150.                 StringBuilder bf = new StringBuilder();
  151.                 bf.append("SERV[");
  152.                 bf.append(mapping.getIdServizio().toString());
  153.                 bf.append("] PA["+mapping.getIdPortaApplicativa().getNome());
  154.                 bf.append("]");
  155.                 if(this.prefix){
  156.                     return "[MappingErogazionePortaApplicativa] "+ bf.toString();
  157.                 }else{
  158.                     return bf.toString();
  159.                 }
  160.             }
  161.             else if (o instanceof SoggettoCtrlStat) {
  162.                 SoggettoCtrlStat s = (SoggettoCtrlStat) o;
  163.                 String id = s.getTipo()+"/"+s.getNome();
  164.                 if(this.prefix){
  165.                     return "[SoggettoCtrlStat] "+ id;
  166.                 }else{
  167.                     return id;
  168.                 }
  169.             }
  170.            
  171.             // RegistroServizi
  172.            
  173.             else if(o instanceof org.openspcoop2.core.registry.Soggetto){
  174.                 org.openspcoop2.core.registry.Soggetto s = (org.openspcoop2.core.registry.Soggetto) o;
  175.                 String id = s.getTipo()+"/"+s.getNome();
  176.                 if(this.prefix){
  177.                     return "[SoggettoRegistro] "+ id;
  178.                 }else{
  179.                     return id;
  180.                 }
  181.             }
  182.             else if (o instanceof Gruppo) {
  183.                 Gruppo g = (Gruppo) o;
  184.                 String id = g.getNome();
  185.                 if(this.prefix){
  186.                     return "[Gruppo] "+ id;
  187.                 }else{
  188.                     return id;
  189.                 }
  190.             }
  191.             else if (o instanceof Ruolo) {
  192.                 Ruolo r = (Ruolo) o;
  193.                 String id = r.getNome();
  194.                 if(this.prefix){
  195.                     return "[Ruolo] "+ id;
  196.                 }else{
  197.                     return id;
  198.                 }
  199.             }
  200.             else if (o instanceof Scope) {
  201.                 Scope s = (Scope) o;
  202.                 String id = s.getNome();
  203.                 if(this.prefix){
  204.                     return "[Scope] "+ id;
  205.                 }else{
  206.                     return id;
  207.                 }
  208.             }
  209.             else if(o instanceof AccordoCooperazione){
  210.                 AccordoCooperazione ac = (AccordoCooperazione) o;
  211.                 String id = this.idAccordoCooperazioneFactory.getUriFromAccordo(ac);
  212.                 if(this.prefix){
  213.                     return "[AccordoCooperazione] "+id;
  214.                 }else{
  215.                     return id;
  216.                 }
  217.             }
  218.             else if(o instanceof AccordoServizioParteComune){
  219.                 AccordoServizioParteComune as = (AccordoServizioParteComune) o;
  220.                 String id = this.idAccordoFactory.getUriFromAccordo(as);
  221.                 if(this.prefix){
  222.                     return "[AccordoServizioParteComune] "+ id;
  223.                 }else{
  224.                     return id;
  225.                 }
  226.             }
  227.             else if(o instanceof PortType){
  228.                 PortType p = (PortType) o;
  229.                 String id = "IDAccordo["+p.getIdAccordo()+"]_"+  p.getNome();
  230.                 if(this.prefix){
  231.                     return "[PortType] "+ id;
  232.                 }else{
  233.                     return id;
  234.                 }
  235.             }
  236.             else if(o instanceof Documento){
  237.                 Documento d = (Documento) o;
  238.                 String id = "["+d.getRuolo()+"]["+d.getTipo()+"]"+" "+d.getFile();
  239.                 if(this.prefix){
  240.                     return "[Documento] "+ id;
  241.                 }else{
  242.                     return id;
  243.                 }
  244.             }else if(o instanceof PortaDominio){
  245.                 PortaDominio p = (PortaDominio) o;
  246.                 String id = p.getNome();
  247.                 if(this.prefix){
  248.                     return "[PdD] "+ id;
  249.                 }else{
  250.                     return id;
  251.                 }
  252.             }else if(o instanceof AccordoServizioParteSpecifica){
  253.                 AccordoServizioParteSpecifica asps = (AccordoServizioParteSpecifica) o;
  254.                 String id = this.idServizioFactory.getUriFromAccordo(asps);
  255.                 if(this.prefix){
  256.                     return "[AccordoServizioParteSpecifica] "+ id;
  257.                 }else{
  258.                     return id;
  259.                 }
  260.             }else if(o instanceof Soggetto){
  261.                 Soggetto s = (Soggetto) o;
  262.                 String id = s.getTipo()+"/"+s.getNome();
  263.                 if(this.prefix){
  264.                     return "[Soggetto] "+ id;
  265.                 }else{
  266.                     return id;
  267.                 }
  268.             }
  269.            
  270.             // Configurazione
  271.             else if(o instanceof org.openspcoop2.core.config.Soggetto){
  272.                 org.openspcoop2.core.config.Soggetto s = (org.openspcoop2.core.config.Soggetto) o;
  273.                 String id = s.getTipo()+"/"+s.getNome();
  274.                 if(this.prefix){
  275.                     return "[SoggettoConfigurazione] "+ id;
  276.                 }else{
  277.                     return id;
  278.                 }
  279.             }else if(o instanceof ServizioApplicativo){
  280.                 ServizioApplicativo s = (ServizioApplicativo) o;
  281.                 String id = s.getTipoSoggettoProprietario()+"/"+s.getNomeSoggettoProprietario()+"_"+s.getNome();
  282.                 if(this.prefix){
  283.                     return "[ServizioApplicativo] "+ id;
  284.                 }else{
  285.                     return id;
  286.                 }
  287.             }
  288.             else if(o instanceof PortaDelegata){
  289.                 PortaDelegata pd = (PortaDelegata) o;
  290.                 String id = pd.getTipoSoggettoProprietario()+"/"+pd.getNomeSoggettoProprietario()+"_"+pd.getNome();
  291.                 if(this.prefix){
  292.                     return "[PortaDelegata] "+ id;
  293.                 }else{
  294.                     return id;
  295.                 }
  296.             }
  297.             else if(o instanceof PortaApplicativa){
  298.                 PortaApplicativa pa = (PortaApplicativa) o;
  299.                 String id = pa.getTipoSoggettoProprietario()+"/"+pa.getNomeSoggettoProprietario()+"_"+pa.getNome();
  300.                 if(this.prefix){
  301.                     return "[PortaApplicativa] "+ id;
  302.                 }else{
  303.                     return id;
  304.                 }
  305.             }else if(o instanceof RoutingTable){
  306.                 return "RoutingTable";
  307.             }else if(o instanceof GestioneErrore){
  308.                 return "GestioneErrore";
  309.             }else if(o instanceof Configurazione){
  310.                 return "Configurazione";
  311.             }else if(o instanceof AccessoRegistro){
  312.                 return "ConfigurazioneRegistroServizi";
  313.             }else if(o instanceof AccessoRegistroRegistro){
  314.                 AccessoRegistroRegistro registro = (AccessoRegistroRegistro) o;
  315.                 String id = registro.getNome();
  316.                 if(this.prefix){
  317.                     return "[ConfigurazioneRegistroServizi] "+ id;
  318.                 }else{
  319.                     return id;
  320.                 }
  321.             }else if(o instanceof AccessoConfigurazione){
  322.                 return "ConfigurazioneAccessoDati";
  323.             }else if(o instanceof AccessoDatiAutenticazione){
  324.                 return "ConfigurazioneAccessoDatiAutenticazione";
  325.             }else if(o instanceof AccessoDatiAutorizzazione){
  326.                 return "ConfigurazioneAccessoDatiAutorizzazione";
  327.             }else if(o instanceof AccessoDatiGestioneToken){
  328.                 return "ConfigurazioneAccessoDatiGestioneToken";
  329.             }else if(o instanceof AccessoDatiAttributeAuthority){
  330.                 return "ConfigurazioneAccessoDatiAttributeAuthority";
  331.             }else if(o instanceof AccessoDatiKeystore){
  332.                 return "ConfigurazioneAccessoDatiKeystore";
  333.             }else if(o instanceof AccessoDatiConsegnaApplicativi){
  334.                 return "ConfigurazioneAccessoDatiConsegnaApplicativi";
  335.             }else if(o instanceof AccessoDatiRichieste){
  336.                 return "ConfigurazioneAccessoDatiRichieste";
  337.             }else if(o instanceof SystemProperties){
  338.                 return "ProprietàDiSistema";
  339.             }else if(o instanceof RegistroPlugin){
  340.                 RegistroPlugin plugin = (RegistroPlugin) o;
  341.                 String id = plugin.getNome();
  342.                 if(this.prefix){
  343.                     return "[ArchivioPlugins] "+ id;
  344.                 }else{
  345.                     return id;
  346.                 }
  347.             }else if(o instanceof RegistroPluginArchivio){
  348.                 RegistroPluginArchivio plugin = (RegistroPluginArchivio) o;
  349.                 String id = plugin.getNome();
  350.                 if(this.prefix){
  351.                     return "[ArchivioPluginsJarEntry] "+ plugin.getNomePlugin()+"-"+id;
  352.                 }else{
  353.                     return id;
  354.                 }
  355.             }else if(o instanceof ConfigurazioneUrlInvocazioneRegola){
  356.                 ConfigurazioneUrlInvocazioneRegola regola = (ConfigurazioneUrlInvocazioneRegola) o;
  357.                 String id = regola.getNome();
  358.                 if(this.prefix){
  359.                     return "[UrlInvocazioneRegola] "+ id;
  360.                 }else{
  361.                     return id;
  362.                 }
  363.             }else if(o instanceof ConfigurazioneUrlInvocazione){
  364.                 return "Configurazione UrlInvocazione";
  365.             }
  366.             else if(o instanceof UpdateProprietaOggetto) {
  367.                 UpdateProprietaOggetto up = (UpdateProprietaOggetto) o;
  368.                 if(up.getIdPortaApplicativa()!=null) {
  369.                     if(this.prefix){
  370.                         return "[UpdateProprietaOggettoPortaApplicativa] "+ up.getIdPortaApplicativa().getNome();
  371.                     }else{
  372.                         return "PA-"+up.getIdPortaApplicativa().getNome();
  373.                     }
  374.                 }
  375.                 else if(up.getIdPortaDelegata()!=null) {
  376.                     if(this.prefix){
  377.                         return "[UpdateProprietaOggettoPortaDelegata] "+ up.getIdPortaDelegata().getNome();
  378.                     }else{
  379.                         return "PD-"+up.getIdPortaDelegata().getNome();
  380.                     }
  381.                 }
  382.                 else if(up.getIdServizioApplicativo()!=null) {
  383.                     IDSoggetto idSog = up.getIdServizioApplicativo().getIdSoggettoProprietario();
  384.                     String idSA = idSog.getTipo()+"/"+idSog.getNome()+"_"+up.getIdServizioApplicativo().getNome();
  385.                     if(this.prefix){
  386.                         return "[UpdateProprietaOggettoServizioApplicativo] "+ idSA;
  387.                     }else{
  388.                         return "SA-"+idSA;
  389.                     }
  390.                 }
  391.                 else {
  392.                     throw new IOException("Tipo di Oggetto gestito ["+o.getClass().getName()+"] senza id");
  393.                 }
  394.             }
  395.            
  396.            
  397.             // Users
  398.             else if(o instanceof User){
  399.                 User u = (User) o;
  400.                 String id = u.getLogin();
  401.                 if(this.prefix){
  402.                     return "[User] "+ id;
  403.                 }else{
  404.                     return id;
  405.                 }
  406.             }
  407.            
  408.            
  409.             // Auditing
  410.             else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
  411.                 return "Configurazione Auditing";
  412.             }
  413.            
  414.             else if(o instanceof Filtro){
  415.                 Filtro f = (Filtro) o;
  416.                 String id = f.toString();
  417.                 if(this.prefix){
  418.                     return "[Filtro] "+ id;
  419.                 }else{
  420.                     return id;
  421.                 }
  422.             }
  423.            
  424.             // Auditing: eliminazione record salvato
  425.             else if(o instanceof org.openspcoop2.web.lib.audit.log.Operation){
  426.                 org.openspcoop2.web.lib.audit.log.Operation op = (org.openspcoop2.web.lib.audit.log.Operation) o;
  427.                 if(this.prefix){
  428.                     return "[OperazioneRegistrataTramiteAuditing] "+ op.getId();
  429.                 }else{
  430.                     return op.getId()+"";
  431.                 }
  432.             }
  433.            
  434.            
  435.             // Monitoraggio Applicativo
  436.             else if(o instanceof FilterSearch){
  437.                 FilterSearch f = (FilterSearch) o;
  438.                 String id = f.toString();
  439.                 if(this.prefix){
  440.                     return "[EliminazioneMessaggiTramiteMonitoraggio] "+ id;
  441.                 }else{
  442.                     return id;
  443.                 }
  444.             }
  445.            
  446.             // Configurazione controllo del traffico
  447.             else if(o instanceof ConfigurazioneGenerale) {
  448.                 return "ConfigurazioneControlloTraffico";
  449.             }

  450.             // Configurazione Policy
  451.             else if(o instanceof ConfigurazionePolicy) {
  452.                 ConfigurazionePolicy policy = (ConfigurazionePolicy) o;
  453.                 String id = policy.getIdPolicy();
  454.                 if(this.prefix){
  455.                     return "[ConfigurazionePolicy] "+ id;
  456.                 }else{
  457.                     return id;
  458.                 }
  459.             }
  460.            
  461.             // Attivazione Policy
  462.             else if(o instanceof AttivazionePolicy) {
  463.                 AttivazionePolicy policy = (AttivazionePolicy) o;
  464.                 String id = policy.getIdActivePolicy();
  465.                 if(this.prefix){
  466.                     return "[AttivazionePolicy] "+ id;
  467.                 }else{
  468.                     return id;
  469.                 }
  470.             }
  471.            
  472.             // Generic Properties
  473.             else if(o instanceof GenericProperties) {
  474.                 GenericProperties genericProperties = (GenericProperties) o;
  475.                 String id = genericProperties.getNome();
  476.                 if(this.prefix){
  477.                     if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_VALIDATION.equals(genericProperties.getTipologia())) {
  478.                         return "[TokenPolicyValidazione] "+ id;
  479.                     }
  480.                     else if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_RETRIEVE.equals(genericProperties.getTipologia())) {
  481.                         return "[TokenPolicyNegoziazione] "+ id;
  482.                     }
  483.                     else {
  484.                         return "[GenericProperties] "+ id;
  485.                     }
  486.                 }else{
  487.                     return id;
  488.                 }
  489.             }
  490.            
  491.             // Plugins
  492.             else if(o instanceof Plugin) {
  493.                 Plugin plugin = (Plugin) o;
  494.                 String id = plugin.getTipoPlugin()+"-"+plugin.getTipo();
  495.                 if(this.prefix){
  496.                     return "[Plugin] "+ id;
  497.                 }else{
  498.                     return id;
  499.                 }
  500.             }
  501.            
  502.             // Allarme
  503.             else if(o instanceof Allarme) {
  504.                 Allarme allarme = (Allarme) o;
  505.                 String id = allarme.getNome();
  506.                 if(this.prefix){
  507.                     return "[Allarme] "+ id;
  508.                 }else{
  509.                     return id;
  510.                 }
  511.             }
  512.            
  513.             // Allarme History
  514.             else if(o instanceof AllarmeHistory) {
  515.                 AllarmeHistory history = (AllarmeHistory) o;
  516.                 String id = history.getIdAllarme().getNome();
  517.                 if(this.prefix){
  518.                     return "[AllarmeHistory] "+ id;
  519.                 }else{
  520.                     return id;
  521.                 }
  522.             }
  523.            
  524.             // IExtendedBean
  525.             else if(o instanceof IExtendedBean){
  526.                 IExtendedBean w = (IExtendedBean) o;
  527.                 if(this.prefix){
  528.                     return "[ExtendedBean-"+w.getClass().getSimpleName()+"] "+ w.getHumanId();
  529.                 }else{
  530.                     return w.getHumanId();
  531.                 }
  532.             }
  533.            
  534.             // Remote Store Key
  535.             else if(o instanceof RemoteStoreKeyEntry){
  536.                 RemoteStoreKeyEntry entry = (RemoteStoreKeyEntry) o;
  537.                 String id = entry.getKid();
  538.                 if(this.prefix){
  539.                     return "[RemoteStoreKey] "+ id;
  540.                 }else{
  541.                     return id;
  542.                 }
  543.             }
  544.            
  545.            
  546.                        
  547.         }catch(Exception e){
  548.             throw new IOException("Trasformazione non riuscita: "+e.getMessage(),e);
  549.         }
  550.        
  551.         throw new IOException("Tipo di Oggetto non gestito ["+o.getClass().getName()+"]");
  552.     }

  553.     @Override
  554.     public String toID(Object o, String field) throws IOException {
  555.         if(o instanceof Documento){
  556.             return this.toID(o);
  557.         }else{
  558.             return this.toID(o) + "." + field;
  559.         }
  560.     }
  561.    
  562.    
  563.     /**
  564.      * Genera il vecchio identificatore che identificava l'oggetto passato come parametro prima di un update in corso
  565.      * L'oggetto in corso deve essere valorizzato negli elementi old_XXX
  566.      *
  567.      * @param o Oggetto su cui generare un identificatore univoco
  568.      * @return identificatore univoco
  569.      */
  570.     @Override
  571.     public String toOldID(Object o) throws IOException{
  572.    
  573.        
  574.         if(o==null)
  575.             throw new IOException("Oggetto is null");
  576.        
  577.         try{
  578.        
  579.            
  580.             // ControlStation
  581.             if (o instanceof PdDControlStation) {
  582.                 PdDControlStation p = (PdDControlStation) o;
  583.                 if(p.getOldNomeForUpdate()==null){
  584.                     return null; // non lancio un errore
  585.                 }
  586.                 String id = p.getOldNomeForUpdate();
  587.                 if(this.prefix){
  588.                     return "[PdDControlStation] "+ id;
  589.                 }else{
  590.                     return id;
  591.                 }
  592.             }
  593.             else if(o instanceof MappingFruizionePortaDelegata){
  594.                 return null; // oggetto non modificabile nei dati identificativi
  595.             }
  596.             else if(o instanceof MappingErogazionePortaApplicativa){
  597.                 return null; // oggetto non modificabile nei dati identificativi
  598.             }
  599.             else if (o instanceof SoggettoCtrlStat) {
  600.                 SoggettoCtrlStat s = (SoggettoCtrlStat) o;
  601.                 if(s.getOldTipoForUpdate()==null || s.getOldNomeForUpdate()==null){
  602.                     return null; // non lancio un errore
  603.                 }
  604.                 String id = s.getOldTipoForUpdate()+"/"+s.getOldNomeForUpdate();
  605.                 if(this.prefix){
  606.                     return "[SoggettoCtrlStat] "+ id;
  607.                 }else{
  608.                     return id;
  609.                 }
  610.             }
  611.            
  612.             // RegistroServizi
  613.            
  614.             else if(o instanceof org.openspcoop2.core.registry.Soggetto){
  615.                 org.openspcoop2.core.registry.Soggetto s = (org.openspcoop2.core.registry.Soggetto) o;
  616.                 if(s.getOldIDSoggettoForUpdate()==null || s.getOldIDSoggettoForUpdate().getTipo()==null || s.getOldIDSoggettoForUpdate().getNome()==null){
  617.                     return null; // non lancio un errore
  618.                 }
  619.                 String id = s.getOldIDSoggettoForUpdate().getTipo()+"/"+s.getOldIDSoggettoForUpdate().getNome();
  620.                 if(this.prefix){
  621.                     return "[SoggettoRegistro] "+ id;
  622.                 }else{
  623.                     return id;
  624.                 }
  625.             }
  626.             else if(o instanceof Gruppo){
  627.                 Gruppo g = (Gruppo) o;
  628.                 if(g.getOldIDGruppoForUpdate()==null){
  629.                     return null; // non lancio un errore
  630.                 }
  631.                 String id = g.getOldIDGruppoForUpdate().getNome();
  632.                 if(this.prefix){
  633.                     return "[Gruppo] "+ id;
  634.                 }else{
  635.                     return id;
  636.                 }
  637.             }
  638.             else if (o instanceof Ruolo) {
  639.                 Ruolo r = (Ruolo) o;
  640.                 if(r.getOldIDRuoloForUpdate()==null){
  641.                     return null; // non lancio un errore
  642.                 }
  643.                 String id = r.getOldIDRuoloForUpdate().getNome();
  644.                 if(this.prefix){
  645.                     return "[Ruolo] "+ id;
  646.                 }else{
  647.                     return id;
  648.                 }
  649.             }
  650.             else if (o instanceof Scope) {
  651.                 Scope s = (Scope) o;
  652.                 if(s.getOldIDScopeForUpdate()==null){
  653.                     return null; // non lancio un errore
  654.                 }
  655.                 String id = s.getOldIDScopeForUpdate().getNome();
  656.                 if(this.prefix){
  657.                     return "[Scope] "+ id;
  658.                 }else{
  659.                     return id;
  660.                 }
  661.             }
  662.             else if(o instanceof AccordoCooperazione){
  663.                 AccordoCooperazione ac = (AccordoCooperazione) o;
  664.                 IDAccordoCooperazione idOLD = ac.getOldIDAccordoForUpdate();
  665.                 if(idOLD==null){
  666.                     return null; // non lancio un errore
  667.                 }
  668.                 String id = this.idAccordoCooperazioneFactory.getUriFromIDAccordo(idOLD);
  669.                 if(this.prefix){
  670.                     return "[AccordoCooperazione] "+id;
  671.                 }else{
  672.                     return id;
  673.                 }
  674.             }
  675.             else if(o instanceof AccordoServizioParteComune){
  676.                 AccordoServizioParteComune as = (AccordoServizioParteComune) o;
  677.                 IDAccordo idOLD = as.getOldIDAccordoForUpdate();
  678.                 if(idOLD==null){
  679.                     return null; // non lancio un errore
  680.                 }
  681.                 String id = this.idAccordoFactory.getUriFromIDAccordo(idOLD);
  682.                 if(this.prefix){
  683.                     return "[AccordoServizioParteComune] "+ id;
  684.                 }else{
  685.                     return id;
  686.                 }
  687.             }
  688.             else if(o instanceof PortType){
  689.                 return null; // oggetto non modificabile nei dati identificativi
  690.             }
  691.             else if(o instanceof Documento){
  692.                 return null; // oggetto non modificabile nei dati identificativi
  693.             }else if(o instanceof PortaDominio){
  694.                 PortaDominio p = (PortaDominio) o;
  695.                 if(p.getOldNomeForUpdate()==null){
  696.                     return null; // non lancio un errore
  697.                 }
  698.                 String id = p.getOldNomeForUpdate();
  699.                 if(this.prefix){
  700.                     return "[PdD] "+ id;
  701.                 }else{
  702.                     return id;
  703.                 }
  704.             }else if(o instanceof AccordoServizioParteSpecifica){
  705.                 AccordoServizioParteSpecifica asps = (AccordoServizioParteSpecifica) o;
  706.                 if(asps.getOldIDServizioForUpdate()==null){
  707.                     return null; // non lancio un errore
  708.                 }  
  709.                 String id = this.idServizioFactory.getUriFromIDServizio(asps.getOldIDServizioForUpdate());
  710.                 if(this.prefix){
  711.                     return "[AccordoServizioParteSpecifica] "+ id;
  712.                 }else{
  713.                     return id;
  714.                 }
  715.             }
  716.            
  717.             // Configurazione
  718.             else if(o instanceof org.openspcoop2.core.config.Soggetto){
  719.                 org.openspcoop2.core.config.Soggetto s = (org.openspcoop2.core.config.Soggetto) o;
  720.                 if(s.getOldIDSoggettoForUpdate()==null || s.getOldIDSoggettoForUpdate().getTipo()==null || s.getOldIDSoggettoForUpdate().getNome()==null){
  721.                     return null; // non lancio un errore
  722.                 }
  723.                 String id = s.getOldIDSoggettoForUpdate().getTipo()+"/"+s.getOldIDSoggettoForUpdate().getNome();
  724.                 if(this.prefix){
  725.                     return "[SoggettoConfigurazione] "+ id;
  726.                 }else{
  727.                     return id;
  728.                 }
  729.             }else if(o instanceof ServizioApplicativo){
  730.                 ServizioApplicativo s = (ServizioApplicativo) o;
  731.                 if( (s.getOldIDServizioApplicativoForUpdate()==null)) {
  732.                     return null; // non lancio un errore
  733.                 }
  734.                 if( (s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()==null ||
  735.                         s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()==null ||
  736.                         s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()==null)
  737.                         && s.getOldIDServizioApplicativoForUpdate().getNome()==null) {
  738.                     return null; // non lancio un errore
  739.                 }
  740.                 String id = null;
  741.                 if(s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()!=null && s.getOldIDServizioApplicativoForUpdate().getNome()!=null){
  742.                     id = s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()+"/"+
  743.                             s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()+"_"+
  744.                             s.getOldIDServizioApplicativoForUpdate().getNome();
  745.                 }
  746.                 else if(s.getOldIDServizioApplicativoForUpdate().getNome()!=null){
  747.                     id = s.getTipoSoggettoProprietario()+"/"+s.getNomeSoggettoProprietario()+"_"+
  748.                             s.getOldIDServizioApplicativoForUpdate().getNome();
  749.                 }
  750.                 else if(s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()==null){
  751.                     throw new DriverConfigurazioneException("Oggetto in modifica non correttamente valorizzato");
  752.                 }
  753.                 else{
  754.                     id = s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()+"/"+
  755.                             s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()+"_"+
  756.                             "_"+s.getNome();
  757.                 }              
  758.                 if(this.prefix){
  759.                     return "[ServizioApplicativo] "+ id;
  760.                 }else{
  761.                     return id;
  762.                 }
  763.             }
  764.             else if(o instanceof PortaDelegata){
  765.                 PortaDelegata pd = (PortaDelegata) o;
  766.                 if(pd.getOldIDPortaDelegataForUpdate()==null || pd.getOldIDPortaDelegataForUpdate().getNome()==null){
  767.                     return null; // non lancio un errore
  768.                 }
  769.                 String id = pd.getOldIDPortaDelegataForUpdate().getNome();
  770.                 if(this.prefix){
  771.                     return "[PortaDelegata] "+ id;
  772.                 }else{
  773.                     return id;
  774.                 }
  775.             }
  776.             else if(o instanceof PortaApplicativa){
  777.                 PortaApplicativa pa = (PortaApplicativa) o;
  778.                 if(pa.getOldIDPortaApplicativaForUpdate()==null || pa.getOldIDPortaApplicativaForUpdate().getNome()==null){
  779.                     return null; // non lancio un errore
  780.                 }
  781.                 String id = pa.getOldIDPortaApplicativaForUpdate().getNome();
  782.                 if(this.prefix){
  783.                     return "[PortaApplicativa] "+ id;
  784.                 }else{
  785.                     return id;
  786.                 }
  787.             }else if(o instanceof RoutingTable){
  788.                 return null; // oggetto non modificabile nei dati identificativi
  789.             }else if(o instanceof GestioneErrore){
  790.                 return null; // oggetto non modificabile nei dati identificativi
  791.             }else if(o instanceof Configurazione){
  792.                 return null; // oggetto non modificabile nei dati identificativi
  793.             }else if(o instanceof AccessoRegistro){
  794.                 return null; // oggetto non modificabile nei dati identificativi
  795.             }else if(o instanceof AccessoRegistroRegistro){
  796.                 return null; // oggetto non modificabile nei dati identificativi
  797.             }else if(o instanceof AccessoConfigurazione){
  798.                 return null; // oggetto non modificabile nei dati identificativi
  799.             }else if(o instanceof AccessoDatiAutenticazione){
  800.                 return null; // oggetto non modificabile nei dati identificativi
  801.             }else if(o instanceof AccessoDatiAutorizzazione){
  802.                 return null; // oggetto non modificabile nei dati identificativi
  803.             }else if(o instanceof AccessoDatiGestioneToken){
  804.                 return null; // oggetto non modificabile nei dati identificativi
  805.             }else if(o instanceof AccessoDatiAttributeAuthority){
  806.                 return null; // oggetto non modificabile nei dati identificativi
  807.             }else if(o instanceof AccessoDatiKeystore){
  808.                 return null; // oggetto non modificabile nei dati identificativi
  809.             }else if(o instanceof AccessoDatiConsegnaApplicativi){
  810.                 return null; // oggetto non modificabile nei dati identificativi
  811.             }else if(o instanceof AccessoDatiRichieste){
  812.                 return null; // oggetto non modificabile nei dati identificativi
  813.             }else if(o instanceof SystemProperties){
  814.                 return null; // oggetto non modificabile nei dati identificativi
  815.             }else if(o instanceof RegistroPlugin){
  816.                 RegistroPlugin plugin = (RegistroPlugin) o;
  817.                 if(plugin.getOldNome()==null) {
  818.                     return null; // non lancio un errore
  819.                 }
  820.                 String id = plugin.getOldNome();
  821.                 if(this.prefix){
  822.                     return "[ArchivioPlugins] "+ id;
  823.                 }else{
  824.                     return id;
  825.                 }
  826.             }else if(o instanceof RegistroPluginArchivio){
  827.                 return null; // oggetto non modificabile nei dati identificativi
  828.             }else if(o instanceof ConfigurazioneUrlInvocazioneRegola){
  829.                 ConfigurazioneUrlInvocazioneRegola regola = (ConfigurazioneUrlInvocazioneRegola) o;
  830.                 if(regola.getOldNome()==null) {
  831.                     return null; // non lancio un errore
  832.                 }
  833.                 String id = regola.getOldNome();
  834.                 if(this.prefix){
  835.                     return "[UrlInvocazioneRegola] "+ id;
  836.                 }else{
  837.                     return id;
  838.                 }
  839.             }else if(o instanceof ConfigurazioneUrlInvocazione){
  840.                 return null; // oggetto non modificabile nei dati identificativi
  841.             }
  842.             else if(o instanceof UpdateProprietaOggetto) {
  843.                 return null; // oggetto non modificabile nei dati identificativi
  844.             }
  845.            
  846.            
  847.             // Users
  848.             else if(o instanceof User){
  849.                 return null; // oggetto non modificabile nei dati identificativi
  850.             }
  851.            
  852.            
  853.            
  854.             // Auditing
  855.             else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
  856.                 return null; // oggetto non modificabile nei dati identificativi
  857.             }
  858.            
  859.             else if(o instanceof Filtro){
  860.                 return null; // oggetto non modificabile nei dati identificativi
  861.             }
  862.            
  863.             // Auditing: eliminazione record salvato
  864.             else if(o instanceof org.openspcoop2.web.lib.audit.log.Operation){
  865.                 return null; // oggetto non modificabile nei dati identificativi
  866.             }
  867.            
  868.            
  869.             // Monitoraggio Applicativo
  870.             else if(o instanceof FilterSearch){
  871.                 return null; // oggetto non modificabile nei dati identificativi
  872.             }
  873.            
  874.             // Configurazione controllo del traffico
  875.             else if(o instanceof ConfigurazioneGenerale) {
  876.                 return null; // oggetto non modificabile nei dati identificativi
  877.             }
  878.            
  879.             // Configurazione Policy
  880.             else if(o instanceof ConfigurazionePolicy) {
  881.                 ConfigurazionePolicy policy = (ConfigurazionePolicy) o;
  882.                 if(policy.getOldIdPolicy()==null || policy.getOldIdPolicy().getNome()==null){
  883.                     return null; // non lancio un errore
  884.                 }
  885.                 String id = policy.getOldIdPolicy().getNome();
  886.                 if(this.prefix){
  887.                     return "[ConfigurazionePolicy] "+ id;
  888.                 }else{
  889.                     return id;
  890.                 }
  891.             }
  892.            
  893.             // Attivazione Policy
  894.             else if(o instanceof AttivazionePolicy) {
  895.                 AttivazionePolicy policy = (AttivazionePolicy) o;
  896.                 if(policy.getOldIdActivePolicy()==null || policy.getOldIdActivePolicy().getNome()==null){
  897.                     return null; // non lancio un errore
  898.                 }
  899.                 String id = policy.getOldIdActivePolicy().getNome();
  900.                 if(this.prefix){
  901.                     return "[ConfigurazionePolicy] "+ id;
  902.                 }else{
  903.                     return id;
  904.                 }
  905.             }
  906.            
  907.             // Generic Properties
  908.             else if(o instanceof GenericProperties) {
  909.                 return null; // oggetto non modificabile nei dati identificativi
  910.             }
  911.            
  912.             // Plugins
  913.             else if(o instanceof Plugin) {
  914.                 Plugin plugin = (Plugin) o;
  915.                 if(plugin.getOldIdPlugin()==null || plugin.getOldIdPlugin().getTipoPlugin()==null || plugin.getOldIdPlugin().getTipo()==null){
  916.                     return null; // non lancio un errore
  917.                 }
  918.                 String id = plugin.getOldIdPlugin().getTipoPlugin()+"-"+plugin.getOldIdPlugin().getTipo();
  919.                 if(this.prefix){
  920.                     return "[Plugin] "+ id;
  921.                 }else{
  922.                     return id;
  923.                 }
  924.             }
  925.            
  926.             // Allarme
  927.             else if(o instanceof Allarme) {
  928.                 return null; // oggetto non modificabile nei dati identificativi
  929.             }
  930.            
  931.             // Allarme History
  932.             else if(o instanceof AllarmeHistory) {
  933.                 return null; // oggetto non modificabile nei dati identificativi
  934.             }
  935.            
  936.             // IExtendedBean
  937.             else if(o instanceof IExtendedBean){
  938.                 IExtendedBean w = (IExtendedBean) o;
  939.                 if(w.getOldHumanId()==null){
  940.                     return null; // non lancio un errore
  941.                 }
  942.                 if(this.prefix){
  943.                     return "[ExtendedBean-"+w.getClass().getSimpleName()+"] "+ w.getOldHumanId();
  944.                 }else{
  945.                     return w.getOldHumanId();
  946.                 }
  947.             }
  948.             // Remote Store Key
  949.             else if(o instanceof RemoteStoreKeyEntry){
  950.                 return null; // oggetto non modificabile nei dati identificativi
  951.             }
  952.                        
  953.         }catch(Exception e){
  954.             throw new IOException("Trasformazione non riuscita: "+e.getMessage(),e);
  955.         }
  956.        
  957.         throw new IOException("Tipo di Oggetto non gestito ["+o.getClass().getName()+"]");
  958.        
  959.     }

  960.    
  961.     /**
  962.      * Ritorna gli oggetti gestiti
  963.      *
  964.      * @return oggetti gestiti
  965.      * @throws DriverException
  966.      */
  967.     @Override
  968.     public String[] getManagedObjects(boolean simpleName) throws IOException{
  969.         List<String> oggetti = new ArrayList<>();
  970.        
  971.        
  972.         if(simpleName){
  973.            
  974.             // ControlStation
  975.             oggetti.add(PortaDominio.class.getSimpleName()); // Al posto di PdDControlStation
  976.             oggetti.add(MappingFruizionePortaDelegata.class.getSimpleName());
  977.             oggetti.add(MappingErogazionePortaApplicativa.class.getSimpleName());
  978.             oggetti.add(Soggetto.class.getSimpleName()); // Al posto di SoggettoControlStation
  979.            
  980.             // RegistroServizi
  981.             oggetti.add(org.openspcoop2.core.registry.Soggetto.class.getSimpleName());
  982.             oggetti.add(Gruppo.class.getSimpleName());
  983.             oggetti.add(Ruolo.class.getSimpleName());
  984.             oggetti.add(Scope.class.getSimpleName());
  985.             oggetti.add(AccordoCooperazione.class.getSimpleName());
  986.             oggetti.add(AccordoServizioParteComune.class.getSimpleName());
  987.             oggetti.add(PortType.class.getSimpleName());
  988.             oggetti.add(Documento.class.getSimpleName());
  989.             oggetti.add(AccordoServizioParteSpecifica.class.getSimpleName());
  990.                        
  991.             // Configurazione
  992.             oggetti.add(org.openspcoop2.core.config.Soggetto.class.getSimpleName());
  993.             oggetti.add(ServizioApplicativo.class.getSimpleName());
  994.             oggetti.add(PortaDelegata.class.getSimpleName());
  995.             oggetti.add(PortaApplicativa.class.getSimpleName());
  996.             oggetti.add(RoutingTable.class.getSimpleName());
  997.             oggetti.add(GestioneErrore.class.getSimpleName());
  998.             oggetti.add("Configurazione");
  999.             oggetti.add(AccessoRegistro.class.getSimpleName());
  1000.             /** non serve come simple name: oggetti.add(AccessoRegistroRegistro.class.getName()); */
  1001.             oggetti.add(AccessoConfigurazione.class.getSimpleName());
  1002.             oggetti.add(AccessoDatiAutenticazione.class.getSimpleName());
  1003.             oggetti.add(AccessoDatiAutorizzazione.class.getSimpleName());
  1004.             oggetti.add(AccessoDatiGestioneToken.class.getSimpleName());
  1005.             oggetti.add(AccessoDatiAttributeAuthority.class.getSimpleName());
  1006.             oggetti.add(AccessoDatiKeystore.class.getSimpleName());
  1007.             oggetti.add(AccessoDatiConsegnaApplicativi.class.getSimpleName());
  1008.             oggetti.add(AccessoDatiRichieste.class.getSimpleName());
  1009.             oggetti.add(SystemProperties.class.getSimpleName());
  1010.             oggetti.add("RegolaProxyPass");
  1011.             oggetti.add("ConfigurazioneUrlInvocazione");
  1012.             oggetti.add(UpdateProprietaOggetto.class.getSimpleName());
  1013.            
  1014.             // Configurazione Controllo Traffico
  1015.             oggetti.add("ConfigurazioneControlloTraffico");
  1016.             oggetti.add(ConfigurazionePolicy.class.getSimpleName());
  1017.             oggetti.add(AttivazionePolicy.class.getSimpleName());
  1018.            
  1019.             // Generic Properties
  1020.             oggetti.add("TokenPolicyValidazione");
  1021.             oggetti.add("TokenPolicyNegoziazione");
  1022.             oggetti.add(GenericProperties.class.getSimpleName());
  1023.            
  1024.             // RegistroPlugins
  1025.             oggetti.add("ArchivioPlugins");
  1026.             oggetti.add("ArchivioPluginsJarEntry");
  1027.            
  1028.             // Plugin
  1029.             oggetti.add(Plugin.class.getSimpleName());
  1030.            
  1031.             // Allarmi
  1032.             oggetti.add(Allarme.class.getSimpleName());
  1033.             oggetti.add(AllarmeHistory.class.getSimpleName());
  1034.            
  1035.             // Username
  1036.             oggetti.add(User.class.getSimpleName());
  1037.            
  1038.             // Auditing
  1039.             oggetti.add("ConfigurazioneAuditing");
  1040.             oggetti.add("FiltroAuditing");
  1041.             oggetti.add("OperazioneRegistrataTramiteAuditing");
  1042.            
  1043.             // Monitoraggio Applicativo
  1044.             oggetti.add("EliminazioneMessaggiTramiteMonitoraggio");
  1045.            
  1046.             // IExtendedBean
  1047.             oggetti.add("ExtendedBean");
  1048.            
  1049.             // Remote Store Key
  1050.             oggetti.add(RemoteStoreKeyEntry.class.getSimpleName());
  1051.         }
  1052.         else{
  1053.        
  1054.             // ControlStation
  1055.             oggetti.add(PdDControlStation.class.getName());
  1056.             oggetti.add(MappingFruizionePortaDelegata.class.getName());
  1057.             oggetti.add(MappingErogazionePortaApplicativa.class.getName());
  1058.             oggetti.add(SoggettoCtrlStat.class.getName());
  1059.            
  1060.             // RegistroServizi
  1061.             oggetti.add(org.openspcoop2.core.registry.Soggetto.class.getName());
  1062.             oggetti.add(Gruppo.class.getName());
  1063.             oggetti.add(Ruolo.class.getName());
  1064.             oggetti.add(Scope.class.getName());
  1065.             oggetti.add(AccordoCooperazione.class.getName());
  1066.             oggetti.add(AccordoServizioParteComune.class.getName());
  1067.             oggetti.add(PortType.class.getName());
  1068.             oggetti.add(Documento.class.getName());
  1069.             oggetti.add(AccordoServizioParteSpecifica.class.getName());
  1070.             oggetti.add(Soggetto.class.getName());
  1071.            
  1072.             // Configurazione
  1073.             oggetti.add(org.openspcoop2.core.config.Soggetto.class.getName());
  1074.             oggetti.add(ServizioApplicativo.class.getName());
  1075.             oggetti.add(PortaDelegata.class.getName());
  1076.             oggetti.add(PortaApplicativa.class.getName());
  1077.             oggetti.add(RoutingTable.class.getName());
  1078.             oggetti.add(GestioneErrore.class.getName());
  1079.             oggetti.add(Configurazione.class.getName());
  1080.             oggetti.add(AccessoRegistro.class.getName());
  1081.             oggetti.add(AccessoRegistroRegistro.class.getName());
  1082.             oggetti.add(AccessoConfigurazione.class.getName());
  1083.             oggetti.add(AccessoDatiAutorizzazione.class.getName());
  1084.             oggetti.add(AccessoDatiGestioneToken.class.getName());
  1085.             oggetti.add(AccessoDatiAttributeAuthority.class.getName());
  1086.             oggetti.add(AccessoDatiKeystore.class.getName());
  1087.             oggetti.add(AccessoDatiConsegnaApplicativi.class.getName());
  1088.             oggetti.add(AccessoDatiRichieste.class.getName());
  1089.             oggetti.add(SystemProperties.class.getName());
  1090.             oggetti.add(ConfigurazioneUrlInvocazioneRegola.class.getName());
  1091.             oggetti.add(ConfigurazioneUrlInvocazione.class.getName());
  1092.             oggetti.add(UpdateProprietaOggetto.class.getName());    
  1093.            
  1094.             // Configurazione Controllo del Traffico
  1095.             oggetti.add(ConfigurazioneGenerale.class.getName());
  1096.             oggetti.add(ConfigurazionePolicy.class.getName());
  1097.             oggetti.add(AttivazionePolicy.class.getName());
  1098.            
  1099.             // Generic Properties
  1100.             oggetti.add(GenericProperties.class.getName());
  1101.            
  1102.             // RegistroPlugins
  1103.             oggetti.add(RegistroPlugin.class.getName());
  1104.             oggetti.add(RegistroPluginArchivio.class.getName());

  1105.             // Plugin
  1106.             oggetti.add(Plugin.class.getName());
  1107.            
  1108.             // Allarmi
  1109.             oggetti.add(Allarme.class.getName());
  1110.             oggetti.add(AllarmeHistory.class.getName());
  1111.            
  1112.             // Username
  1113.             oggetti.add(User.class.getName());
  1114.            
  1115.             // Auditing
  1116.             oggetti.add(org.openspcoop2.web.lib.audit.dao.Configurazione.class.getName());
  1117.             oggetti.add(Filtro.class.getName());
  1118.             oggetti.add(Operation.class.getName());
  1119.            
  1120.             // Monitoraggio Applicativo
  1121.             oggetti.add(FilterSearch.class.getName());
  1122.            
  1123.             // IExtendedBean
  1124.             oggetti.add(IExtendedBean.class.getName());
  1125.            
  1126.             // Remote Store Key
  1127.             oggetti.add(RemoteStoreKeyEntry.class.getName());
  1128.         }
  1129.        
  1130.         String[]tmp = new String[1];
  1131.         return oggetti.toArray(tmp);
  1132.     }
  1133.    
  1134.     /**
  1135.      * Ritorna un nome descrittivo dell'oggetto.
  1136.      *
  1137.      * @param o
  1138.      * @return nome descrittivo dell'oggetto.
  1139.      * @throws DriverException
  1140.      */
  1141.     @Override
  1142.     public String getSimpleName(Object o) throws IOException{
  1143.        
  1144.        
  1145.         if(o instanceof PdDControlStation){
  1146.             return PortaDominio.class.getSimpleName();
  1147.         }
  1148.         else if(o instanceof SoggettoCtrlStat){
  1149.             return Soggetto.class.getSimpleName();
  1150.         }
  1151.         else if(o instanceof Configurazione){
  1152.             return "Configurazione";
  1153.         }
  1154.         else if(o instanceof AccessoRegistroRegistro){
  1155.             return AccessoRegistro.class.getSimpleName();
  1156.         }
  1157.         else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
  1158.             return "ConfigurazioneAuditing";
  1159.         }
  1160.         else if(o instanceof Filtro){
  1161.             return "FiltroAuditing";
  1162.         }
  1163.         else if(o instanceof Operation){
  1164.             return "OperazioneRegistrataTramiteAuditing";
  1165.         }
  1166.         else if(o instanceof FilterSearch){
  1167.             return "EliminazioneMessaggiTramiteMonitoraggio";
  1168.         }
  1169.         else if(o instanceof ConfigurazioneGenerale){
  1170.             return "ConfigurazioneControlloTraffico";
  1171.         }
  1172.         else if(o instanceof IExtendedBean){
  1173.             return "ExtendedBean-"+o.getClass().getSimpleName();
  1174.         }
  1175.         else if(o instanceof ConfigurazioneAllarmeBean){
  1176.             return Allarme.class.getSimpleName();
  1177.         }
  1178.         else if(o instanceof ConfigurazioneUrlInvocazioneRegola) {
  1179.             return "RegolaProxyPass";
  1180.         }
  1181.         else if(o instanceof ConfigurazioneUrlInvocazione) {
  1182.             return "ConfigurazioneUrlInvocazione";
  1183.         }
  1184.         else if(o instanceof GenericProperties) {
  1185.             return getSimpleNameGenericProperties(o);
  1186.         }
  1187.         else if(o instanceof RegistroPlugin) {
  1188.             return "ArchivioPlugins";
  1189.         }
  1190.         else if(o instanceof RegistroPluginArchivio) {
  1191.             return "ArchivioPluginsJarEntry";
  1192.         }
  1193.         else if(o instanceof RemoteStoreKeyEntry) {
  1194.             return "RemoteStoreKey";
  1195.         }
  1196.         else{
  1197.             return o.getClass().getSimpleName();
  1198.         }
  1199.        
  1200.     }
  1201.    
  1202.     private String getSimpleNameGenericProperties(Object o) throws IOException{
  1203.         GenericProperties  genericProperties = (GenericProperties) o;
  1204.         if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_VALIDATION.equals(genericProperties.getTipologia())) {
  1205.             return "TokenPolicyValidazione";
  1206.         }
  1207.         else if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_RETRIEVE.equals(genericProperties.getTipologia())) {
  1208.             return "TokenPolicyNegoziazione";
  1209.         }
  1210.         else {
  1211.             return o.getClass().getSimpleName();
  1212.         }
  1213.     }
  1214. }