DeleterArchiveUtils.java
- /*
- * GovWay - A customizable API Gateway
- * https://govway.org
- *
- * Copyright (c) 2005-2025 Link.it srl (https://link.it).
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3, as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package org.openspcoop2.protocol.engine.archive;
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.openspcoop2.core.allarmi.Allarme;
- import org.openspcoop2.core.allarmi.constants.RuoloPorta;
- import org.openspcoop2.core.commons.ErrorsHandlerCostant;
- import org.openspcoop2.core.config.Configurazione;
- import org.openspcoop2.core.config.PortaApplicativa;
- import org.openspcoop2.core.config.PortaDelegata;
- import org.openspcoop2.core.controllo_traffico.AttivazionePolicy;
- import org.openspcoop2.core.controllo_traffico.constants.RuoloPolicy;
- import org.openspcoop2.core.id.IDAccordo;
- import org.openspcoop2.core.id.IDAccordoCooperazione;
- import org.openspcoop2.core.id.IDGenericProperties;
- import org.openspcoop2.core.id.IDGruppo;
- import org.openspcoop2.core.id.IDPortaApplicativa;
- import org.openspcoop2.core.id.IDPortaDelegata;
- import org.openspcoop2.core.id.IDRuolo;
- import org.openspcoop2.core.id.IDScope;
- import org.openspcoop2.core.id.IDServizio;
- import org.openspcoop2.core.id.IDServizioApplicativo;
- import org.openspcoop2.core.id.IDSoggetto;
- import org.openspcoop2.core.mapping.MappingErogazionePortaApplicativa;
- import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
- import org.openspcoop2.core.plugins.IdPlugin;
- import org.openspcoop2.core.registry.AccordoCooperazione;
- import org.openspcoop2.core.registry.AccordoServizioParteComune;
- import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
- import org.openspcoop2.core.registry.Fruitore;
- import org.openspcoop2.core.registry.Gruppo;
- 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.constants.PddTipologia;
- import org.openspcoop2.core.registry.driver.IDServizioFactory;
- import org.openspcoop2.protocol.engine.ProtocolFactoryManager;
- import org.openspcoop2.protocol.engine.utils.DBOggettiInUsoUtils;
- import org.openspcoop2.protocol.sdk.IProtocolFactory;
- import org.openspcoop2.protocol.sdk.archive.AbstractArchiveGenericProperties;
- import org.openspcoop2.protocol.sdk.archive.Archive;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAccordoCooperazione;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAccordoServizioComposto;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAccordoServizioParteComune;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAccordoServizioParteSpecifica;
- import org.openspcoop2.protocol.sdk.archive.ArchiveActivePolicy;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAllarme;
- import org.openspcoop2.protocol.sdk.archive.ArchiveAttributeAuthority;
- import org.openspcoop2.protocol.sdk.archive.ArchiveConfigurationPolicy;
- import org.openspcoop2.protocol.sdk.archive.ArchiveEsitoDelete;
- import org.openspcoop2.protocol.sdk.archive.ArchiveEsitoImportDetail;
- import org.openspcoop2.protocol.sdk.archive.ArchiveEsitoImportDetailConfigurazione;
- import org.openspcoop2.protocol.sdk.archive.ArchiveFruitore;
- import org.openspcoop2.protocol.sdk.archive.ArchiveGruppo;
- import org.openspcoop2.protocol.sdk.archive.ArchiveMappingErogazione;
- import org.openspcoop2.protocol.sdk.archive.ArchiveMappingFruizione;
- import org.openspcoop2.protocol.sdk.archive.ArchivePdd;
- import org.openspcoop2.protocol.sdk.archive.ArchivePluginArchivio;
- import org.openspcoop2.protocol.sdk.archive.ArchivePluginClasse;
- import org.openspcoop2.protocol.sdk.archive.ArchivePortaApplicativa;
- import org.openspcoop2.protocol.sdk.archive.ArchivePortaDelegata;
- import org.openspcoop2.protocol.sdk.archive.ArchiveRuolo;
- import org.openspcoop2.protocol.sdk.archive.ArchiveScope;
- import org.openspcoop2.protocol.sdk.archive.ArchiveServizioApplicativo;
- import org.openspcoop2.protocol.sdk.archive.ArchiveSoggetto;
- import org.openspcoop2.protocol.sdk.archive.ArchiveTokenPolicy;
- import org.openspcoop2.protocol.sdk.archive.ArchiveUrlInvocazioneRegola;
- import org.openspcoop2.protocol.sdk.constants.ArchiveStatoImport;
- import org.slf4j.Logger;
- /**
- * DeleterArchiveUtils
- *
- * @author Poli Andrea (apoli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class DeleterArchiveUtils {
- private AbstractArchiveEngine importerEngine;
- private Logger log;
- private String userLogin;
- private boolean deletePolicyConfigurazione;
- private boolean deletePluginConfigurazione;
- private ProtocolFactoryManager protocolFactoryManager;
-
- public DeleterArchiveUtils(AbstractArchiveEngine importerEngine,Logger log,
- String userLogin,
- boolean deletePolicyConfigurazione,
- boolean deletePluginConfigurazione) throws Exception{
- this.importerEngine = importerEngine;
- this.log = log;
- this.userLogin = userLogin;
- this.deletePolicyConfigurazione = deletePolicyConfigurazione;
- this.deletePluginConfigurazione = deletePluginConfigurazione;
- this.protocolFactoryManager = ProtocolFactoryManager.getInstance();
- }
-
- private static String NEW_LINE = "\n\t\t";
- private static boolean NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO = false;
-
-
- public ArchiveEsitoDelete deleteArchive(Archive archive, String userLogin) throws Exception,ImportInformationMissingException{
- try{
-
- ArchiveEsitoDelete esito = new ArchiveEsitoDelete();
-
- // Soggetto Default
- Map<String, IDSoggetto> mapIdSoggettoDefault = new HashMap<>();
- Map<String, Boolean> mapAPIconReferente = new HashMap<>();
- if(this.protocolFactoryManager==null) {
- throw new Exception("ProtocolFactoryManager not initialized");
- }
- Enumeration<String> pEnum = this.protocolFactoryManager.getProtocolFactories().keys();
- if(pEnum!=null) {
- while (pEnum.hasMoreElements()) {
- String protocollo = (String) pEnum.nextElement();
- IDSoggetto soggettoDefaultProtocollo = this.importerEngine.getSoggettoDefault( protocollo );
- if(soggettoDefaultProtocollo==null) {
- throw new Exception("IDSoggetto di default non trovato per il protocollo '"+protocollo+"'");
- }
- mapIdSoggettoDefault.put(protocollo, soggettoDefaultProtocollo);
-
- IProtocolFactory<?> pf = this.protocolFactoryManager.getProtocolFactoryByName(protocollo);
- boolean supportoReferente = false;
- if(pf!=null) {
- supportoReferente = pf.createProtocolConfiguration().isSupportoSoggettoReferenteAccordiParteComune();
- }
- mapAPIconReferente.put(protocollo, supportoReferente);
- }
- }
-
-
-
-
-
- // Preparo Liste di Mapping da creare una volta registrati sia gli accordi (servizi e fruitori) che le porte (delegate e applicative)
- List<MappingErogazionePortaApplicativa> listMappingErogazionePA = new ArrayList<MappingErogazionePortaApplicativa>();
- List<MappingFruizionePortaDelegata> listMappingFruizionePD = new ArrayList<MappingFruizionePortaDelegata>();
-
- // Servizi
- for (int i = 0; i < archive.getAccordiServizioParteSpecifica().size(); i++) {
- ArchiveAccordoServizioParteSpecifica archiveAccordoServizioParteSpecifica = archive.getAccordiServizioParteSpecifica().get(i);
- archiveAccordoServizioParteSpecifica.update();
-
- // gestione portaApplicativaAssociata
- if(archiveAccordoServizioParteSpecifica.getMappingPorteApplicativeAssociate()!=null &&
- archiveAccordoServizioParteSpecifica.getMappingPorteApplicativeAssociate().size()>0){
- List<IDPortaApplicativa> idPACheck = null;
- boolean existsParteSpecifica = false;
- try {
- existsParteSpecifica = this.importerEngine.existsAccordoServizioParteSpecifica(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica());
- }catch(Exception e) {
- // ignore
- }
- boolean existsIDPorteApplicativeAssociateErogazione = false;
- try {
- existsIDPorteApplicativeAssociateErogazione = this.importerEngine.existsIDPorteApplicativeAssociateErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica());
- }catch(Exception e) {
- // ignore
- }
-
- if(existsParteSpecifica &&
- existsIDPorteApplicativeAssociateErogazione) {
- idPACheck = this.importerEngine.getIDPorteApplicativeAssociateErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica());
- }
- for (MappingErogazionePortaApplicativa mappingPorteApplicativeAssociata : archiveAccordoServizioParteSpecifica.getMappingPorteApplicativeAssociate()) {
- if(idPACheck!=null && idPACheck.size()>0 && idPACheck.contains(mappingPorteApplicativeAssociata.getIdPortaApplicativa())){
- listMappingErogazionePA.add(mappingPorteApplicativeAssociata);
- }
- }
- }
- }
-
- // Fruitori
- for (int i = 0; i < archive.getAccordiFruitori().size(); i++) {
- ArchiveFruitore archiveFruitore = archive.getAccordiFruitori().get(i);
- archiveFruitore.update();
-
- // gestione portaDelegataAssociata
- if(archiveFruitore.getMappingPorteDelegateAssociate()!=null &&
- archiveFruitore.getMappingPorteDelegateAssociate().size()>0){
- List<IDPortaDelegata> idPDCheck = null;
- boolean existsParteSpecifica = false;
- try {
- existsParteSpecifica = this.importerEngine.existsAccordoServizioParteSpecifica(archiveFruitore.getIdAccordoServizioParteSpecifica());
- }catch(Exception e) {
- // ignore
- }
- boolean existsIDPorteDelegateAssociateFruizione = false;
- try {
- existsIDPorteDelegateAssociateFruizione = this.importerEngine.existsIDPorteDelegateAssociateFruizione(archiveFruitore.getIdAccordoServizioParteSpecifica(), archiveFruitore.getIdSoggettoFruitore());
- }catch(Exception e) {
- // ignore
- }
- if(existsParteSpecifica &&
- existsIDPorteDelegateAssociateFruizione) {
- idPDCheck = this.importerEngine.getIDPorteDelegateAssociateFruizione(archiveFruitore.getIdAccordoServizioParteSpecifica(), archiveFruitore.getIdSoggettoFruitore());
- }
- for (MappingFruizionePortaDelegata mappingPorteDelegateAssociata : archiveFruitore.getMappingPorteDelegateAssociate()) {
- if(idPDCheck!=null && idPDCheck.size()>0 && idPDCheck.contains(mappingPorteDelegateAssociata.getIdPortaDelegata())){
- listMappingFruizionePD.add(mappingPorteDelegateAssociata);
- }
- }
- }
- }
-
- // Mapping Erogazione - PA (eventuali errori non provocano il fallimento del loader,
- // cmq sia il mapping viene eliminato dopo quando si procede all'eliminazione puntuale degli oggetti)
- if(listMappingErogazionePA.size()>0){
- for (int i = 0; i < listMappingErogazionePA.size(); i++) {
- MappingErogazionePortaApplicativa mapping = listMappingErogazionePA.get(i);
- ArchiveMappingErogazione archiveMappingErogazione = new ArchiveMappingErogazione(mapping);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveMappingErogazione);
- try{
- if(this.importerEngine.existsMappingErogazione(mapping.getIdServizio(), mapping.getIdPortaApplicativa())) {
- this.importerEngine.deleteMappingErogazione(mapping.getIdServizio(), mapping.getIdPortaApplicativa());
- detail.setState(ArchiveStatoImport.DELETED);
- }
- else {
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- }
- }catch(Exception e){
- this.log.error("Errore durante l'eliminazione del mapping di erogazione del servizio ["+mapping.getIdServizio()+
- "] verso la porta applicativa ["+mapping.getIdPortaApplicativa().getNome()+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getMappingErogazioni().add(detail);
- }
- }
-
- // Mapping Fruizione - PD (eventuali errori non provocano il fallimento del loader,
- // cmq sia il mapping viene eliminato dopo quando si procede all'eliminazione puntuale degli oggetti)
- if(listMappingFruizionePD.size()>0){
- for (int i = 0; i < listMappingFruizionePD.size(); i++) {
- MappingFruizionePortaDelegata mapping = listMappingFruizionePD.get(i);
- ArchiveMappingFruizione archiveMappingFruizione = new ArchiveMappingFruizione(mapping);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveMappingFruizione);
- try{
- if(this.importerEngine.existsMappingFruizione(mapping.getIdServizio(), mapping.getIdFruitore(), mapping.getIdPortaDelegata())) {
- this.importerEngine.deleteMappingFruizione(mapping.getIdServizio(), mapping.getIdFruitore(), mapping.getIdPortaDelegata());
- detail.setState(ArchiveStatoImport.DELETED);
- }
- else {
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- }
- }catch(Exception e){
- this.log.error("Errore durante l'eliminazione del mapping di fruizione del servizio ["+mapping.getIdServizio()+
- "] verso la porta delegata ["+mapping.getIdPortaDelegata().getNome()+"] da parte del soggetto ["+mapping.getIdFruitore()+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getMappingFruizioni().add(detail);
- }
- }
-
-
-
- // PorteApplicative
- for (int i = 0; i < archive.getPorteApplicative().size(); i++) {
- ArchivePortaApplicativa archivePortaApplicativa = archive.getPorteApplicative().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePortaApplicativa);
- try{
- archivePortaApplicativa.update();
- if(archivePortaApplicativa.getIdServizio()!=null){
- try{
- if(this.importerEngine.existsMappingErogazione(archivePortaApplicativa.getIdServizio(), archivePortaApplicativa.getIdPortaApplicativa())){
- this.importerEngine.deleteMappingErogazione(archivePortaApplicativa.getIdServizio(), archivePortaApplicativa.getIdPortaApplicativa());
- }
- }catch(Exception e){
- this.log.debug("Errore durante l'eliminazione del mapping di erogazione del servizio ["+archivePortaApplicativa.getIdServizio()+
- "] verso la porta applicativa ["+archivePortaApplicativa.getIdPortaApplicativa()+"]: "+e.getMessage(),e);
- }
- }
- this.deletePortaApplicativa(archivePortaApplicativa, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getPorteApplicative().add(detail);
- }
- // ControlloTraffico (AttivazionePolicy) porta applicativa
- for (int i = 0; i < archive.getControlloTraffico_activePolicies().size(); i++) {
- ArchiveActivePolicy archivePolicy = archive.getControlloTraffico_activePolicies().get(i);
- if(!archivePolicy.isPolicyGlobale() && RuoloPolicy.APPLICATIVA.equals(archivePolicy.getRuoloPorta())) {
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- try{
- this.deleteActivePolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getControlloTraffico_activePolicies().add(detail);
- }
- }
-
-
- // PorteDelegate
- for (int i = 0; i < archive.getPorteDelegate().size(); i++) {
- ArchivePortaDelegata archivePortaDelegata = archive.getPorteDelegate().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePortaDelegata);
- try{
- archivePortaDelegata.update();
- if(archivePortaDelegata.getIdSoggettoProprietario()!=null){
-
- PortaDelegata pd = archivePortaDelegata.getPortaDelegata();
- if(pd.getSoggettoErogatore()!=null && pd.getSoggettoErogatore().getNome()!=null &&
- pd.getServizio()!=null && pd.getServizio().getNome()!=null){
- IDServizio idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(pd.getServizio().getTipo(), pd.getServizio().getNome(),
- new IDSoggetto(pd.getSoggettoErogatore().getTipo(), pd.getSoggettoErogatore().getNome()),
- pd.getServizio().getVersione());
- try{
- if(this.importerEngine.existsMappingFruizione(idServizio, archivePortaDelegata.getIdSoggettoProprietario(), archivePortaDelegata.getIdPortaDelegata())){
- this.importerEngine.deleteMappingFruizione(idServizio, archivePortaDelegata.getIdSoggettoProprietario(), archivePortaDelegata.getIdPortaDelegata());
- }
- }catch(Exception e){
- this.log.debug("Errore durante l'eliminazione del mapping di fruizione del servizio ["+idServizio+
- "] verso la porta delegata ["+archivePortaDelegata.getIdPortaDelegata()+"] da parte del soggetto ["+archivePortaDelegata.getIdSoggettoProprietario()+"]: "+e.getMessage(),e);
- }
- }
- }
- this.deletePortaDelegata(archivePortaDelegata, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getPorteDelegate().add(detail);
- }
- // ControlloTraffico (AttivazionePolicy) porta delegata
- for (int i = 0; i < archive.getControlloTraffico_activePolicies().size(); i++) {
- ArchiveActivePolicy archivePolicy = archive.getControlloTraffico_activePolicies().get(i);
- if(!archivePolicy.isPolicyGlobale() && RuoloPolicy.DELEGATA.equals(archivePolicy.getRuoloPorta())) {
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- try{
- this.deleteActivePolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getControlloTraffico_activePolicies().add(detail);
- }
- }
-
-
-
- // Fruitori
- for (int i = 0; i < archive.getAccordiFruitori().size(); i++) {
- ArchiveFruitore archiveFruitore = archive.getAccordiFruitori().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveFruitore);
- try{
- //archiveFruitore.update(); effettuato durante la preparazione del mapping Fruizione - PD
- if(archiveFruitore.getIdAccordoServizioParteSpecifica()!=null){
- if(this.importerEngine.existsIDPorteDelegateAssociateFruizione(archiveFruitore.getIdAccordoServizioParteSpecifica(), archiveFruitore.getIdSoggettoFruitore())){
- this.importerEngine.deleteMappingFruizione(archiveFruitore.getIdAccordoServizioParteSpecifica(), archiveFruitore.getIdSoggettoFruitore());
- }
- }
- this.deleteFruitore(archiveFruitore, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiFruitori().add(detail);
- }
-
-
- // Divisione asps che implementano accordi di servizio parte comune,
- // da asps che implementano servizi composti
- List<ArchiveAccordoServizioParteSpecifica> listAccordiServizioParteSpecifica =
- new ArrayList<ArchiveAccordoServizioParteSpecifica>();
- List<ArchiveAccordoServizioParteSpecifica> listAccordiServizioParteSpecifica_serviziComposti =
- new ArrayList<ArchiveAccordoServizioParteSpecifica>();
- for (int i = 0; i < archive.getAccordiServizioParteSpecifica().size(); i++) {
- ArchiveAccordoServizioParteSpecifica archiveAccordoServizioParteSpecifica =
- archive.getAccordiServizioParteSpecifica().get(i);
- //archiveAccordoServizioParteSpecifica.update(); effettuato durante la preparazione del mapping Erogazione - PA
- IDAccordo idAccordo = archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteComune();
- if(this.importerEngine.existsAccordoServizioParteComune(idAccordo)){
- // verifico la tipologia
- AccordoServizioParteComune aspc = this.importerEngine.getAccordoServizioParteComune(idAccordo);
- if(aspc.getServizioComposto()!=null){
- listAccordiServizioParteSpecifica_serviziComposti.add(archiveAccordoServizioParteSpecifica);
- }else{
- listAccordiServizioParteSpecifica.add(archiveAccordoServizioParteSpecifica);
- }
- }
- else{
- // aggiungo alla lista di servizi composti, visto che l'accordo riferito dovrebbe essere definito nell'archivio che si sta importando
- // se cosi' non fosse, la gestione dell'accordo di servizio parte specifica per servizi composti comunque
- // segnalera' che l'accordo riferito non esiste
- listAccordiServizioParteSpecifica_serviziComposti.add(archiveAccordoServizioParteSpecifica);
- }
- }
-
-
-
- // Accordi di Servizio Parte Specifica (implementano accordi di servizio composto)
- for (int i = 0; i < listAccordiServizioParteSpecifica_serviziComposti.size(); i++) {
- ArchiveAccordoServizioParteSpecifica archiveAccordoServizioParteSpecifica = listAccordiServizioParteSpecifica_serviziComposti.get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAccordoServizioParteSpecifica);
- try{
- //archiveAccordoServizioParteSpecifica.update(); eseguito durante la preparazione della lista listAccordiServizioParteSpecifica_serviziComposti
- if(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica()!=null){
- if(this.importerEngine.existsIDPorteApplicativeAssociateErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica())){
- this.importerEngine.deleteMappingErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica());
- }
- }
- this.deleteAccordoServizioParteSpecifica(archiveAccordoServizioParteSpecifica, true, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiServizioParteSpecificaServiziComposti().add(detail);
- }
-
-
- // Accordi di Servizio Composto
- for (int i = 0; i < archive.getAccordiServizioComposto().size(); i++) {
- ArchiveAccordoServizioComposto archiveAccordoServizioComposto = archive.getAccordiServizioComposto().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAccordoServizioComposto);
- try{
- archiveAccordoServizioComposto.update();
- this.deleteAccordoServizioComposto(archiveAccordoServizioComposto, detail,
- mapIdSoggettoDefault, mapAPIconReferente);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiServizioComposto().add(detail);
- }
-
- // Accordi di Servizio Parte Specifica (implementano accordi di servizio parte comune)
- for (int i = 0; i < listAccordiServizioParteSpecifica.size(); i++) {
- ArchiveAccordoServizioParteSpecifica archiveAccordoServizioParteSpecifica = listAccordiServizioParteSpecifica.get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAccordoServizioParteSpecifica);
- try{
- //archiveAccordoServizioParteSpecifica.update(); eseguito durante la preparazione della lista listAccordiServizioParteSpecifica
- if(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica()!=null){
- if(this.importerEngine.existsIDPorteApplicativeAssociateErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica())){
- this.importerEngine.deleteMappingErogazione(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica());
- }
- }
- this.deleteAccordoServizioParteSpecifica(archiveAccordoServizioParteSpecifica, false, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiServizioParteSpecifica().add(detail);
- }
-
- // Accordi di Servizio Parte Comune
- for (int i = 0; i < archive.getAccordiServizioParteComune().size(); i++) {
- ArchiveAccordoServizioParteComune archiveAccordoServizioParteComune = archive.getAccordiServizioParteComune().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAccordoServizioParteComune);
- try{
- archiveAccordoServizioParteComune.update();
- this.deleteAccordoServizioParteComune(archiveAccordoServizioParteComune, detail,
- mapIdSoggettoDefault, mapAPIconReferente);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiServizioParteComune().add(detail);
- }
-
- // Accordi di Cooperazione
- for (int i = 0; i < archive.getAccordiCooperazione().size(); i++) {
- ArchiveAccordoCooperazione archiveAccordoCooperazione = archive.getAccordiCooperazione().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAccordoCooperazione);
- try{
- archiveAccordoCooperazione.update();
- this.deleteAccordoCooperazione(archiveAccordoCooperazione, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAccordiCooperazione().add(detail);
- }
-
- // Servizi Applicativi
- for (int i = 0; i < archive.getServiziApplicativi().size(); i++) {
- ArchiveServizioApplicativo archiveServizioApplicativo = archive.getServiziApplicativi().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveServizioApplicativo);
- try{
- archiveServizioApplicativo.update();
- this.deleteServizioApplicativo(archiveServizioApplicativo, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getServiziApplicativi().add(detail);
- }
-
- // Soggetti
- for (int i = 0; i < archive.getSoggetti().size(); i++) {
- ArchiveSoggetto archiveSoggetto = archive.getSoggetti().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveSoggetto);
- try{
- this.deleteSoggetto(archiveSoggetto, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getSoggetti().add(detail);
- }
-
- // Gruppi
- for (int i = 0; i < archive.getGruppi().size(); i++) {
- ArchiveGruppo archiveGruppo = archive.getGruppi().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveGruppo);
- try{
- this.deleteGruppo(archiveGruppo, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getGruppi().add(detail);
- }
-
- // Ruoli
- for (int i = 0; i < archive.getRuoli().size(); i++) {
- ArchiveRuolo archiveRuolo = archive.getRuoli().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveRuolo);
- try{
- this.deleteRuolo(archiveRuolo, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getRuoli().add(detail);
- }
-
- // Scope
- for (int i = 0; i < archive.getScope().size(); i++) {
- ArchiveScope archiveScope = archive.getScope().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveScope);
- try{
- this.deleteScope(archiveScope, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getScope().add(detail);
- }
-
- // Pdd
- for (int i = 0; i < archive.getPdd().size(); i++) {
- ArchivePdd archivePdd = archive.getPdd().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePdd);
- try{
- this.deletePdd(archivePdd, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getPdd().add(detail);
- }
-
-
- // Allarmi
- for (int i = 0; i < archive.getAllarmi().size(); i++) {
- ArchiveAllarme archiveAllarme = archive.getAllarmi().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAllarme);
- try{
- this.deleteAllarme(archiveAllarme, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAllarmi().add(detail);
- }
-
-
- // ControlloTraffico (AttivazionePolicy)
- for (int i = 0; i < archive.getControlloTraffico_activePolicies().size(); i++) {
- ArchiveActivePolicy archivePolicy = archive.getControlloTraffico_activePolicies().get(i);
- // le elimino cmq tutte, al massimo non esistono piu' if(archivePolicy.isPolicyGlobale()) {
- // evito cmq di avere errore durante l'aggiunta del dettaglio perchè già esistente
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- if(!esito.getControlloTraffico_activePolicies().containsKey(detail.key())) {
- try{
- this.deleteActivePolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getControlloTraffico_activePolicies().add(detail);
- }
- }
-
- // ControlloTraffico (ConfigurazionePolicy)
- for (int i = 0; i < archive.getControlloTraffico_configurationPolicies().size(); i++) {
- ArchiveConfigurationPolicy archivePolicy = archive.getControlloTraffico_configurationPolicies().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- try{
- this.deleteConfigPolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getControlloTraffico_configurationPolicies().add(detail);
- }
-
-
- // TokenPolicy (Validation)
- for (int i = 0; i < archive.getToken_validation_policies().size(); i++) {
- ArchiveTokenPolicy archivePolicy = archive.getToken_validation_policies().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- try{
- this.deleteTokenPolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getToken_validation_policies().add(detail);
- }
-
- // TokenPolicy (Retrieve)
- for (int i = 0; i < archive.getToken_retrieve_policies().size(); i++) {
- ArchiveTokenPolicy archivePolicy = archive.getToken_retrieve_policies().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePolicy);
- try{
- this.deleteTokenPolicy(archivePolicy, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getToken_retrieve_policies().add(detail);
- }
-
- // AttributeAuthority (Retrieve)
- for (int i = 0; i < archive.getAttributeAuthorities().size(); i++) {
- ArchiveAttributeAuthority archiveAttributeAuthority = archive.getAttributeAuthorities().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveAttributeAuthority);
- try{
- this.deleteAttributeAuthority(archiveAttributeAuthority, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getAttributeAuthorities().add(detail);
- }
-
- // Plugin (Classi)
- for (int i = 0; i < archive.getPlugin_classi().size(); i++) {
- ArchivePluginClasse archiveClasse = archive.getPlugin_classi().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveClasse);
- try{
- this.deletePluginClasse(archiveClasse, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getPlugin_classi().add(detail);
- }
-
- // Plugin (Archivi)
- for (int i = 0; i < archive.getPlugin_archivi().size(); i++) {
- ArchivePluginArchivio archivePlugin = archive.getPlugin_archivi().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archivePlugin);
- try{
- this.deletePluginArchivio(archivePlugin, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getPlugin_archivi().add(detail);
- }
-
- // UrlInvocazione (Regole)
- for (int i = 0; i < archive.getConfigurazionePdD_urlInvocazione_regole().size(); i++) {
- ArchiveUrlInvocazioneRegola archiveRegola = archive.getConfigurazionePdD_urlInvocazione_regole().get(i);
- ArchiveEsitoImportDetail detail = new ArchiveEsitoImportDetail(archiveRegola);
- try{
- this.deleteUrlInvocazioneRegola(archiveRegola, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.getConfigurazionePdD_urlInvocazione_regole().add(detail);
- }
-
- // Configurazione (Gestisco solamente informazioni extended, in modo da chiamare il driver con la DELETE)
- if(archive.getConfigurazionePdD()!=null && archive.getConfigurazionePdD().sizeExtendedInfoList()>0) {
- Configurazione newConfig = new Configurazione();
- newConfig.getExtendedInfoList().addAll(archive.getConfigurazionePdD().getExtendedInfoList());
- ArchiveEsitoImportDetailConfigurazione<Configurazione> detail = new ArchiveEsitoImportDetailConfigurazione<Configurazione>(newConfig);
- try{
- this.deleteConfigurazione(newConfig, detail);
- }catch(Exception e){
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- esito.setConfigurazionePdD(detail);
- }
-
- this.importerEngine.finalizeDelete(archive);
-
- return esito;
-
- }catch(Exception e){
- throw e;
- }
- }
-
-
- public void deleteConfigurazione(Configurazione config, ArchiveEsitoImportDetailConfigurazione<Configurazione> detail){
-
- try{
-
- // --- delete ---
- this.importerEngine.deleteConfigurazione(config);
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della configurazione: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
- public void deleteConfigPolicy(ArchiveConfigurationPolicy archivePolicy,ArchiveEsitoImportDetail detail){
-
- String nomePolicy = archivePolicy.getNomePolicy();
- try{
-
- // --- check abilitazione ---
- if(this.deletePolicyConfigurazione==false){
- detail.setState(ArchiveStatoImport.DELETED_POLICY_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsControlloTraffico_configurationPolicy(nomePolicy)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- List<String> whereIsInUso = new ArrayList<>();
- if (this.importerEngine.isControlloTraffico_configurationPolicyInUso(nomePolicy, whereIsInUso)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(nomePolicy, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteControlloTraffico_configurationPolicy(archivePolicy.getPolicy());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della configurazione della policy ["+nomePolicy+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
- public void deleteActivePolicy(ArchiveActivePolicy archivePolicy,ArchiveEsitoImportDetail detail){
-
- AttivazionePolicy attivazionePolicy = archivePolicy.getPolicy();
- String aliasPolicy = archivePolicy.getAliasPolicy();
- RuoloPolicy ruoloPorta = archivePolicy.getRuoloPorta();
- String nomePorta = archivePolicy.getNomePorta();
-
- String tipoPolicy = "configurazione";
- if(ruoloPorta!=null && nomePorta!=null) {
- tipoPolicy = ruoloPorta.toString()+" "+nomePorta;
- }
-
- try{
-
- boolean policyGlobale = archivePolicy.isPolicyGlobale();
-
- // --- check abilitazione ---
- if(policyGlobale && this.deletePolicyConfigurazione==false){ // se non e' globale la policy di attivazione va eliminata sempre poiche' associata all'erogazione o alla fruizione
- detail.setState(ArchiveStatoImport.DELETED_POLICY_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsControlloTraffico_activePolicy(ruoloPorta, nomePorta, attivazionePolicy.getAlias())==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- List<String> whereIsInUso = new ArrayList<>();
- if (this.importerEngine.isControlloTraffico_activePolicyInUso(ruoloPorta, nomePorta, attivazionePolicy.getAlias(), whereIsInUso)) {
- // Il metodo inUso sopra ritorna sempre false.
- //throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(ruoloPorta, nomePorta, attivazionePolicy.getAlias(), whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteControlloTraffico_activePolicy(archivePolicy.getPolicy());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'attivazione della policy ["+aliasPolicy+"] ("+tipoPolicy+"): "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
- public void deleteAllarme(ArchiveAllarme archiveAllarme,ArchiveEsitoImportDetail detail){
-
- Allarme allarme = archiveAllarme.getAllarme();
- String alias = archiveAllarme.getAlias();
- RuoloPorta ruoloPorta = archiveAllarme.getRuoloPorta();
- String nomePorta = archiveAllarme.getNomePorta();
-
- String tipoAllarme = "configurazione";
- if(ruoloPorta!=null && nomePorta!=null) {
- tipoAllarme = ruoloPorta.toString()+" "+nomePorta;
- }
-
- try{
-
- boolean allarmeGlobale = archiveAllarme.isAllarmeGlobale();
-
- // --- check abilitazione ---
- if(allarmeGlobale && this.deletePolicyConfigurazione==false){ // se non e' globale la policy di attivazione va eliminata sempre poiche' associata all'erogazione o alla fruizione
- detail.setState(ArchiveStatoImport.DELETED_POLICY_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsAllarme(ruoloPorta, nomePorta, allarme.getAlias())==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- List<String> whereIsInUso = new ArrayList<>();
- if (this.importerEngine.isAllarmeInUso(ruoloPorta, nomePorta, allarme.getAlias(), whereIsInUso)) {
- // Il metodo inUso sopra ritorna sempre false.
- //throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(ruoloPorta, nomePorta, attivazionePolicy.getAlias(), whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteAllarme(archiveAllarme.getAllarme(), this.log);
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'allarme ["+alias+"] ("+tipoAllarme+"): "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deleteTokenPolicy(ArchiveTokenPolicy archivePolicy,ArchiveEsitoImportDetail detail){
- _deleteGenericProperties("Token Policy",archivePolicy, detail);
- }
- public void deleteAttributeAuthority(ArchiveAttributeAuthority archiveAA,ArchiveEsitoImportDetail detail){
- _deleteGenericProperties("Attribute Authority", archiveAA, detail);
- }
- public void _deleteGenericProperties(String oggetto, AbstractArchiveGenericProperties archiveGenericProperties,ArchiveEsitoImportDetail detail){
-
- String nomePolicy = archiveGenericProperties.getNomePolicy();
- String tipologiaPolicy = archiveGenericProperties.getTipologiaPolicy();
- try{
-
- // --- check abilitazione ---
- if(this.deletePolicyConfigurazione==false){
- detail.setState(ArchiveStatoImport.DELETED_POLICY_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsGenericProperties(tipologiaPolicy, nomePolicy)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isGenericPropertiesInUso(tipologiaPolicy, nomePolicy, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- IDGenericProperties idGP = new IDGenericProperties();
- idGP.setNome(nomePolicy);
- idGP.setTipologia(tipologiaPolicy);
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idGP, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteGenericProperties(archiveGenericProperties.getPolicy());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della configurazione '"+oggetto+")' ["+nomePolicy+"] (tipo: '"+tipologiaPolicy+"'): "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deletePluginClasse(ArchivePluginClasse archivePluginClasse,ArchiveEsitoImportDetail detail){
-
- String tipoPlugin = archivePluginClasse.getTipoPlugin();
- String tipo = archivePluginClasse.getTipo();
- try{
-
- // --- check abilitazione ---
- if(this.deletePluginConfigurazione==false){
- detail.setState(ArchiveStatoImport.DELETED_PLUGIN_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsPluginClasse(archivePluginClasse.getTipoPlugin(), archivePluginClasse.getTipo())==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- IdPlugin idPlugin = new IdPlugin();
- idPlugin.setTipoPlugin(archivePluginClasse.getTipoPlugin());
- idPlugin.setTipo(archivePluginClasse.getTipo());
- idPlugin.setLabel(archivePluginClasse.getPlugin().getLabel());
- idPlugin.setClassName(archivePluginClasse.getPlugin().getClassName());
- if (this.importerEngine.isPluginClasseInUso(idPlugin, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(archivePluginClasse.getPlugin().getClassName(), archivePluginClasse.getPlugin().getLabel(),
- archivePluginClasse.getTipoPlugin(), archivePluginClasse.getTipo(), whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deletePluginClasse(archivePluginClasse.getPlugin());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del plugin ["+tipo+"] (tipo-plugin: '"+tipoPlugin+"'): "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deletePluginArchivio(ArchivePluginArchivio archivePluginArchivio,ArchiveEsitoImportDetail detail){
-
- String nome = archivePluginArchivio.getNome();
- try{
-
- // --- check abilitazione ---
- if(this.deletePluginConfigurazione==false){
- detail.setState(ArchiveStatoImport.DELETED_PLUGIN_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsPluginArchivio(archivePluginArchivio.getNome())==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isPluginArchivioInUso(archivePluginArchivio.getNome(), whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- // Il metodo inUso sopra ritorna sempre false.
- //throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(archivePluginArchivio.getNome(), archivePluginArchivio.getTipo(), whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deletePluginArchivio(archivePluginArchivio.getPlugin());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'archivio dei plugin ["+nome+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deleteUrlInvocazioneRegola(ArchiveUrlInvocazioneRegola archiveUrlInvocazioneRegola,ArchiveEsitoImportDetail detail){
-
- String nome = archiveUrlInvocazioneRegola.getNome();
- try{
-
- // --- check abilitazione ---
- if(this.deletePolicyConfigurazione==false){
- detail.setState(ArchiveStatoImport.DELETED_POLICY_CONFIG_NOT_ENABLED);
- return;
- }
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsUrlInvocazioneRegola(archiveUrlInvocazioneRegola.getNome())==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // non esistenti
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isUrlInvocazioneRegolaInUso(archiveUrlInvocazioneRegola.getNome(), whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- // Il metodo inUso sopra ritorna sempre false.
- //throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(archivePluginArchivio.getNome(), archivePluginArchivio.getTipo(), whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteUrlInvocazioneRegola(archiveUrlInvocazioneRegola.getRegola());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della regola di proxy pass ["+nome+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deletePdd(ArchivePdd archivePdd,ArchiveEsitoImportDetail detail){
-
- String nomePdd = archivePdd.getNomePdd();
- try{
-
- // --- check esistenza ---
- if(this.importerEngine.existsPortaDominio(nomePdd)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // porta di dominio
- PortaDominio pddReadFromDb = this.importerEngine.getPortaDominio(nomePdd);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(pddReadFromDb.getSuperUser())==false){
- throw new Exception("La Porta di Dominio ["+nomePdd+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo non sia una pdd 'operativa' ---
-
- String tipoPdd = this.importerEngine.getTipoPortaDominio(nomePdd);
- if(!PddTipologia.ESTERNO.equals(tipoPdd)) {
- throw new Exception("Porta di Dominio ["+nomePdd+"] non è eliminabile poichè di dominio interno");
- }
-
-
- // ---- tipo di Pdd ---
- if(PddTipologia.OPERATIVO.toString().equals(this.importerEngine.getTipoPortaDominio(nomePdd))){
- throw new Exception("La Porta di Dominio ["+nomePdd+"] non è eliminabile essendo di tipo '"+PddTipologia.OPERATIVO.toString()+"'");
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- List<String> whereIsInUso = new ArrayList<>();
- if (this.importerEngine.isPddInUso(nomePdd, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(nomePdd, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deletePortaDominio(archivePdd.getPortaDominio());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della porta di dominio ["+nomePdd+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
- public void deleteGruppo(ArchiveGruppo archiveGruppo,ArchiveEsitoImportDetail detail){
-
- IDGruppo idGruppo = archiveGruppo.getIdGruppo();
- try{
-
- // --- check esistenza ---
- if(this.importerEngine.existsGruppo(idGruppo)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // gruppo
- Gruppo gruppoReadFromDb = this.importerEngine.getGruppo(idGruppo);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(gruppoReadFromDb.getSuperUser())==false){
- throw new Exception("Il Gruppo ["+idGruppo+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isGruppoInUso(idGruppo, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idGruppo, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteGruppo(archiveGruppo.getGruppo());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del gruppo ["+idGruppo+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
- public void deleteRuolo(ArchiveRuolo archiveRuolo,ArchiveEsitoImportDetail detail){
-
- IDRuolo idRuolo = archiveRuolo.getIdRuolo();
- try{
-
- // --- check esistenza ---
- if(this.importerEngine.existsRuolo(idRuolo)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // ruolo
- Ruolo ruoloReadFromDb = this.importerEngine.getRuolo(idRuolo);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(ruoloReadFromDb.getSuperUser())==false){
- throw new Exception("Il Ruolo ["+idRuolo+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isRuoloInUso(idRuolo, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idRuolo, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteRuolo(archiveRuolo.getRuolo());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del ruolo ["+idRuolo+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
- public void deleteScope(ArchiveScope archiveScope,ArchiveEsitoImportDetail detail){
-
- IDScope idScope = archiveScope.getIdScope();
- try{
-
- // --- check esistenza ---
- if(this.importerEngine.existsScope(idScope)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // scope
- Scope scopeReadFromDb = this.importerEngine.getScope(idScope);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(scopeReadFromDb.getSuperUser())==false){
- throw new Exception("Lo Scope ["+idScope+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isScopeInUso(idScope, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)) {
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idScope, whereIsInUso,false,NEW_LINE));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteScope(archiveScope.getScope());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dello scope ["+idScope+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
- public void deleteSoggetto(ArchiveSoggetto archiveSoggetto,ArchiveEsitoImportDetail detail){
-
- IDSoggetto idSoggetto = archiveSoggetto.getIdSoggetto();
- try{
-
- boolean delete = false;
-
- if(archiveSoggetto.getSoggettoRegistro()!=null){
-
-
- // --- check esistenza ---
- if(this.importerEngine.existsSoggettoRegistro(idSoggetto)){
-
- // ---- visibilita' oggetto che si vuole eliminare ----
- org.openspcoop2.core.registry.Soggetto old = this.importerEngine.getSoggettoRegistro(idSoggetto);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(old.getSuperUser())==false){
- throw new Exception("Il soggetto non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean verificaRuoli = false;
- if (this.importerEngine.isSoggettoRegistroInUso(idSoggetto, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO, verificaRuoli)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idSoggetto, whereIsInUso,false,NEW_LINE, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
- // ---- controllo che il soggetto non sia un soggetto 'operativo' ---
- if(old.getPortaDominio()!=null){
- String tipoPdd = this.importerEngine.getTipoPortaDominio(old.getPortaDominio());
- if(!PddTipologia.ESTERNO.equals(tipoPdd)) {
- throw new Exception("Il soggetto non è eliminabile poichè di dominio interno");
- }
- }
-
- // --- delete ---
- this.importerEngine.deleteSoggettoRegistro(archiveSoggetto.getSoggettoRegistro());
- delete = true;
-
- }
-
- }
-
- if(archiveSoggetto.getSoggettoConfigurazione()!=null){
-
- // --- check esistenza ---
- if(this.importerEngine.existsSoggettoConfigurazione(idSoggetto)){
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean verificaRuoli = false;
- if (this.importerEngine.isSoggettoConfigurazioneInUso(idSoggetto, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO, verificaRuoli)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idSoggetto, whereIsInUso,false,NEW_LINE, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
- // --- delete ---
- this.importerEngine.deleteSoggettoConfigurazione(archiveSoggetto.getSoggettoConfigurazione());
- delete = true;
- }
-
- }
-
-
- // --- upload ---
- if(delete){
- detail.setState(ArchiveStatoImport.DELETED);
- }else{
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- }
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del soggetto ["+idSoggetto+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
-
- public void deleteServizioApplicativo(ArchiveServizioApplicativo archiveServizioApplicativo,
- ArchiveEsitoImportDetail detail){
-
- IDServizioApplicativo idServizioApplicativo = archiveServizioApplicativo.getIdServizioApplicativo();
- IDSoggetto idSoggettoProprietario = archiveServizioApplicativo.getIdSoggettoProprietario();
- try{
-
- // --- check esistenza ---
- if(this.importerEngine.existsServizioApplicativo(idServizioApplicativo)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ----
-
- // Devo vedere che l'oggetto che voglio eliminare sia visibile dall'utente.
- // Il SA è visibile se è visibile il soggetto proprietario
-
- org.openspcoop2.core.config.Soggetto soggetto = this.importerEngine.getSoggettoConfigurazione(idSoggettoProprietario);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(soggetto.getSuperUser())==false){
- throw new Exception("Il soggetto proprietario ["+idSoggettoProprietario+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- boolean verificaRuoli = false;
- if (this.importerEngine.isServizioApplicativoInUso(idServizioApplicativo, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO, verificaRuoli)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idServizioApplicativo, whereIsInUso,false,NEW_LINE,NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteServizioApplicativo(archiveServizioApplicativo.getServizioApplicativo());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del servizio applicativo ["+idServizioApplicativo+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
-
- public void deleteAccordoCooperazione(ArchiveAccordoCooperazione archiveAccordoCooperazione,
- ArchiveEsitoImportDetail detail){
-
- IDAccordoCooperazione idAccordoCooperazione = archiveAccordoCooperazione.getIdAccordoCooperazione();
- try{
- // --- check esistenza ---
- if(this.importerEngine.existsAccordoCooperazione(idAccordoCooperazione)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // accordo di cooperazione
- AccordoCooperazione acReadFromDb = this.importerEngine.getAccordoCooperazione(idAccordoCooperazione);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(acReadFromDb.getSuperUser())==false){
- throw new Exception("L'accordo di cooperazione ["+idAccordoCooperazione+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isAccordoCooperazioneInUso(idAccordoCooperazione, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idAccordoCooperazione, whereIsInUso,false,NEW_LINE,NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteAccordoCooperazione(archiveAccordoCooperazione.getAccordoCooperazione());
- detail.setState(ArchiveStatoImport.DELETED);
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'accordo di cooperazione ["+idAccordoCooperazione+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
- public void deleteAccordoServizioParteComune(ArchiveAccordoServizioParteComune archiveAccordoServizioParteComune,
- ArchiveEsitoImportDetail detail,
- Map<String, IDSoggetto> mapIdSoggettoDefault, Map<String, Boolean> mapAPIconReferente){
-
- IDAccordo idAccordoServizioParteComune = archiveAccordoServizioParteComune.getIdAccordoServizioParteComune();
- try{
- // --- fix soggetto referente --
- IProtocolFactory<?> protocolFactory = this.protocolFactoryManager.getProtocolFactoryByOrganizationType(idAccordoServizioParteComune.getSoggettoReferente().getTipo());
- boolean APIconReferente = mapAPIconReferente.get(protocolFactory.getProtocol());
- if(!APIconReferente) {
- IDSoggetto soggettoDefaultProtocollo = mapIdSoggettoDefault.get(protocolFactory.getProtocol());
- if(!idAccordoServizioParteComune.getSoggettoReferente().equals(soggettoDefaultProtocollo)) {
- archiveAccordoServizioParteComune.getAccordoServizioParteComune().getSoggettoReferente().setTipo(soggettoDefaultProtocollo.getTipo());
- archiveAccordoServizioParteComune.getAccordoServizioParteComune().getSoggettoReferente().setNome(soggettoDefaultProtocollo.getNome());
- idAccordoServizioParteComune.getSoggettoReferente().setTipo(soggettoDefaultProtocollo.getTipo());
- idAccordoServizioParteComune.getSoggettoReferente().setNome(soggettoDefaultProtocollo.getNome());
- }
- }
-
- // --- check esistenza ---
- if(this.importerEngine.existsAccordoServizioParteComune(idAccordoServizioParteComune)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // accordo di servizio parte comune
- AccordoServizioParteComune aspcReadFromDb = this.importerEngine.getAccordoServizioParteComune(idAccordoServizioParteComune);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(aspcReadFromDb.getSuperUser())==false){
- throw new Exception("L'accordo di servizio parte comune ["+idAccordoServizioParteComune+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isAccordoServizioParteComuneInUso(idAccordoServizioParteComune, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idAccordoServizioParteComune, whereIsInUso,false,NEW_LINE,NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteAccordoServizioParteComune(archiveAccordoServizioParteComune.getAccordoServizioParteComune());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'accordo di servizio parte comune ["+idAccordoServizioParteComune+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
- public void deleteAccordoServizioComposto(ArchiveAccordoServizioComposto archiveAccordoServizioComposto,
- ArchiveEsitoImportDetail detail,
- Map<String, IDSoggetto> mapIdSoggettoDefault, Map<String, Boolean> mapAPIconReferente){
-
- IDAccordo idAccordoServizioComposto = archiveAccordoServizioComposto.getIdAccordoServizioParteComune();
- try{
- // --- fix soggetto referente --
- IProtocolFactory<?> protocolFactory = this.protocolFactoryManager.getProtocolFactoryByOrganizationType(idAccordoServizioComposto.getSoggettoReferente().getTipo());
- boolean APIconReferente = mapAPIconReferente.get(protocolFactory.getProtocol());
- if(!APIconReferente) {
- IDSoggetto soggettoDefaultProtocollo = mapIdSoggettoDefault.get(protocolFactory.getProtocol());
- if(!idAccordoServizioComposto.getSoggettoReferente().equals(soggettoDefaultProtocollo)) {
- archiveAccordoServizioComposto.getAccordoServizioParteComune().getSoggettoReferente().setTipo(soggettoDefaultProtocollo.getTipo());
- archiveAccordoServizioComposto.getAccordoServizioParteComune().getSoggettoReferente().setNome(soggettoDefaultProtocollo.getNome());
- idAccordoServizioComposto.getSoggettoReferente().setTipo(soggettoDefaultProtocollo.getTipo());
- idAccordoServizioComposto.getSoggettoReferente().setNome(soggettoDefaultProtocollo.getNome());
- }
- }
-
- // --- check esistenza ---
- if(this.importerEngine.existsAccordoServizioParteComune(idAccordoServizioComposto)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // accordo di servizio composto
- AccordoServizioParteComune ascReadFromDb = this.importerEngine.getAccordoServizioParteComune(idAccordoServizioComposto);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(ascReadFromDb.getSuperUser())==false){
- throw new Exception("L'accordo di servizio composto ["+idAccordoServizioComposto+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isAccordoServizioParteComuneInUso(idAccordoServizioComposto, whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(idAccordoServizioComposto, whereIsInUso,false,NEW_LINE,NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO));
- }
-
-
- // --- delete ---
- this.importerEngine.deleteAccordoServizioParteComune(archiveAccordoServizioComposto.getAccordoServizioParteComune());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'accordo di servizio parte comune ["+idAccordoServizioComposto+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
- public void deleteAccordoServizioParteSpecifica(ArchiveAccordoServizioParteSpecifica archiveAccordoServizioParteSpecifica,
- boolean servizioComposto,
- ArchiveEsitoImportDetail detail){
-
- IDServizio idAccordoServizioParteSpecifica = archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica();
- try{
- // --- check esistenza ---
- if(this.importerEngine.existsAccordoServizioParteSpecifica(idAccordoServizioParteSpecifica)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // accordo di servizio parte specifica
- AccordoServizioParteSpecifica aspsReadFromDb = this.importerEngine.getAccordoServizioParteSpecifica(idAccordoServizioParteSpecifica);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(aspsReadFromDb.getSuperUser())==false){
- throw new Exception("L'accordo di servizio parte specifica ["+idAccordoServizioParteSpecifica+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // ---- controllo di utilizzo dell'oggetto tramite altri oggetti ---
-
- HashMap<ErrorsHandlerCostant, List<String>> whereIsInUso = new HashMap<ErrorsHandlerCostant, List<String>>();
- if (this.importerEngine.isAccordoServizioParteSpecificaInUso(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica(), whereIsInUso, NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO)){
- throw new Exception(NEW_LINE+DBOggettiInUsoUtils.toString(archiveAccordoServizioParteSpecifica.getIdAccordoServizioParteSpecifica(), whereIsInUso,false,NEW_LINE,NORMALIZE_OBJECT_ID_MESSAGGIO_IN_USO,"Servizio"));
- }
-
-
- // --- delete ---
-
- this.importerEngine.deleteAccordoServizioParteSpecifica(archiveAccordoServizioParteSpecifica.getAccordoServizioParteSpecifica());
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione dell'accordo di servizio parte specifica ["+idAccordoServizioParteSpecifica+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
-
- public void deleteFruitore(ArchiveFruitore archiveFruitore,
- ArchiveEsitoImportDetail detail){
-
- IDServizio idAccordoServizioParteSpecifica = archiveFruitore.getIdAccordoServizioParteSpecifica();
- IDSoggetto idSoggettoFruitore = archiveFruitore.getIdSoggettoFruitore();
- try{
- AccordoServizioParteSpecifica oldAccordo = null;
- Fruitore old = null;
- if(this.importerEngine.existsAccordoServizioParteSpecifica(idAccordoServizioParteSpecifica)){
- oldAccordo = this.importerEngine.getAccordoServizioParteSpecifica(idAccordoServizioParteSpecifica);
- for (int i = 0; i < oldAccordo.sizeFruitoreList(); i++) {
- Fruitore check = oldAccordo.getFruitore(i);
- if(check.getTipo().equals(idSoggettoFruitore.getTipo()) &&
- check.getNome().equals(idSoggettoFruitore.getNome())){
- old = oldAccordo.removeFruitore(i);
- break;
- }
- }
- }
-
- // --- check esistenza ---
- if(old==null){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ----
-
- // Devo vedere che l'oggetto che voglio eliminare sia visibile dall'utente.
- // Il Fruitore è visibile se è visibile l'accordo di servizio parte specifica
-
- // soggetto
- Soggetto soggetto = this.importerEngine.getSoggettoRegistro(idSoggettoFruitore);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(soggetto.getSuperUser())==false){
- throw new Exception("Il soggetto fruitore ["+idSoggettoFruitore+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
- // accordo di servizio parte specifica
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(oldAccordo.getSuperUser())==false){
- throw new Exception("L'accordo di servizio parte specifica ["+idAccordoServizioParteSpecifica+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
- // --- delete ---
-
- // prima ho rimosso il fruitore se gia' esisteva.
- // update
- IDServizio oldIDServizioForUpdate = IDServizioFactory.getInstance().getIDServizioFromValues(oldAccordo.getTipo(), oldAccordo.getNome(),
- oldAccordo.getTipoSoggettoErogatore(),oldAccordo.getNomeSoggettoErogatore(),oldAccordo.getVersione());
- oldAccordo.setOldIDServizioForUpdate(oldIDServizioForUpdate);
- this.importerEngine.updateAccordoServizioParteSpecifica(oldAccordo);
-
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione del fruitore["+idSoggettoFruitore+"] dell'accordo di servizio parte specifica ["+idAccordoServizioParteSpecifica+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
-
- public void deletePortaDelegata(ArchivePortaDelegata archivePortaDelegata,
- ArchiveEsitoImportDetail detail){
-
- IDPortaDelegata idPortaDelegata = archivePortaDelegata.getIdPortaDelegata();
- IDSoggetto idSoggettoProprietario = archivePortaDelegata.getIdSoggettoProprietario();
- try{
- // --- check esistenza ---
- if(this.importerEngine.existsPortaDelegata(idPortaDelegata)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ----
-
- // Devo vedere che l'oggetto che voglio eliminare sia visibile dall'utente.
- // La PD è visibile se è visibile il soggetto proprietario
-
- org.openspcoop2.core.config.Soggetto soggetto = this.importerEngine.getSoggettoConfigurazione(idSoggettoProprietario);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(soggetto.getSuperUser())==false){
- throw new Exception("Il soggetto proprietario ["+idSoggettoProprietario+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
-
- // --- delete ---
- PortaDelegata portaDelegata = archivePortaDelegata.getPortaDelegata();
- this.importerEngine.deletePortaDelegata(portaDelegata);
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della porta delegata ["+idPortaDelegata+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
-
-
-
-
- public void deletePortaApplicativa(ArchivePortaApplicativa archivePortaApplicativa,
- ArchiveEsitoImportDetail detail){
-
- IDPortaApplicativa idPortaApplicativa = archivePortaApplicativa.getIdPortaApplicativa();
- IDSoggetto idSoggettoProprietario = archivePortaApplicativa.getIdSoggettoProprietario();
- try{
- // --- check esistenza ---
- if(this.importerEngine.existsPortaApplicativa(idPortaApplicativa)==false){
- detail.setState(ArchiveStatoImport.DELETED_NOT_EXISTS);
- return;
- }
-
-
- // ---- visibilita' oggetto che si vuole eliminare ---
-
- // Devo vedere che l'oggetto che voglio eliminare sia visibile dall'utente.
- // La PA è visibile se è visibile il soggetto proprietario
-
- org.openspcoop2.core.config.Soggetto soggetto = this.importerEngine.getSoggettoConfigurazione(idSoggettoProprietario);
- if(this.importerEngine.isVisioneOggettiGlobale(this.userLogin)==false){
- if(this.userLogin.equals(soggetto.getSuperUser())==false){
- throw new Exception("Il soggetto proprietario ["+idSoggettoProprietario+"] non è visibile/eliminabile dall'utente collegato ("+this.userLogin+")");
- }
- }
-
- // --- delete ---
- PortaApplicativa pa = archivePortaApplicativa.getPortaApplicativa();
- this.importerEngine.deletePortaApplicativa(pa);
- detail.setState(ArchiveStatoImport.DELETED);
-
- }
- catch(Exception e){
- this.log.error("Errore durante l'eliminazione della porta applicativa ["+idPortaApplicativa+"]: "+e.getMessage(),e);
- detail.setState(ArchiveStatoImport.ERROR);
- detail.setException(e);
- }
- }
-
-
- }