IDBuilder.java
/*
* GovWay - A customizable API Gateway
* https://govway.org
*
* Copyright (c) 2005-2024 Link.it srl (https://link.it).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3, as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openspcoop2.web.ctrlstat.driver;
import java.util.ArrayList;
import java.util.List;
import org.openspcoop2.core.allarmi.Allarme;
import org.openspcoop2.core.allarmi.AllarmeHistory;
import org.openspcoop2.core.config.AccessoConfigurazione;
import org.openspcoop2.core.config.AccessoDatiAttributeAuthority;
import org.openspcoop2.core.config.AccessoDatiAutenticazione;
import org.openspcoop2.core.config.AccessoDatiAutorizzazione;
import org.openspcoop2.core.config.AccessoDatiConsegnaApplicativi;
import org.openspcoop2.core.config.AccessoDatiGestioneToken;
import org.openspcoop2.core.config.AccessoDatiKeystore;
import org.openspcoop2.core.config.AccessoDatiRichieste;
import org.openspcoop2.core.config.AccessoRegistro;
import org.openspcoop2.core.config.AccessoRegistroRegistro;
import org.openspcoop2.core.config.Configurazione;
import org.openspcoop2.core.config.ConfigurazioneUrlInvocazione;
import org.openspcoop2.core.config.ConfigurazioneUrlInvocazioneRegola;
import org.openspcoop2.core.config.GenericProperties;
import org.openspcoop2.core.config.GestioneErrore;
import org.openspcoop2.core.config.PortaApplicativa;
import org.openspcoop2.core.config.PortaDelegata;
import org.openspcoop2.core.config.RegistroPlugin;
import org.openspcoop2.core.config.RegistroPluginArchivio;
import org.openspcoop2.core.config.RoutingTable;
import org.openspcoop2.core.config.ServizioApplicativo;
import org.openspcoop2.core.config.SystemProperties;
import org.openspcoop2.core.config.constants.CostantiConfigurazione;
import org.openspcoop2.core.config.driver.DriverConfigurazioneException;
import org.openspcoop2.core.config.utils.UpdateProprietaOggetto;
import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
import org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale;
import org.openspcoop2.core.controllo_traffico.ConfigurazionePolicy;
import org.openspcoop2.core.id.IDAccordo;
import org.openspcoop2.core.id.IDAccordoCooperazione;
import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
import org.openspcoop2.core.registry.AccordoCooperazione;
import org.openspcoop2.core.registry.AccordoServizioParteComune;
import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
import org.openspcoop2.core.registry.Documento;
import org.openspcoop2.core.registry.Gruppo;
import org.openspcoop2.core.registry.PortType;
import org.openspcoop2.core.registry.PortaDominio;
import org.openspcoop2.core.registry.Ruolo;
import org.openspcoop2.core.registry.Scope;
import org.openspcoop2.core.registry.Soggetto;
import org.openspcoop2.core.registry.driver.IDAccordoCooperazioneFactory;
import org.openspcoop2.core.registry.driver.IDAccordoFactory;
import org.openspcoop2.core.registry.driver.IDServizioFactory;
import org.openspcoop2.monitor.engine.alarm.wrapper.ConfigurazioneAllarmeBean;
import org.openspcoop2.core.plugins.Plugin;
import org.openspcoop2.pdd.core.keystore.RemoteStoreKeyEntry;
import org.openspcoop2.pdd.monitor.driver.FilterSearch;
import org.openspcoop2.utils.serialization.IOException;
import org.openspcoop2.web.ctrlstat.dao.PdDControlStation;
import org.openspcoop2.web.ctrlstat.dao.SoggettoCtrlStat;
import org.openspcoop2.web.ctrlstat.plugins.IExtendedBean;
import org.openspcoop2.web.lib.audit.dao.Filtro;
import org.openspcoop2.web.lib.audit.log.Operation;
import org.openspcoop2.web.lib.users.dao.User;
/**
* Classe utilizzata per generare gli identificatori degli oggetti presenti nella govwayConsole.
*
*
* @author Andrea Poli (apoli@link.it)
* @author Stefano Corallo (corallo@link.it)
* @author Sandra Giangrandi (sandra@link.it)
* @author $Author$
* @version $Rev$, $Date$
*
*/
public class IDBuilder implements org.openspcoop2.utils.serialization.IDBuilder {
private boolean prefix = false;
private IDAccordoFactory idAccordoFactory = null;
private IDAccordoCooperazioneFactory idAccordoCooperazioneFactory = null;
private IDServizioFactory idServizioFactory = null;
public IDBuilder(boolean insertClassNamePrefix){
this.prefix = insertClassNamePrefix;
this.idAccordoFactory = IDAccordoFactory.getInstance();
this.idAccordoCooperazioneFactory = IDAccordoCooperazioneFactory.getInstance();
this.idServizioFactory = IDServizioFactory.getInstance();
}
public IDBuilder(){
this(false);
}
public static IDBuilder getIDBuilder(){
return new IDBuilder();
}
@Override
public String toID(Object o) throws IOException {
if(o==null)
throw new IOException("Oggetto is null");
try{
// ControlStation
if (o instanceof PdDControlStation) {
PdDControlStation p = (PdDControlStation) o;
String id = p.getNome();
if(this.prefix){
return "[PdDControlStation] "+ id;
}else{
return id;
}
}
else if(o instanceof MappingFruizionePortaDelegata){
MappingFruizionePortaDelegata mapping = (MappingFruizionePortaDelegata) o;
StringBuilder bf = new StringBuilder();
bf.append("FR[");
bf.append(mapping.getIdFruitore().getTipo()+"/"+mapping.getIdFruitore().getNome());
bf.append("] SERV[");
bf.append(mapping.getIdServizio().toString());
bf.append("] PD["+mapping.getIdPortaDelegata().getNome());
bf.append("]");
if(this.prefix){
return "[MappingFruizionePortaDelegata] "+ bf.toString();
}else{
return bf.toString();
}
}
else if(o instanceof MappingErogazionePortaApplicativa){
MappingErogazionePortaApplicativa mapping = (MappingErogazionePortaApplicativa) o;
StringBuilder bf = new StringBuilder();
bf.append("SERV[");
bf.append(mapping.getIdServizio().toString());
bf.append("] PA["+mapping.getIdPortaApplicativa().getNome());
bf.append("]");
if(this.prefix){
return "[MappingErogazionePortaApplicativa] "+ bf.toString();
}else{
return bf.toString();
}
}
else if (o instanceof SoggettoCtrlStat) {
SoggettoCtrlStat s = (SoggettoCtrlStat) o;
String id = s.getTipo()+"/"+s.getNome();
if(this.prefix){
return "[SoggettoCtrlStat] "+ id;
}else{
return id;
}
}
// RegistroServizi
else if(o instanceof org.openspcoop2.core.registry.Soggetto){
org.openspcoop2.core.registry.Soggetto s = (org.openspcoop2.core.registry.Soggetto) o;
String id = s.getTipo()+"/"+s.getNome();
if(this.prefix){
return "[SoggettoRegistro] "+ id;
}else{
return id;
}
}
else if (o instanceof Gruppo) {
Gruppo g = (Gruppo) o;
String id = g.getNome();
if(this.prefix){
return "[Gruppo] "+ id;
}else{
return id;
}
}
else if (o instanceof Ruolo) {
Ruolo r = (Ruolo) o;
String id = r.getNome();
if(this.prefix){
return "[Ruolo] "+ id;
}else{
return id;
}
}
else if (o instanceof Scope) {
Scope s = (Scope) o;
String id = s.getNome();
if(this.prefix){
return "[Scope] "+ id;
}else{
return id;
}
}
else if(o instanceof AccordoCooperazione){
AccordoCooperazione ac = (AccordoCooperazione) o;
String id = this.idAccordoCooperazioneFactory.getUriFromAccordo(ac);
if(this.prefix){
return "[AccordoCooperazione] "+id;
}else{
return id;
}
}
else if(o instanceof AccordoServizioParteComune){
AccordoServizioParteComune as = (AccordoServizioParteComune) o;
String id = this.idAccordoFactory.getUriFromAccordo(as);
if(this.prefix){
return "[AccordoServizioParteComune] "+ id;
}else{
return id;
}
}
else if(o instanceof PortType){
PortType p = (PortType) o;
String id = "IDAccordo["+p.getIdAccordo()+"]_"+ p.getNome();
if(this.prefix){
return "[PortType] "+ id;
}else{
return id;
}
}
else if(o instanceof Documento){
Documento d = (Documento) o;
String id = "["+d.getRuolo()+"]["+d.getTipo()+"]"+" "+d.getFile();
if(this.prefix){
return "[Documento] "+ id;
}else{
return id;
}
}else if(o instanceof PortaDominio){
PortaDominio p = (PortaDominio) o;
String id = p.getNome();
if(this.prefix){
return "[PdD] "+ id;
}else{
return id;
}
}else if(o instanceof AccordoServizioParteSpecifica){
AccordoServizioParteSpecifica asps = (AccordoServizioParteSpecifica) o;
String id = this.idServizioFactory.getUriFromAccordo(asps);
if(this.prefix){
return "[AccordoServizioParteSpecifica] "+ id;
}else{
return id;
}
}else if(o instanceof Soggetto){
Soggetto s = (Soggetto) o;
String id = s.getTipo()+"/"+s.getNome();
if(this.prefix){
return "[Soggetto] "+ id;
}else{
return id;
}
}
// Configurazione
else if(o instanceof org.openspcoop2.core.config.Soggetto){
org.openspcoop2.core.config.Soggetto s = (org.openspcoop2.core.config.Soggetto) o;
String id = s.getTipo()+"/"+s.getNome();
if(this.prefix){
return "[SoggettoConfigurazione] "+ id;
}else{
return id;
}
}else if(o instanceof ServizioApplicativo){
ServizioApplicativo s = (ServizioApplicativo) o;
String id = s.getTipoSoggettoProprietario()+"/"+s.getNomeSoggettoProprietario()+"_"+s.getNome();
if(this.prefix){
return "[ServizioApplicativo] "+ id;
}else{
return id;
}
}
else if(o instanceof PortaDelegata){
PortaDelegata pd = (PortaDelegata) o;
String id = pd.getTipoSoggettoProprietario()+"/"+pd.getNomeSoggettoProprietario()+"_"+pd.getNome();
if(this.prefix){
return "[PortaDelegata] "+ id;
}else{
return id;
}
}
else if(o instanceof PortaApplicativa){
PortaApplicativa pa = (PortaApplicativa) o;
String id = pa.getTipoSoggettoProprietario()+"/"+pa.getNomeSoggettoProprietario()+"_"+pa.getNome();
if(this.prefix){
return "[PortaApplicativa] "+ id;
}else{
return id;
}
}else if(o instanceof RoutingTable){
return "RoutingTable";
}else if(o instanceof GestioneErrore){
return "GestioneErrore";
}else if(o instanceof Configurazione){
return "Configurazione";
}else if(o instanceof AccessoRegistro){
return "ConfigurazioneRegistroServizi";
}else if(o instanceof AccessoRegistroRegistro){
AccessoRegistroRegistro registro = (AccessoRegistroRegistro) o;
String id = registro.getNome();
if(this.prefix){
return "[ConfigurazioneRegistroServizi] "+ id;
}else{
return id;
}
}else if(o instanceof AccessoConfigurazione){
return "ConfigurazioneAccessoDati";
}else if(o instanceof AccessoDatiAutenticazione){
return "ConfigurazioneAccessoDatiAutenticazione";
}else if(o instanceof AccessoDatiAutorizzazione){
return "ConfigurazioneAccessoDatiAutorizzazione";
}else if(o instanceof AccessoDatiGestioneToken){
return "ConfigurazioneAccessoDatiGestioneToken";
}else if(o instanceof AccessoDatiAttributeAuthority){
return "ConfigurazioneAccessoDatiAttributeAuthority";
}else if(o instanceof AccessoDatiKeystore){
return "ConfigurazioneAccessoDatiKeystore";
}else if(o instanceof AccessoDatiConsegnaApplicativi){
return "ConfigurazioneAccessoDatiConsegnaApplicativi";
}else if(o instanceof AccessoDatiRichieste){
return "ConfigurazioneAccessoDatiRichieste";
}else if(o instanceof SystemProperties){
return "ProprietàDiSistema";
}else if(o instanceof RegistroPlugin){
RegistroPlugin plugin = (RegistroPlugin) o;
String id = plugin.getNome();
if(this.prefix){
return "[ArchivioPlugins] "+ id;
}else{
return id;
}
}else if(o instanceof RegistroPluginArchivio){
RegistroPluginArchivio plugin = (RegistroPluginArchivio) o;
String id = plugin.getNome();
if(this.prefix){
return "[ArchivioPluginsJarEntry] "+ plugin.getNomePlugin()+"-"+id;
}else{
return id;
}
}else if(o instanceof ConfigurazioneUrlInvocazioneRegola){
ConfigurazioneUrlInvocazioneRegola regola = (ConfigurazioneUrlInvocazioneRegola) o;
String id = regola.getNome();
if(this.prefix){
return "[UrlInvocazioneRegola] "+ id;
}else{
return id;
}
}else if(o instanceof ConfigurazioneUrlInvocazione){
return "Configurazione UrlInvocazione";
}
else if(o instanceof UpdateProprietaOggetto) {
UpdateProprietaOggetto up = (UpdateProprietaOggetto) o;
if(up.getIdPortaApplicativa()!=null) {
if(this.prefix){
return "[UpdateProprietaOggettoPortaApplicativa] "+ up.getIdPortaApplicativa().getNome();
}else{
return "PA-"+up.getIdPortaApplicativa().getNome();
}
}
else if(up.getIdPortaDelegata()!=null) {
if(this.prefix){
return "[UpdateProprietaOggettoPortaDelegata] "+ up.getIdPortaDelegata().getNome();
}else{
return "PD-"+up.getIdPortaDelegata().getNome();
}
}
else if(up.getIdServizioApplicativo()!=null) {
IDSoggetto idSog = up.getIdServizioApplicativo().getIdSoggettoProprietario();
String idSA = idSog.getTipo()+"/"+idSog.getNome()+"_"+up.getIdServizioApplicativo().getNome();
if(this.prefix){
return "[UpdateProprietaOggettoServizioApplicativo] "+ idSA;
}else{
return "SA-"+idSA;
}
}
else {
throw new IOException("Tipo di Oggetto gestito ["+o.getClass().getName()+"] senza id");
}
}
// Users
else if(o instanceof User){
User u = (User) o;
String id = u.getLogin();
if(this.prefix){
return "[User] "+ id;
}else{
return id;
}
}
// Auditing
else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
return "Configurazione Auditing";
}
else if(o instanceof Filtro){
Filtro f = (Filtro) o;
String id = f.toString();
if(this.prefix){
return "[Filtro] "+ id;
}else{
return id;
}
}
// Auditing: eliminazione record salvato
else if(o instanceof org.openspcoop2.web.lib.audit.log.Operation){
org.openspcoop2.web.lib.audit.log.Operation op = (org.openspcoop2.web.lib.audit.log.Operation) o;
if(this.prefix){
return "[OperazioneRegistrataTramiteAuditing] "+ op.getId();
}else{
return op.getId()+"";
}
}
// Monitoraggio Applicativo
else if(o instanceof FilterSearch){
FilterSearch f = (FilterSearch) o;
String id = f.toString();
if(this.prefix){
return "[EliminazioneMessaggiTramiteMonitoraggio] "+ id;
}else{
return id;
}
}
// Configurazione controllo del traffico
else if(o instanceof ConfigurazioneGenerale) {
return "ConfigurazioneControlloTraffico";
}
// Configurazione Policy
else if(o instanceof ConfigurazionePolicy) {
ConfigurazionePolicy policy = (ConfigurazionePolicy) o;
String id = policy.getIdPolicy();
if(this.prefix){
return "[ConfigurazionePolicy] "+ id;
}else{
return id;
}
}
// Attivazione Policy
else if(o instanceof AttivazionePolicy) {
AttivazionePolicy policy = (AttivazionePolicy) o;
String id = policy.getIdActivePolicy();
if(this.prefix){
return "[AttivazionePolicy] "+ id;
}else{
return id;
}
}
// Generic Properties
else if(o instanceof GenericProperties) {
GenericProperties genericProperties = (GenericProperties) o;
String id = genericProperties.getNome();
if(this.prefix){
if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_VALIDATION.equals(genericProperties.getTipologia())) {
return "[TokenPolicyValidazione] "+ id;
}
else if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_RETRIEVE.equals(genericProperties.getTipologia())) {
return "[TokenPolicyNegoziazione] "+ id;
}
else {
return "[GenericProperties] "+ id;
}
}else{
return id;
}
}
// Plugins
else if(o instanceof Plugin) {
Plugin plugin = (Plugin) o;
String id = plugin.getTipoPlugin()+"-"+plugin.getTipo();
if(this.prefix){
return "[Plugin] "+ id;
}else{
return id;
}
}
// Allarme
else if(o instanceof Allarme) {
Allarme allarme = (Allarme) o;
String id = allarme.getNome();
if(this.prefix){
return "[Allarme] "+ id;
}else{
return id;
}
}
// Allarme History
else if(o instanceof AllarmeHistory) {
AllarmeHistory history = (AllarmeHistory) o;
String id = history.getIdAllarme().getNome();
if(this.prefix){
return "[AllarmeHistory] "+ id;
}else{
return id;
}
}
// IExtendedBean
else if(o instanceof IExtendedBean){
IExtendedBean w = (IExtendedBean) o;
if(this.prefix){
return "[ExtendedBean-"+w.getClass().getSimpleName()+"] "+ w.getHumanId();
}else{
return w.getHumanId();
}
}
// Remote Store Key
else if(o instanceof RemoteStoreKeyEntry){
RemoteStoreKeyEntry entry = (RemoteStoreKeyEntry) o;
String id = entry.getKid();
if(this.prefix){
return "[RemoteStoreKey] "+ id;
}else{
return id;
}
}
}catch(Exception e){
throw new IOException("Trasformazione non riuscita: "+e.getMessage(),e);
}
throw new IOException("Tipo di Oggetto non gestito ["+o.getClass().getName()+"]");
}
@Override
public String toID(Object o, String field) throws IOException {
if(o instanceof Documento){
return this.toID(o);
}else{
return this.toID(o) + "." + field;
}
}
/**
* Genera il vecchio identificatore che identificava l'oggetto passato come parametro prima di un update in corso
* L'oggetto in corso deve essere valorizzato negli elementi old_XXX
*
* @param o Oggetto su cui generare un identificatore univoco
* @return identificatore univoco
*/
@Override
public String toOldID(Object o) throws IOException{
if(o==null)
throw new IOException("Oggetto is null");
try{
// ControlStation
if (o instanceof PdDControlStation) {
PdDControlStation p = (PdDControlStation) o;
if(p.getOldNomeForUpdate()==null){
return null; // non lancio un errore
}
String id = p.getOldNomeForUpdate();
if(this.prefix){
return "[PdDControlStation] "+ id;
}else{
return id;
}
}
else if(o instanceof MappingFruizionePortaDelegata){
return null; // oggetto non modificabile nei dati identificativi
}
else if(o instanceof MappingErogazionePortaApplicativa){
return null; // oggetto non modificabile nei dati identificativi
}
else if (o instanceof SoggettoCtrlStat) {
SoggettoCtrlStat s = (SoggettoCtrlStat) o;
if(s.getOldTipoForUpdate()==null || s.getOldNomeForUpdate()==null){
return null; // non lancio un errore
}
String id = s.getOldTipoForUpdate()+"/"+s.getOldNomeForUpdate();
if(this.prefix){
return "[SoggettoCtrlStat] "+ id;
}else{
return id;
}
}
// RegistroServizi
else if(o instanceof org.openspcoop2.core.registry.Soggetto){
org.openspcoop2.core.registry.Soggetto s = (org.openspcoop2.core.registry.Soggetto) o;
if(s.getOldIDSoggettoForUpdate()==null || s.getOldIDSoggettoForUpdate().getTipo()==null || s.getOldIDSoggettoForUpdate().getNome()==null){
return null; // non lancio un errore
}
String id = s.getOldIDSoggettoForUpdate().getTipo()+"/"+s.getOldIDSoggettoForUpdate().getNome();
if(this.prefix){
return "[SoggettoRegistro] "+ id;
}else{
return id;
}
}
else if(o instanceof Gruppo){
Gruppo g = (Gruppo) o;
if(g.getOldIDGruppoForUpdate()==null){
return null; // non lancio un errore
}
String id = g.getOldIDGruppoForUpdate().getNome();
if(this.prefix){
return "[Gruppo] "+ id;
}else{
return id;
}
}
else if (o instanceof Ruolo) {
Ruolo r = (Ruolo) o;
if(r.getOldIDRuoloForUpdate()==null){
return null; // non lancio un errore
}
String id = r.getOldIDRuoloForUpdate().getNome();
if(this.prefix){
return "[Ruolo] "+ id;
}else{
return id;
}
}
else if (o instanceof Scope) {
Scope s = (Scope) o;
if(s.getOldIDScopeForUpdate()==null){
return null; // non lancio un errore
}
String id = s.getOldIDScopeForUpdate().getNome();
if(this.prefix){
return "[Scope] "+ id;
}else{
return id;
}
}
else if(o instanceof AccordoCooperazione){
AccordoCooperazione ac = (AccordoCooperazione) o;
IDAccordoCooperazione idOLD = ac.getOldIDAccordoForUpdate();
if(idOLD==null){
return null; // non lancio un errore
}
String id = this.idAccordoCooperazioneFactory.getUriFromIDAccordo(idOLD);
if(this.prefix){
return "[AccordoCooperazione] "+id;
}else{
return id;
}
}
else if(o instanceof AccordoServizioParteComune){
AccordoServizioParteComune as = (AccordoServizioParteComune) o;
IDAccordo idOLD = as.getOldIDAccordoForUpdate();
if(idOLD==null){
return null; // non lancio un errore
}
String id = this.idAccordoFactory.getUriFromIDAccordo(idOLD);
if(this.prefix){
return "[AccordoServizioParteComune] "+ id;
}else{
return id;
}
}
else if(o instanceof PortType){
return null; // oggetto non modificabile nei dati identificativi
}
else if(o instanceof Documento){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof PortaDominio){
PortaDominio p = (PortaDominio) o;
if(p.getOldNomeForUpdate()==null){
return null; // non lancio un errore
}
String id = p.getOldNomeForUpdate();
if(this.prefix){
return "[PdD] "+ id;
}else{
return id;
}
}else if(o instanceof AccordoServizioParteSpecifica){
AccordoServizioParteSpecifica asps = (AccordoServizioParteSpecifica) o;
if(asps.getOldIDServizioForUpdate()==null){
return null; // non lancio un errore
}
String id = this.idServizioFactory.getUriFromIDServizio(asps.getOldIDServizioForUpdate());
if(this.prefix){
return "[AccordoServizioParteSpecifica] "+ id;
}else{
return id;
}
}
// Configurazione
else if(o instanceof org.openspcoop2.core.config.Soggetto){
org.openspcoop2.core.config.Soggetto s = (org.openspcoop2.core.config.Soggetto) o;
if(s.getOldIDSoggettoForUpdate()==null || s.getOldIDSoggettoForUpdate().getTipo()==null || s.getOldIDSoggettoForUpdate().getNome()==null){
return null; // non lancio un errore
}
String id = s.getOldIDSoggettoForUpdate().getTipo()+"/"+s.getOldIDSoggettoForUpdate().getNome();
if(this.prefix){
return "[SoggettoConfigurazione] "+ id;
}else{
return id;
}
}else if(o instanceof ServizioApplicativo){
ServizioApplicativo s = (ServizioApplicativo) o;
if( (s.getOldIDServizioApplicativoForUpdate()==null)) {
return null; // non lancio un errore
}
if( (s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()==null ||
s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()==null ||
s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()==null)
&& s.getOldIDServizioApplicativoForUpdate().getNome()==null) {
return null; // non lancio un errore
}
String id = null;
if(s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()!=null && s.getOldIDServizioApplicativoForUpdate().getNome()!=null){
id = s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()+"/"+
s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()+"_"+
s.getOldIDServizioApplicativoForUpdate().getNome();
}
else if(s.getOldIDServizioApplicativoForUpdate().getNome()!=null){
id = s.getTipoSoggettoProprietario()+"/"+s.getNomeSoggettoProprietario()+"_"+
s.getOldIDServizioApplicativoForUpdate().getNome();
}
else if(s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario()==null){
throw new DriverConfigurazioneException("Oggetto in modifica non correttamente valorizzato");
}
else{
id = s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getTipo()+"/"+
s.getOldIDServizioApplicativoForUpdate().getIdSoggettoProprietario().getNome()+"_"+
"_"+s.getNome();
}
if(this.prefix){
return "[ServizioApplicativo] "+ id;
}else{
return id;
}
}
else if(o instanceof PortaDelegata){
PortaDelegata pd = (PortaDelegata) o;
if(pd.getOldIDPortaDelegataForUpdate()==null || pd.getOldIDPortaDelegataForUpdate().getNome()==null){
return null; // non lancio un errore
}
String id = pd.getOldIDPortaDelegataForUpdate().getNome();
if(this.prefix){
return "[PortaDelegata] "+ id;
}else{
return id;
}
}
else if(o instanceof PortaApplicativa){
PortaApplicativa pa = (PortaApplicativa) o;
if(pa.getOldIDPortaApplicativaForUpdate()==null || pa.getOldIDPortaApplicativaForUpdate().getNome()==null){
return null; // non lancio un errore
}
String id = pa.getOldIDPortaApplicativaForUpdate().getNome();
if(this.prefix){
return "[PortaApplicativa] "+ id;
}else{
return id;
}
}else if(o instanceof RoutingTable){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof GestioneErrore){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof Configurazione){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoRegistro){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoRegistroRegistro){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoConfigurazione){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiAutenticazione){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiAutorizzazione){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiGestioneToken){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiAttributeAuthority){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiKeystore){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiConsegnaApplicativi){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof AccessoDatiRichieste){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof SystemProperties){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof RegistroPlugin){
RegistroPlugin plugin = (RegistroPlugin) o;
if(plugin.getOldNome()==null) {
return null; // non lancio un errore
}
String id = plugin.getOldNome();
if(this.prefix){
return "[ArchivioPlugins] "+ id;
}else{
return id;
}
}else if(o instanceof RegistroPluginArchivio){
return null; // oggetto non modificabile nei dati identificativi
}else if(o instanceof ConfigurazioneUrlInvocazioneRegola){
ConfigurazioneUrlInvocazioneRegola regola = (ConfigurazioneUrlInvocazioneRegola) o;
if(regola.getOldNome()==null) {
return null; // non lancio un errore
}
String id = regola.getOldNome();
if(this.prefix){
return "[UrlInvocazioneRegola] "+ id;
}else{
return id;
}
}else if(o instanceof ConfigurazioneUrlInvocazione){
return null; // oggetto non modificabile nei dati identificativi
}
else if(o instanceof UpdateProprietaOggetto) {
return null; // oggetto non modificabile nei dati identificativi
}
// Users
else if(o instanceof User){
return null; // oggetto non modificabile nei dati identificativi
}
// Auditing
else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
return null; // oggetto non modificabile nei dati identificativi
}
else if(o instanceof Filtro){
return null; // oggetto non modificabile nei dati identificativi
}
// Auditing: eliminazione record salvato
else if(o instanceof org.openspcoop2.web.lib.audit.log.Operation){
return null; // oggetto non modificabile nei dati identificativi
}
// Monitoraggio Applicativo
else if(o instanceof FilterSearch){
return null; // oggetto non modificabile nei dati identificativi
}
// Configurazione controllo del traffico
else if(o instanceof ConfigurazioneGenerale) {
return null; // oggetto non modificabile nei dati identificativi
}
// Configurazione Policy
else if(o instanceof ConfigurazionePolicy) {
ConfigurazionePolicy policy = (ConfigurazionePolicy) o;
if(policy.getOldIdPolicy()==null || policy.getOldIdPolicy().getNome()==null){
return null; // non lancio un errore
}
String id = policy.getOldIdPolicy().getNome();
if(this.prefix){
return "[ConfigurazionePolicy] "+ id;
}else{
return id;
}
}
// Attivazione Policy
else if(o instanceof AttivazionePolicy) {
AttivazionePolicy policy = (AttivazionePolicy) o;
if(policy.getOldIdActivePolicy()==null || policy.getOldIdActivePolicy().getNome()==null){
return null; // non lancio un errore
}
String id = policy.getOldIdActivePolicy().getNome();
if(this.prefix){
return "[ConfigurazionePolicy] "+ id;
}else{
return id;
}
}
// Generic Properties
else if(o instanceof GenericProperties) {
return null; // oggetto non modificabile nei dati identificativi
}
// Plugins
else if(o instanceof Plugin) {
Plugin plugin = (Plugin) o;
if(plugin.getOldIdPlugin()==null || plugin.getOldIdPlugin().getTipoPlugin()==null || plugin.getOldIdPlugin().getTipo()==null){
return null; // non lancio un errore
}
String id = plugin.getOldIdPlugin().getTipoPlugin()+"-"+plugin.getOldIdPlugin().getTipo();
if(this.prefix){
return "[Plugin] "+ id;
}else{
return id;
}
}
// Allarme
else if(o instanceof Allarme) {
return null; // oggetto non modificabile nei dati identificativi
}
// Allarme History
else if(o instanceof AllarmeHistory) {
return null; // oggetto non modificabile nei dati identificativi
}
// IExtendedBean
else if(o instanceof IExtendedBean){
IExtendedBean w = (IExtendedBean) o;
if(w.getOldHumanId()==null){
return null; // non lancio un errore
}
if(this.prefix){
return "[ExtendedBean-"+w.getClass().getSimpleName()+"] "+ w.getOldHumanId();
}else{
return w.getOldHumanId();
}
}
// Remote Store Key
else if(o instanceof RemoteStoreKeyEntry){
return null; // oggetto non modificabile nei dati identificativi
}
}catch(Exception e){
throw new IOException("Trasformazione non riuscita: "+e.getMessage(),e);
}
throw new IOException("Tipo di Oggetto non gestito ["+o.getClass().getName()+"]");
}
/**
* Ritorna gli oggetti gestiti
*
* @return oggetti gestiti
* @throws DriverException
*/
@Override
public String[] getManagedObjects(boolean simpleName) throws IOException{
List<String> oggetti = new ArrayList<>();
if(simpleName){
// ControlStation
oggetti.add(PortaDominio.class.getSimpleName()); // Al posto di PdDControlStation
oggetti.add(MappingFruizionePortaDelegata.class.getSimpleName());
oggetti.add(MappingErogazionePortaApplicativa.class.getSimpleName());
oggetti.add(Soggetto.class.getSimpleName()); // Al posto di SoggettoControlStation
// RegistroServizi
oggetti.add(org.openspcoop2.core.registry.Soggetto.class.getSimpleName());
oggetti.add(Gruppo.class.getSimpleName());
oggetti.add(Ruolo.class.getSimpleName());
oggetti.add(Scope.class.getSimpleName());
oggetti.add(AccordoCooperazione.class.getSimpleName());
oggetti.add(AccordoServizioParteComune.class.getSimpleName());
oggetti.add(PortType.class.getSimpleName());
oggetti.add(Documento.class.getSimpleName());
oggetti.add(AccordoServizioParteSpecifica.class.getSimpleName());
// Configurazione
oggetti.add(org.openspcoop2.core.config.Soggetto.class.getSimpleName());
oggetti.add(ServizioApplicativo.class.getSimpleName());
oggetti.add(PortaDelegata.class.getSimpleName());
oggetti.add(PortaApplicativa.class.getSimpleName());
oggetti.add(RoutingTable.class.getSimpleName());
oggetti.add(GestioneErrore.class.getSimpleName());
oggetti.add("Configurazione");
oggetti.add(AccessoRegistro.class.getSimpleName());
/** non serve come simple name: oggetti.add(AccessoRegistroRegistro.class.getName()); */
oggetti.add(AccessoConfigurazione.class.getSimpleName());
oggetti.add(AccessoDatiAutenticazione.class.getSimpleName());
oggetti.add(AccessoDatiAutorizzazione.class.getSimpleName());
oggetti.add(AccessoDatiGestioneToken.class.getSimpleName());
oggetti.add(AccessoDatiAttributeAuthority.class.getSimpleName());
oggetti.add(AccessoDatiKeystore.class.getSimpleName());
oggetti.add(AccessoDatiConsegnaApplicativi.class.getSimpleName());
oggetti.add(AccessoDatiRichieste.class.getSimpleName());
oggetti.add(SystemProperties.class.getSimpleName());
oggetti.add("RegolaProxyPass");
oggetti.add("ConfigurazioneUrlInvocazione");
oggetti.add(UpdateProprietaOggetto.class.getSimpleName());
// Configurazione Controllo Traffico
oggetti.add("ConfigurazioneControlloTraffico");
oggetti.add(ConfigurazionePolicy.class.getSimpleName());
oggetti.add(AttivazionePolicy.class.getSimpleName());
// Generic Properties
oggetti.add("TokenPolicyValidazione");
oggetti.add("TokenPolicyNegoziazione");
oggetti.add(GenericProperties.class.getSimpleName());
// RegistroPlugins
oggetti.add("ArchivioPlugins");
oggetti.add("ArchivioPluginsJarEntry");
// Plugin
oggetti.add(Plugin.class.getSimpleName());
// Allarmi
oggetti.add(Allarme.class.getSimpleName());
oggetti.add(AllarmeHistory.class.getSimpleName());
// Username
oggetti.add(User.class.getSimpleName());
// Auditing
oggetti.add("ConfigurazioneAuditing");
oggetti.add("FiltroAuditing");
oggetti.add("OperazioneRegistrataTramiteAuditing");
// Monitoraggio Applicativo
oggetti.add("EliminazioneMessaggiTramiteMonitoraggio");
// IExtendedBean
oggetti.add("ExtendedBean");
// Remote Store Key
oggetti.add(RemoteStoreKeyEntry.class.getSimpleName());
}
else{
// ControlStation
oggetti.add(PdDControlStation.class.getName());
oggetti.add(MappingFruizionePortaDelegata.class.getName());
oggetti.add(MappingErogazionePortaApplicativa.class.getName());
oggetti.add(SoggettoCtrlStat.class.getName());
// RegistroServizi
oggetti.add(org.openspcoop2.core.registry.Soggetto.class.getName());
oggetti.add(Gruppo.class.getName());
oggetti.add(Ruolo.class.getName());
oggetti.add(Scope.class.getName());
oggetti.add(AccordoCooperazione.class.getName());
oggetti.add(AccordoServizioParteComune.class.getName());
oggetti.add(PortType.class.getName());
oggetti.add(Documento.class.getName());
oggetti.add(AccordoServizioParteSpecifica.class.getName());
oggetti.add(Soggetto.class.getName());
// Configurazione
oggetti.add(org.openspcoop2.core.config.Soggetto.class.getName());
oggetti.add(ServizioApplicativo.class.getName());
oggetti.add(PortaDelegata.class.getName());
oggetti.add(PortaApplicativa.class.getName());
oggetti.add(RoutingTable.class.getName());
oggetti.add(GestioneErrore.class.getName());
oggetti.add(Configurazione.class.getName());
oggetti.add(AccessoRegistro.class.getName());
oggetti.add(AccessoRegistroRegistro.class.getName());
oggetti.add(AccessoConfigurazione.class.getName());
oggetti.add(AccessoDatiAutorizzazione.class.getName());
oggetti.add(AccessoDatiGestioneToken.class.getName());
oggetti.add(AccessoDatiAttributeAuthority.class.getName());
oggetti.add(AccessoDatiKeystore.class.getName());
oggetti.add(AccessoDatiConsegnaApplicativi.class.getName());
oggetti.add(AccessoDatiRichieste.class.getName());
oggetti.add(SystemProperties.class.getName());
oggetti.add(ConfigurazioneUrlInvocazioneRegola.class.getName());
oggetti.add(ConfigurazioneUrlInvocazione.class.getName());
oggetti.add(UpdateProprietaOggetto.class.getName());
// Configurazione Controllo del Traffico
oggetti.add(ConfigurazioneGenerale.class.getName());
oggetti.add(ConfigurazionePolicy.class.getName());
oggetti.add(AttivazionePolicy.class.getName());
// Generic Properties
oggetti.add(GenericProperties.class.getName());
// RegistroPlugins
oggetti.add(RegistroPlugin.class.getName());
oggetti.add(RegistroPluginArchivio.class.getName());
// Plugin
oggetti.add(Plugin.class.getName());
// Allarmi
oggetti.add(Allarme.class.getName());
oggetti.add(AllarmeHistory.class.getName());
// Username
oggetti.add(User.class.getName());
// Auditing
oggetti.add(org.openspcoop2.web.lib.audit.dao.Configurazione.class.getName());
oggetti.add(Filtro.class.getName());
oggetti.add(Operation.class.getName());
// Monitoraggio Applicativo
oggetti.add(FilterSearch.class.getName());
// IExtendedBean
oggetti.add(IExtendedBean.class.getName());
// Remote Store Key
oggetti.add(RemoteStoreKeyEntry.class.getName());
}
String[]tmp = new String[1];
return oggetti.toArray(tmp);
}
/**
* Ritorna un nome descrittivo dell'oggetto.
*
* @param o
* @return nome descrittivo dell'oggetto.
* @throws DriverException
*/
@Override
public String getSimpleName(Object o) throws IOException{
if(o instanceof PdDControlStation){
return PortaDominio.class.getSimpleName();
}
else if(o instanceof SoggettoCtrlStat){
return Soggetto.class.getSimpleName();
}
else if(o instanceof Configurazione){
return "Configurazione";
}
else if(o instanceof AccessoRegistroRegistro){
return AccessoRegistro.class.getSimpleName();
}
else if(o instanceof org.openspcoop2.web.lib.audit.dao.Configurazione){
return "ConfigurazioneAuditing";
}
else if(o instanceof Filtro){
return "FiltroAuditing";
}
else if(o instanceof Operation){
return "OperazioneRegistrataTramiteAuditing";
}
else if(o instanceof FilterSearch){
return "EliminazioneMessaggiTramiteMonitoraggio";
}
else if(o instanceof ConfigurazioneGenerale){
return "ConfigurazioneControlloTraffico";
}
else if(o instanceof IExtendedBean){
return "ExtendedBean-"+o.getClass().getSimpleName();
}
else if(o instanceof ConfigurazioneAllarmeBean){
return Allarme.class.getSimpleName();
}
else if(o instanceof ConfigurazioneUrlInvocazioneRegola) {
return "RegolaProxyPass";
}
else if(o instanceof ConfigurazioneUrlInvocazione) {
return "ConfigurazioneUrlInvocazione";
}
else if(o instanceof GenericProperties) {
return getSimpleNameGenericProperties(o);
}
else if(o instanceof RegistroPlugin) {
return "ArchivioPlugins";
}
else if(o instanceof RegistroPluginArchivio) {
return "ArchivioPluginsJarEntry";
}
else if(o instanceof RemoteStoreKeyEntry) {
return "RemoteStoreKey";
}
else{
return o.getClass().getSimpleName();
}
}
private String getSimpleNameGenericProperties(Object o) throws IOException{
GenericProperties genericProperties = (GenericProperties) o;
if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_VALIDATION.equals(genericProperties.getTipologia())) {
return "TokenPolicyValidazione";
}
else if(CostantiConfigurazione.GENERIC_PROPERTIES_TOKEN_TIPOLOGIA_RETRIEVE.equals(genericProperties.getTipologia())) {
return "TokenPolicyNegoziazione";
}
else {
return o.getClass().getSimpleName();
}
}
}