EsitoUtils.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.protocol.basic.archive;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.openspcoop2.core.config.Configurazione;
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.IDPortaApplicativa;
import org.openspcoop2.core.id.IDPortaDelegata;
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.registry.driver.IDAccordoCooperazioneFactory;
import org.openspcoop2.core.registry.driver.IDAccordoFactory;
import org.openspcoop2.core.registry.driver.IDServizioFactory;
import org.openspcoop2.protocol.sdk.IProtocolFactory;
import org.openspcoop2.protocol.sdk.ProtocolException;
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.ArchiveEsitoImport;
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.ArchiveIdCorrelazione;
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;
/**
* EsitoUtils
*
* @author Poli Andrea (apoli@link.it)
* @author $Author$
* @version $Rev$, $Date$
*/
public class EsitoUtils {
protected IProtocolFactory<?> protocolFactory = null;
protected IDAccordoCooperazioneFactory idAccordoCooperazioneFactory;
protected IDAccordoFactory idAccordoFactory;
protected IDServizioFactory idServizioFactory;
public EsitoUtils(IProtocolFactory<?> protocolFactory){
this.protocolFactory = protocolFactory;
this.idAccordoCooperazioneFactory = IDAccordoCooperazioneFactory.getInstance();
this.idAccordoFactory = IDAccordoFactory.getInstance();
this.idServizioFactory = IDServizioFactory.getInstance();
}
public String toString(ArchiveEsitoImport archive, boolean readIdCorrelazione, boolean importOperation) throws ProtocolException{
if(!readIdCorrelazione){
return this._toString(archive,importOperation);
}
Map<String, ArchiveEsitoImport> map = new HashMap<String, ArchiveEsitoImport>();
Map<String, ArchiveIdCorrelazione> mapIdCorrelazione = new HashMap<String, ArchiveIdCorrelazione>();
this.readIdCorrelazione(map, mapIdCorrelazione, archive);
if(map.size()<1){
return "";
}
if(map.size()==1){
// in caso di una unica correlazione non riporto comunque il raggruppamento se è quella di default
for (String idCorrelazione : map.keySet()) {
if(ZIPUtils.ID_CORRELAZIONE_DEFAULT.equals(idCorrelazione)){
return this._toString(archive,importOperation);
}
}
}
StringBuilder bfEsito = new StringBuilder();
ArchiveEsitoImport defaultArchiveEsitoImport = null;
ArchiveIdCorrelazione defaultArchiveIdCorrelazione = null;
List<String> idCorrelazioneOrdinato = new ArrayList<>();
for (String idCorrelazione : map.keySet()) {
idCorrelazioneOrdinato.add(idCorrelazione);
}
Collections.sort(idCorrelazioneOrdinato);
for (String idCorrelazione : idCorrelazioneOrdinato) {
ArchiveIdCorrelazione archiveIdCorrelazione = mapIdCorrelazione.get(idCorrelazione);
ArchiveEsitoImport archiveCorrelazione = map.get(idCorrelazione);
if(ZIPUtils.ID_CORRELAZIONE_DEFAULT.equals(idCorrelazione)){
defaultArchiveEsitoImport = archiveCorrelazione;
defaultArchiveIdCorrelazione = archiveIdCorrelazione;
continue;
}
this.append(bfEsito, archiveIdCorrelazione, archiveCorrelazione, importOperation);
}
if(defaultArchiveEsitoImport!=null){
ArchiveIdCorrelazione i = new ArchiveIdCorrelazione(defaultArchiveIdCorrelazione.getId());
i.setDescrizione(" Altro ");
this.append(bfEsito, i, defaultArchiveEsitoImport, importOperation);
}
return bfEsito.toString();
}
private void append(StringBuilder bfEsito, ArchiveIdCorrelazione archiveIdCorrelazione, ArchiveEsitoImport archiveCorrelazione, boolean importOperation){
String descrizione = archiveIdCorrelazione.getDescrizione();
if(descrizione==null){
descrizione = archiveIdCorrelazione.getId();
}
for (int i = 0; i < descrizione.length(); i++) {
bfEsito.append("=");
}
bfEsito.append("\n");
bfEsito.append(descrizione);
bfEsito.append("\n");
for (int i = 0; i < descrizione.length(); i++) {
bfEsito.append("=");
}
bfEsito.append("\n");
bfEsito.append("\n");
bfEsito.append(this._toString(archiveCorrelazione,importOperation));
bfEsito.append("\n\n");
}
private String _toString(ArchiveEsitoImport archive, boolean importOperation){
StringBuilder bfEsito = new StringBuilder();
String labelNonErrore = "non importato";
if(!importOperation) {
labelNonErrore = "non eliminato";
}
// Pdd
if(archive.getPdd().size()>0){
bfEsito.append("Gateway (").append(archive.getPdd().size()).append(")\n");
}
for (int i = 0; i < archive.getPdd().size(); i++) {
try{
ArchiveEsitoImportDetail archivePdd = archive.getPdd().get(i);
String nomePdd = ((ArchivePdd)archivePdd.getArchiveObject()).getNomePdd();
bfEsito.append("\t- [").append(nomePdd).append("] ");
serializeStato(archivePdd, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getPdd().size()>0){
bfEsito.append("\n");
}
// Tags
if(archive.getGruppi().size()>0){
bfEsito.append("Tags (").append(archive.getGruppi().size()).append(")\n");
}
for (int i = 0; i < archive.getGruppi().size(); i++) {
try{
ArchiveEsitoImportDetail archiveGruppo = archive.getGruppi().get(i);
String nomeGruppo = ((ArchiveGruppo)archiveGruppo.getArchiveObject()).getIdGruppo().getNome();
bfEsito.append("\t- [").append(nomeGruppo).append("] ");
serializeStato(archiveGruppo, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getGruppi().size()>0){
bfEsito.append("\n");
}
// Ruoli
if(archive.getRuoli().size()>0){
bfEsito.append("Ruoli (").append(archive.getRuoli().size()).append(")\n");
}
for (int i = 0; i < archive.getRuoli().size(); i++) {
try{
ArchiveEsitoImportDetail archiveRuolo = archive.getRuoli().get(i);
String nomeRuolo = ((ArchiveRuolo)archiveRuolo.getArchiveObject()).getIdRuolo().getNome();
bfEsito.append("\t- [").append(nomeRuolo).append("] ");
serializeStato(archiveRuolo, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getRuoli().size()>0){
bfEsito.append("\n");
}
// Scope
if(archive.getScope().size()>0){
bfEsito.append("Scope (").append(archive.getScope().size()).append(")\n");
}
for (int i = 0; i < archive.getScope().size(); i++) {
try{
ArchiveEsitoImportDetail archiveScope = archive.getScope().get(i);
String nomeScope = ((ArchiveScope)archiveScope.getArchiveObject()).getIdScope().getNome();
bfEsito.append("\t- [").append(nomeScope).append("] ");
serializeStato(archiveScope, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getScope().size()>0){
bfEsito.append("\n");
}
// Soggetti
if(archive.getSoggetti().size()>0){
bfEsito.append("Soggetti (").append(archive.getSoggetti().size()).append(")\n");
}
for (int i = 0; i < archive.getSoggetti().size(); i++) {
try{
ArchiveEsitoImportDetail archiveSoggetto = archive.getSoggetti().get(i);
IDSoggetto idSoggetto =((ArchiveSoggetto)archiveSoggetto.getArchiveObject()).getIdSoggetto();
bfEsito.append("\t- [").append(idSoggetto.toString()).append("] ");
serializeStato(archiveSoggetto, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getSoggetti().size()>0){
bfEsito.append("\n");
}
// Servizi Applicativi
if(archive.getServiziApplicativi().size()>0){
bfEsito.append("Applicativi Fruitori/Erogatori (").append(archive.getServiziApplicativi().size()).append(")\n");
}
for (int i = 0; i < archive.getServiziApplicativi().size(); i++) {
try{
ArchiveEsitoImportDetail archiveServizioApplicativo = archive.getServiziApplicativi().get(i);
IDServizioApplicativo idServizioApplicativo = ((ArchiveServizioApplicativo)archiveServizioApplicativo.getArchiveObject()).getIdServizioApplicativo();
bfEsito.append("\t- [").append(idServizioApplicativo.getIdSoggettoProprietario().toString()).
append("_").append(idServizioApplicativo.getNome()).append("] ");
serializeStato(archiveServizioApplicativo, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getServiziApplicativi().size()>0){
bfEsito.append("\n");
}
// Accordi di Cooperazione
if(archive.getAccordiCooperazione().size()>0){
bfEsito.append("Accordi di Cooperazione (").append(archive.getAccordiCooperazione().size()).append(")\n");
}
for (int i = 0; i < archive.getAccordiCooperazione().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAccordoCooperazione = archive.getAccordiCooperazione().get(i);
IDAccordoCooperazione idAccordoCooperazione = ((ArchiveAccordoCooperazione)archiveAccordoCooperazione.getArchiveObject()).getIdAccordoCooperazione();
String uriAccordo = this.idAccordoCooperazioneFactory.getUriFromIDAccordo(idAccordoCooperazione);
bfEsito.append("\t- [").append(uriAccordo).append("] ");
serializeStato(archiveAccordoCooperazione, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiCooperazione().size()>0){
bfEsito.append("\n");
}
// Accordi di Servizio Parte Comune
if(archive.getAccordiServizioParteComune().size()>0){
bfEsito.append("API (").append(archive.getAccordiServizioParteComune().size()).append(")\n");
}
for (int i = 0; i < archive.getAccordiServizioParteComune().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAccordoServizioParteComune = archive.getAccordiServizioParteComune().get(i);
IDAccordo idAccordo = ((ArchiveAccordoServizioParteComune)archiveAccordoServizioParteComune.getArchiveObject()).getIdAccordoServizioParteComune();
String uriAccordo = this.idAccordoFactory.getUriFromIDAccordo(idAccordo);
bfEsito.append("\t- [").append(uriAccordo).append("] ");
serializeStato(archiveAccordoServizioParteComune, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiServizioParteComune().size()>0){
bfEsito.append("\n");
}
// Accordi di Servizio Parte Specifica (implementano accordi di servizio parte comune)
if(archive.getAccordiServizioParteSpecifica().size()>0){
bfEsito.append("Servizi (").append(archive.getAccordiServizioParteSpecifica().size()).append(")\n");
}
for (int i = 0; i < archive.getAccordiServizioParteSpecifica().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAccordoServizioParteSpecifica = archive.getAccordiServizioParteSpecifica().get(i);
IDServizio idServizio = ((ArchiveAccordoServizioParteSpecifica)archiveAccordoServizioParteSpecifica.getArchiveObject()).getIdAccordoServizioParteSpecifica();
String uriAccordo = this.idServizioFactory.getUriFromIDServizio(idServizio);
bfEsito.append("\t- [").append(uriAccordo).append("] ");
serializeStato(archiveAccordoServizioParteSpecifica, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiServizioParteSpecifica().size()>0){
bfEsito.append("\n");
}
// Accordi di Servizio Composto
if(archive.getAccordiServizioComposto().size()>0){
bfEsito.append("Accordi di Servizio Composto (").append(archive.getAccordiServizioComposto().size()).append(")\n");
}
for (int i = 0; i < archive.getAccordiServizioComposto().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAccordoServizioComposto = archive.getAccordiServizioComposto().get(i);
IDAccordo idAccordo = ((ArchiveAccordoServizioComposto)archiveAccordoServizioComposto.getArchiveObject()).getIdAccordoServizioParteComune();
String uriAccordo = this.idAccordoFactory.getUriFromIDAccordo(idAccordo);
bfEsito.append("\t- [").append(uriAccordo).append("] ");
serializeStato(archiveAccordoServizioComposto, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiServizioComposto().size()>0){
bfEsito.append("\n");
}
// Accordi di Servizio Parte Specifica (implementano accordi di servizio composto)
if(archive.getAccordiServizioParteSpecificaServiziComposti().size()>0){
bfEsito.append("Servizi (").
append(archive.getAccordiServizioParteSpecificaServiziComposti().size()).append(") [accordi di servizio composto]\n");
}
for (int i = 0; i < archive.getAccordiServizioParteSpecificaServiziComposti().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAccordoServizioParteSpecifica = archive.getAccordiServizioParteSpecificaServiziComposti().get(i);
IDServizio idServizio = ((ArchiveAccordoServizioParteSpecifica)archiveAccordoServizioParteSpecifica.getArchiveObject()).getIdAccordoServizioParteSpecifica();
String uriAccordo = this.idServizioFactory.getUriFromIDServizio(idServizio);
bfEsito.append("\t- [").append(uriAccordo).append("] ");
serializeStato(archiveAccordoServizioParteSpecifica, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiServizioParteSpecificaServiziComposti().size()>0){
bfEsito.append("\n");
}
// Fruitori
if(archive.getAccordiFruitori().size()>0){
bfEsito.append("Fruitori (").append(archive.getAccordiFruitori().size()).append(")\n");
}
for (int i = 0; i < archive.getAccordiFruitori().size(); i++) {
try{
ArchiveEsitoImportDetail archiveFruitore = archive.getAccordiFruitori().get(i);
IDServizio idServizio = ((ArchiveFruitore)archiveFruitore.getArchiveObject()).getIdAccordoServizioParteSpecifica();
String uriAccordo = this.idServizioFactory.getUriFromIDServizio(idServizio);
IDSoggetto idFruitore = ((ArchiveFruitore)archiveFruitore.getArchiveObject()).getIdSoggettoFruitore();
bfEsito.append("\t- ["+idFruitore+"] -> [").append(uriAccordo).append("] ");
serializeStato(archiveFruitore, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAccordiFruitori().size()>0){
bfEsito.append("\n");
}
// PorteDelegate
if(archive.getPorteDelegate().size()>0){
bfEsito.append("Porte Outbound (").append(archive.getPorteDelegate().size()).append(")\n");
}
for (int i = 0; i < archive.getPorteDelegate().size(); i++) {
try{
ArchiveEsitoImportDetail archivePortaDelegata = archive.getPorteDelegate().get(i);
IDPortaDelegata idPortaDelegata = ((ArchivePortaDelegata)archivePortaDelegata.getArchiveObject()).getIdPortaDelegata();
IDSoggetto idProprietario = ((ArchivePortaDelegata)archivePortaDelegata.getArchiveObject()).getIdSoggettoProprietario();
bfEsito.append("\t- ["+idProprietario+"]["+idPortaDelegata.getNome()+"] ");
serializeStato(archivePortaDelegata, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
// Si registrano solo gli errori per il check mapping (ci saranno solo in createUpdate)
if(importOperation) {
try{
ArchiveEsitoImportDetail archivePortaDelegata = archive.getPorteDelegate_initMapping().get(i);
if(ArchiveStatoImport.ERROR.equals(archivePortaDelegata.getState())){
IDPortaDelegata idPortaDelegata = ((ArchivePortaDelegata)archivePortaDelegata.getArchiveObject()).getIdPortaDelegata();
IDSoggetto idProprietario = ((ArchivePortaDelegata)archivePortaDelegata.getArchiveObject()).getIdSoggettoProprietario();
bfEsito.append("\t- Fruizione ["+idProprietario+"]["+idPortaDelegata.getNome()+"] ");
serializeStato(archivePortaDelegata, bfEsito, importOperation);
bfEsito.append("\n");
}
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] fruizione non creata: ").append(e.getMessage());
bfEsito.append("\n");
}
}
}
if(archive.getPorteDelegate().size()>0){
bfEsito.append("\n");
}
// PorteApplicative
if(archive.getPorteApplicative().size()>0){
bfEsito.append("Porte Inbound (").append(archive.getPorteApplicative().size()).append(")\n");
}
for (int i = 0; i < archive.getPorteApplicative().size(); i++) {
try{
ArchiveEsitoImportDetail archivePortaApplicativa = archive.getPorteApplicative().get(i);
IDPortaApplicativa idPortaApplicativa = ((ArchivePortaApplicativa)archivePortaApplicativa.getArchiveObject()).getIdPortaApplicativa();
IDSoggetto idProprietario = ((ArchivePortaApplicativa)archivePortaApplicativa.getArchiveObject()).getIdSoggettoProprietario();
bfEsito.append("\t- ["+idProprietario+"]["+idPortaApplicativa.getNome()+"] ");
serializeStato(archivePortaApplicativa, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
// Si registrano solo gli errori per il check mapping (ci saranno solo in createUpdate)
if(importOperation) {
try{
ArchiveEsitoImportDetail archivePortaApplicativa = archive.getPorteApplicative_initMapping().get(i);
if(ArchiveStatoImport.ERROR.equals(archivePortaApplicativa.getState())){
IDPortaApplicativa idPortaApplicativa = ((ArchivePortaApplicativa)archivePortaApplicativa.getArchiveObject()).getIdPortaApplicativa();
IDSoggetto idProprietario = ((ArchivePortaApplicativa)archivePortaApplicativa.getArchiveObject()).getIdSoggettoProprietario();
bfEsito.append("\t- Erogazione ["+idProprietario+"]["+idPortaApplicativa.getNome()+"] ");
serializeStato(archivePortaApplicativa, bfEsito, importOperation);
bfEsito.append("\n");
}
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] erogazione non creata: ").append(e.getMessage());
bfEsito.append("\n");
}
}
}
if(archive.getPorteApplicative().size()>0){
bfEsito.append("\n");
}
// Mapping Fruizioni
if(archive.getMappingFruizioni().size()>0){
bfEsito.append("Fruizioni (").append(archive.getMappingFruizioni().size()).append(")\n");
}
for (int i = 0; i < archive.getMappingFruizioni().size(); i++) {
try{
ArchiveEsitoImportDetail archiveFruizione = archive.getMappingFruizioni().get(i);
MappingFruizionePortaDelegata mapping = ((ArchiveMappingFruizione)archiveFruizione.getArchiveObject()).getMappingFruizionePortaDelegata();
String nome = (mapping.getDescrizione()!=null && !"".equals(mapping.getDescrizione())) ? mapping.getDescrizione() : mapping.getNome();
IDServizio idServizio = mapping.getIdServizio();
IDSoggetto idFruitore = mapping.getIdFruitore();
bfEsito.append("\t- (gruppo:"+nome+") ["+idFruitore+"] -> ["+idServizio+"] ");
serializeStato(archiveFruizione, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getMappingFruizioni().size()>0){
bfEsito.append("\n");
}
// Mapping Erogazioni
if(archive.getMappingErogazioni().size()>0){
bfEsito.append("Erogazioni (").append(archive.getMappingErogazioni().size()).append(")\n");
}
for (int i = 0; i < archive.getMappingErogazioni().size(); i++) {
try{
ArchiveEsitoImportDetail archiveErogazione = archive.getMappingErogazioni().get(i);
MappingErogazionePortaApplicativa mapping = ((ArchiveMappingErogazione)archiveErogazione.getArchiveObject()).getMappingErogazionePortaApplicativa();
String nome = (mapping.getDescrizione()!=null && !"".equals(mapping.getDescrizione())) ? mapping.getDescrizione() : mapping.getNome();
IDServizio idServizio = mapping.getIdServizio();
bfEsito.append("\t- (gruppo:"+nome+") ["+idServizio+"] ");
serializeStato(archiveErogazione, bfEsito, importOperation);
}catch(Exception e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getMappingErogazioni().size()>0){
bfEsito.append("\n");
}
// Controllo Traffico (Configurazione)
if(archive.getControlloTraffico_configurazione()!=null){
bfEsito.append("Controllo del Traffico - Configurazione\n");
try{
ArchiveEsitoImportDetailConfigurazione<org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale> configurazione =
archive.getControlloTraffico_configurazione();
bfEsito.append("\t- ");
serializeStato(configurazione, bfEsito);
}catch(Exception e){
bfEsito.append("\t- non importata: ").append(e.getMessage());
}
bfEsito.append("\n");
bfEsito.append("\n");
}
// Controllo Traffico (ConfigurazionePolicies)
if(archive.getControlloTraffico_configurationPolicies().size()>0){
bfEsito.append("Controllo del Traffico - Registro Policy (").append(archive.getControlloTraffico_configurationPolicies().size()).append(")\n");
}
for (int i = 0; i < archive.getControlloTraffico_configurationPolicies().size(); i++) {
try{
ArchiveEsitoImportDetail archiveCCPolicy = archive.getControlloTraffico_configurationPolicies().get(i);
String nomePolicy = ((ArchiveConfigurationPolicy)archiveCCPolicy.getArchiveObject()).getNomePolicy();
bfEsito.append("\t- [").append(nomePolicy).append("] ");
serializeStato(archiveCCPolicy, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getControlloTraffico_configurationPolicies().size()>0){
bfEsito.append("\n");
}
// Controllo Traffico (AttivazionePolicies)
if(archive.getControlloTraffico_activePolicies().size()>0){
bfEsito.append("Controllo del Traffico - Policy (").append(archive.getControlloTraffico_activePolicies().size()).append(")\n");
}
for (int i = 0; i < archive.getControlloTraffico_activePolicies().size(); i++) {
try{
ArchiveEsitoImportDetail archiveCCPolicy = archive.getControlloTraffico_activePolicies().get(i);
ArchiveActivePolicy activePolicy = ((ArchiveActivePolicy)archiveCCPolicy.getArchiveObject());
String nomePolicy = activePolicy.getAliasPolicy();
if(activePolicy.getRuoloPorta()!=null && activePolicy.getNomePorta()!=null) {
if(RuoloPolicy.APPLICATIVA.equals(activePolicy.getRuoloPorta())) {
nomePolicy = nomePolicy + " (inbound:"+activePolicy.getNomePorta()+")";
}
else {
nomePolicy = nomePolicy + " (outbound:"+activePolicy.getNomePorta()+")";
}
}
bfEsito.append("\t- [").append(nomePolicy).append("] ");
serializeStato(archiveCCPolicy, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getControlloTraffico_activePolicies().size()>0){
bfEsito.append("\n");
}
// Allarmi
if(archive.getAllarmi().size()>0){
bfEsito.append("Allarmi (").append(archive.getAllarmi().size()).append(")\n");
}
for (int i = 0; i < archive.getAllarmi().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAllarme = archive.getAllarmi().get(i);
ArchiveAllarme allarme = ((ArchiveAllarme)archiveAllarme.getArchiveObject());
String aliasAllarme = allarme.getAlias();
if(allarme.getRuoloPorta()!=null && allarme.getNomePorta()!=null) {
if(org.openspcoop2.core.allarmi.constants.RuoloPorta.APPLICATIVA.equals(allarme.getRuoloPorta())) {
aliasAllarme = aliasAllarme + " (inbound:"+allarme.getNomePorta()+")";
}
else {
aliasAllarme = aliasAllarme + " (outbound:"+allarme.getNomePorta()+")";
}
}
bfEsito.append("\t- [").append(aliasAllarme).append("] ");
serializeStato(archiveAllarme, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAllarmi().size()>0){
bfEsito.append("\n");
}
// Token Policy (Validation)
if(archive.getToken_validation_policies().size()>0){
bfEsito.append("Token Policy - Validation (").append(archive.getToken_validation_policies().size()).append(")\n");
}
for (int i = 0; i < archive.getToken_validation_policies().size(); i++) {
try{
ArchiveEsitoImportDetail archiveTokenPolicy = archive.getToken_validation_policies().get(i);
String nomePolicy = ((ArchiveTokenPolicy)archiveTokenPolicy.getArchiveObject()).getNomePolicy();
bfEsito.append("\t- [").append(nomePolicy).append("] ");
serializeStato(archiveTokenPolicy, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getToken_validation_policies().size()>0){
bfEsito.append("\n");
}
// Token Policy (Retrieve)
if(archive.getToken_retrieve_policies().size()>0){
bfEsito.append("Token Policy - Retrieve (").append(archive.getToken_retrieve_policies().size()).append(")\n");
}
for (int i = 0; i < archive.getToken_retrieve_policies().size(); i++) {
try{
ArchiveEsitoImportDetail archiveTokenPolicy = archive.getToken_retrieve_policies().get(i);
String nomePolicy = ((ArchiveTokenPolicy)archiveTokenPolicy.getArchiveObject()).getNomePolicy();
bfEsito.append("\t- [").append(nomePolicy).append("] ");
serializeStato(archiveTokenPolicy, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getToken_retrieve_policies().size()>0){
bfEsito.append("\n");
}
// Attribute Authority
if(archive.getAttributeAuthorities().size()>0){
bfEsito.append("Attribute Authority (").append(archive.getAttributeAuthorities().size()).append(")\n");
}
for (int i = 0; i < archive.getAttributeAuthorities().size(); i++) {
try{
ArchiveEsitoImportDetail archiveAttributeAuthority = archive.getAttributeAuthorities().get(i);
String nomeAA = ((ArchiveAttributeAuthority)archiveAttributeAuthority.getArchiveObject()).getNomePolicy();
bfEsito.append("\t- [").append(nomeAA).append("] ");
serializeStato(archiveAttributeAuthority, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getAttributeAuthorities().size()>0){
bfEsito.append("\n");
}
// Plugin Classi
if(archive.getPlugin_classi().size()>0){
bfEsito.append("Plugin - Classi (").append(archive.getPlugin_classi().size()).append(")\n");
}
for (int i = 0; i < archive.getPlugin_classi().size(); i++) {
try{
ArchiveEsitoImportDetail archivePluginClasse = archive.getPlugin_classi().get(i);
String tipoPlugin = ((ArchivePluginClasse)archivePluginClasse.getArchiveObject()).getTipoPlugin();
String tipo = ((ArchivePluginClasse)archivePluginClasse.getArchiveObject()).getTipo();
bfEsito.append("\t- [").append(tipoPlugin).append(" "+tipo+"] ");
serializeStato(archivePluginClasse, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getPlugin_classi().size()>0){
bfEsito.append("\n");
}
// Plugin Archivi
if(archive.getPlugin_archivi().size()>0){
bfEsito.append("Plugin - Archivi (").append(archive.getPlugin_archivi().size()).append(")\n");
}
for (int i = 0; i < archive.getPlugin_archivi().size(); i++) {
try{
ArchiveEsitoImportDetail archivePluginArchivio = archive.getPlugin_archivi().get(i);
String nomeArchivio = ((ArchivePluginArchivio)archivePluginArchivio.getArchiveObject()).getNome();
bfEsito.append("\t- [").append(nomeArchivio).append("] ");
serializeStato(archivePluginArchivio, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getPlugin_archivi().size()>0){
bfEsito.append("\n");
}
// Configurazione - UrlInvocazione - Regole
if(archive.getConfigurazionePdD_urlInvocazione_regole().size()>0){
bfEsito.append("Configurazione - Regole ProxyPass (").append(archive.getConfigurazionePdD_urlInvocazione_regole().size()).append(")\n");
}
for (int i = 0; i < archive.getConfigurazionePdD_urlInvocazione_regole().size(); i++) {
try{
ArchiveEsitoImportDetail archiveRegola = archive.getConfigurazionePdD_urlInvocazione_regole().get(i);
String nomeRegola = ((ArchiveUrlInvocazioneRegola)archiveRegola.getArchiveObject()).getNome();
bfEsito.append("\t- [").append(nomeRegola).append("] ");
serializeStato(archiveRegola, bfEsito, importOperation);
}catch(Throwable e){
bfEsito.append("\t- [").append((i+1)).append("] "+labelNonErrore+": ").append(e.getMessage());
}
bfEsito.append("\n");
}
if(archive.getConfigurazionePdD_urlInvocazione_regole().size()>0){
bfEsito.append("\n");
}
// Configurazione (UrlInvocazione)
if(archive.getConfigurazionePdD_urlInvocazione()!=null){
bfEsito.append("Configurazione - UrlInvocazione\n");
try{
ArchiveEsitoImportDetailConfigurazione<org.openspcoop2.core.config.ConfigurazioneUrlInvocazione> configurazione =
archive.getConfigurazionePdD_urlInvocazione();
bfEsito.append("\t- ");
serializeStato(configurazione, bfEsito);
}catch(Exception e){
bfEsito.append("\t- non importata: ").append(e.getMessage());
}
bfEsito.append("\n");
bfEsito.append("\n");
}
// Configurazione
if(archive.getConfigurazionePdD()!=null){
bfEsito.append("Configurazione\n");
try{
ArchiveEsitoImportDetailConfigurazione<Configurazione> configurazione = archive.getConfigurazionePdD();
bfEsito.append("\t- ");
serializeStato(configurazione, bfEsito);
}catch(Exception e){
bfEsito.append("\t- non importata: ").append(e.getMessage());
}
bfEsito.append("\n");
bfEsito.append("\n");
}
return bfEsito.toString();
}
public static final String LABEL_IMPORT_POLICY = "Policy di Configurazione";
public static final String LABEL_DELETE_POLICY = LABEL_IMPORT_POLICY;
public static final String LABEL_IMPORT_PLUGIN = "Plugins";
public static final String LABEL_DELETE_PLUGIN = LABEL_IMPORT_PLUGIN;
public static final String LABEL_IMPORT_CONFIGURAZIONE = "Configurazione di GovWay";
public void serializeStato(ArchiveEsitoImportDetail detail,StringBuilder bfEsito, boolean importOperation){
String stateDetail = "";
if(detail.getStateDetail()!=null){
stateDetail = detail.getStateDetail();
}
switch (detail.getState()) {
case UPDATE_NOT_ENABLED:
bfEsito.append("non importato: già presente (aggiornamento non abilitato)").append(stateDetail);
break;
case NOT_UPDATABLE:
bfEsito.append("già presente (aggiornamento non necessario)").append(stateDetail);
break;
case IMPORT_POLICY_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_POLICY+"' non abilitata").append(stateDetail);
break;
case IMPORT_PLUGIN_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_PLUGIN+"' non abilitata").append(stateDetail);
break;
case IMPORT_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_CONFIGURAZIONE+"' non abilitata").append(stateDetail);
break;
case ERROR:
if(detail.getStateDetail()!=null){
stateDetail = " ["+detail.getStateDetail()+"]";
}
if(importOperation)
bfEsito.append("non importato"+stateDetail+": ").append(detail.getException().getMessage());
else
bfEsito.append("non eliminato"+stateDetail+": ").append(detail.getException().getMessage());
break;
case CREATED:
bfEsito.append("importato correttamente").append(stateDetail);
break;
case UPDATED:
bfEsito.append("già presente, aggiornato correttamente").append(stateDetail);
break;
case DELETED_POLICY_CONFIG_NOT_ENABLED:
bfEsito.append("non eliminato: opzione '"+LABEL_DELETE_POLICY+"' non abilitata").append(stateDetail);
break;
case DELETED_PLUGIN_CONFIG_NOT_ENABLED:
bfEsito.append("non eliminato: opzione '"+LABEL_DELETE_PLUGIN+"' non abilitata").append(stateDetail);
break;
case DELETED_NOT_EXISTS:
bfEsito.append("non esistente").append(stateDetail);
break;
case DELETED:
bfEsito.append("eliminato correttamente").append(stateDetail);
break;
}
}
public void serializeStato(ArchiveEsitoImportDetailConfigurazione<?> detail,StringBuilder bfEsito){
String stateDetail = "";
if(detail.getStateDetail()!=null){
stateDetail = detail.getStateDetail();
}
switch (detail.getState()) {
case UPDATE_NOT_ENABLED:
// Stato mai usato per questo oggetto
break;
case NOT_UPDATABLE:
// Stato mai usato per questo oggetto
break;
case IMPORT_POLICY_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_POLICY+"' non abilitata").append(stateDetail);
break;
case IMPORT_PLUGIN_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_PLUGIN+"' non abilitata").append(stateDetail);
break;
case IMPORT_CONFIG_NOT_ENABLED:
bfEsito.append("non importato: opzione '"+LABEL_IMPORT_CONFIGURAZIONE+"' non abilitata").append(stateDetail);
break;
case ERROR:
if(detail.getStateDetail()!=null){
stateDetail = " ["+detail.getStateDetail()+"]";
}
bfEsito.append("non importata"+stateDetail+": ").append(detail.getException().getMessage());
break;
case CREATED:
// Stato mai usato per questo oggetto
break;
case UPDATED:
bfEsito.append("aggiornata correttamente").append(stateDetail);
break;
case DELETED_POLICY_CONFIG_NOT_ENABLED:
bfEsito.append("non eliminato: opzione '"+LABEL_DELETE_POLICY+"' non abilitata").append(stateDetail);
break;
case DELETED_PLUGIN_CONFIG_NOT_ENABLED:
bfEsito.append("non eliminato: opzione '"+LABEL_DELETE_PLUGIN+"' non abilitata").append(stateDetail);
break;
case DELETED_NOT_EXISTS:
// Stato mai usato per questo oggetto
break;
case DELETED:
// Stato utilizzato solamente per le extended info
bfEsito.append("eliminazione effettuata correttamente").append(stateDetail);
break;
}
}
private ArchiveEsitoImport getArchiveEsitoImport(ArchiveIdCorrelazione idCorrelazioneParam,
Map<String, ArchiveEsitoImport> map,
Map<String, ArchiveIdCorrelazione> mapIdCorrelazione){
if(idCorrelazioneParam==null) {
throw new RuntimeException("Param idCorrelazioneParam is null");
}
if(map==null) {
throw new RuntimeException("Param map is null");
}
if(mapIdCorrelazione==null) {
throw new RuntimeException("Param mapIdCorrelazione is null");
}
String idCorrelazione = idCorrelazioneParam.getId();
if(idCorrelazione==null){
idCorrelazione = ZIPUtils.ID_CORRELAZIONE_DEFAULT;
}
ArchiveEsitoImport tmp = null;
if(map.containsKey(idCorrelazione)){
tmp = map.get(idCorrelazione);
}
else{
tmp = new ArchiveEsitoImport();
map.put(idCorrelazione, tmp);
mapIdCorrelazione.put(idCorrelazione, idCorrelazioneParam);
}
return tmp;
}
public void readIdCorrelazione(Map<String, ArchiveEsitoImport> map,
Map<String, ArchiveIdCorrelazione> mapIdCorrelazione,
ArchiveEsitoImport archive) throws ProtocolException{
// Pdd
for (int i = 0; i < archive.getPdd().size(); i++) {
ArchiveEsitoImportDetail archivePdd = archive.getPdd().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchivePdd)archivePdd.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getPdd().add(archivePdd);
}
// Gruppi
for (int i = 0; i < archive.getGruppi().size(); i++) {
ArchiveEsitoImportDetail archiveGruppo = archive.getGruppi().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveGruppo)archiveGruppo.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getGruppi().add(archiveGruppo);
}
// Ruoli
for (int i = 0; i < archive.getRuoli().size(); i++) {
ArchiveEsitoImportDetail archiveRuolo = archive.getRuoli().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveRuolo)archiveRuolo.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getRuoli().add(archiveRuolo);
}
// Scope
for (int i = 0; i < archive.getScope().size(); i++) {
ArchiveEsitoImportDetail archiveScope = archive.getScope().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveScope)archiveScope.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getScope().add(archiveScope);
}
// Soggetti
for (int i = 0; i < archive.getSoggetti().size(); i++) {
ArchiveEsitoImportDetail archiveSoggetto = archive.getSoggetti().get(i);
ArchiveIdCorrelazione idCorrelazione =((ArchiveSoggetto)archiveSoggetto.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getSoggetti().add(archiveSoggetto);
}
// Servizi Applicativi
for (int i = 0; i < archive.getServiziApplicativi().size(); i++) {
ArchiveEsitoImportDetail archiveServizioApplicativo = archive.getServiziApplicativi().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveServizioApplicativo)archiveServizioApplicativo.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getServiziApplicativi().add(archiveServizioApplicativo);
}
// Accordi di Cooperazione
for (int i = 0; i < archive.getAccordiCooperazione().size(); i++) {
ArchiveEsitoImportDetail archiveAccordoCooperazione = archive.getAccordiCooperazione().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAccordoCooperazione)archiveAccordoCooperazione.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiCooperazione().add(archiveAccordoCooperazione);
}
// Accordi di Servizio Parte Comune
for (int i = 0; i < archive.getAccordiServizioParteComune().size(); i++) {
ArchiveEsitoImportDetail archiveAccordoServizioParteComune = archive.getAccordiServizioParteComune().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAccordoServizioParteComune)archiveAccordoServizioParteComune.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiServizioParteComune().add(archiveAccordoServizioParteComune);
}
// Accordi di Servizio Parte Specifica (implementano accordi di servizio parte comune)
for (int i = 0; i < archive.getAccordiServizioParteSpecifica().size(); i++) {
ArchiveEsitoImportDetail archiveAccordoServizioParteSpecifica = archive.getAccordiServizioParteSpecifica().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAccordoServizioParteSpecifica)archiveAccordoServizioParteSpecifica.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiServizioParteSpecifica().add(archiveAccordoServizioParteSpecifica);
}
// Accordi di Servizio Composto
for (int i = 0; i < archive.getAccordiServizioComposto().size(); i++) {
ArchiveEsitoImportDetail archiveAccordoServizioComposto = archive.getAccordiServizioComposto().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAccordoServizioComposto)archiveAccordoServizioComposto.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiServizioComposto().add(archiveAccordoServizioComposto);
}
// Accordi di Servizio Parte Specifica (implementano accordi di servizio composto)
for (int i = 0; i < archive.getAccordiServizioParteSpecificaServiziComposti().size(); i++) {
ArchiveEsitoImportDetail archiveAccordoServizioParteSpecifica = archive.getAccordiServizioParteSpecificaServiziComposti().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAccordoServizioParteSpecifica)archiveAccordoServizioParteSpecifica.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiServizioParteSpecificaServiziComposti().add(archiveAccordoServizioParteSpecifica);
}
// Fruitori
for (int i = 0; i < archive.getAccordiFruitori().size(); i++) {
ArchiveEsitoImportDetail archiveFruitore = archive.getAccordiFruitori().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveFruitore)archiveFruitore.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAccordiFruitori().add(archiveFruitore);
}
// PorteDelegate
for (int i = 0; i < archive.getPorteDelegate().size(); i++) {
ArchiveEsitoImportDetail archivePortaDelegata = archive.getPorteDelegate().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchivePortaDelegata)archivePortaDelegata.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getPorteDelegate().add(archivePortaDelegata);
}
// PorteApplicative
for (int i = 0; i < archive.getPorteApplicative().size(); i++) {
ArchiveEsitoImportDetail archivePortaApplicativa = archive.getPorteApplicative().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchivePortaApplicativa)archivePortaApplicativa.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getPorteApplicative().add(archivePortaApplicativa);
}
// ControlloTraffico (Configurazione)
if(archive.getControlloTraffico_configurazione()!=null){
ArchiveEsitoImportDetailConfigurazione<org.openspcoop2.core.controllo_traffico.ConfigurazioneGenerale> configurazione =
archive.getControlloTraffico_configurazione();
if(mapIdCorrelazione.size()>1){
throw new ProtocolException("Configurazione permessa solo con una unica correlazione tra oggetti");
}
ArchiveIdCorrelazione idCorrelazione = null;
if(mapIdCorrelazione.size()==1){
idCorrelazione = mapIdCorrelazione.values().iterator().next();
}
else if(mapIdCorrelazione.size()==0){
// l'archivio non contiene altri oggetti se non la configurazione
idCorrelazione = new ArchiveIdCorrelazione(ZIPUtils.ID_CORRELAZIONE_DEFAULT);
}
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).setControlloTraffico_configurazione(configurazione);
}
// ControlloTraffico (ConfigurazionePolicy)
for (int i = 0; i < archive.getControlloTraffico_configurationPolicies().size(); i++) {
ArchiveEsitoImportDetail archiveCCPolicy = archive.getControlloTraffico_configurationPolicies().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveConfigurationPolicy)archiveCCPolicy.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getControlloTraffico_configurationPolicies().add(archiveCCPolicy);
}
// ControlloTraffico (AttivazionePolicy)
for (int i = 0; i < archive.getControlloTraffico_activePolicies().size(); i++) {
ArchiveEsitoImportDetail archiveCCPolicy = archive.getControlloTraffico_activePolicies().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveActivePolicy)archiveCCPolicy.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getControlloTraffico_activePolicies().add(archiveCCPolicy);
}
// Allarmi
for (int i = 0; i < archive.getAllarmi().size(); i++) {
ArchiveEsitoImportDetail archiveAllarme = archive.getAllarmi().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAllarme)archiveAllarme.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAllarmi().add(archiveAllarme);
}
// Token Policy (Validation)
for (int i = 0; i < archive.getToken_validation_policies().size(); i++) {
ArchiveEsitoImportDetail archiveTokenPolicy = archive.getToken_validation_policies().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveTokenPolicy)archiveTokenPolicy.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getToken_validation_policies().add(archiveTokenPolicy);
}
// Token Policy (Retrieve)
for (int i = 0; i < archive.getToken_retrieve_policies().size(); i++) {
ArchiveEsitoImportDetail archiveTokenPolicy = archive.getToken_retrieve_policies().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveTokenPolicy)archiveTokenPolicy.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getToken_retrieve_policies().add(archiveTokenPolicy);
}
// Attribute Authority
for (int i = 0; i < archive.getAttributeAuthorities().size(); i++) {
ArchiveEsitoImportDetail archiveAttributeAuthority = archive.getAttributeAuthorities().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveAttributeAuthority)archiveAttributeAuthority.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getAttributeAuthorities().add(archiveAttributeAuthority);
}
// Plugin Classi
for (int i = 0; i < archive.getPlugin_classi().size(); i++) {
ArchiveEsitoImportDetail archivePluginClasse = archive.getPlugin_classi().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchivePluginClasse)archivePluginClasse.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getPlugin_classi().add(archivePluginClasse);
}
// Plugin Archivi
for (int i = 0; i < archive.getPlugin_archivi().size(); i++) {
ArchiveEsitoImportDetail archivePluginArchivio = archive.getPlugin_archivi().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchivePluginArchivio)archivePluginArchivio.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getPlugin_archivi().add(archivePluginArchivio);
}
// Configurazione - UrlInvocazione - Regole
for (int i = 0; i < archive.getConfigurazionePdD_urlInvocazione_regole().size(); i++) {
ArchiveEsitoImportDetail archiveRegola = archive.getConfigurazionePdD_urlInvocazione_regole().get(i);
ArchiveIdCorrelazione idCorrelazione = ((ArchiveUrlInvocazioneRegola)archiveRegola.getArchiveObject()).getIdCorrelazione();
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).getConfigurazionePdD_urlInvocazione_regole().add(archiveRegola);
}
// Configurazione (UrlInvocazione)
if(archive.getConfigurazionePdD_urlInvocazione()!=null){
ArchiveEsitoImportDetailConfigurazione<org.openspcoop2.core.config.ConfigurazioneUrlInvocazione> configurazione =
archive.getConfigurazionePdD_urlInvocazione();
if(mapIdCorrelazione.size()>1){
throw new ProtocolException("Configurazione permessa solo con una unica correlazione tra oggetti");
}
ArchiveIdCorrelazione idCorrelazione = null;
if(mapIdCorrelazione.size()==1){
idCorrelazione = mapIdCorrelazione.values().iterator().next();
}
else if(mapIdCorrelazione.size()==0){
// l'archivio non contiene altri oggetti se non la configurazione
idCorrelazione = new ArchiveIdCorrelazione(ZIPUtils.ID_CORRELAZIONE_DEFAULT);
}
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).setConfigurazionePdD_urlInvocazione(configurazione);
}
// Configurazione
if(archive.getConfigurazionePdD()!=null){
ArchiveEsitoImportDetailConfigurazione<Configurazione> configurazione = archive.getConfigurazionePdD();
if(mapIdCorrelazione.size()>1){
throw new ProtocolException("Configurazione permessa solo con una unica correlazione tra oggetti");
}
ArchiveIdCorrelazione idCorrelazione = null;
if(mapIdCorrelazione.size()==1){
idCorrelazione = mapIdCorrelazione.values().iterator().next();
}
else if(mapIdCorrelazione.size()==0){
// l'archivio non contiene altri oggetti se non la configurazione
idCorrelazione = new ArchiveIdCorrelazione(ZIPUtils.ID_CORRELAZIONE_DEFAULT);
}
this.getArchiveEsitoImport(idCorrelazione, map, mapIdCorrelazione).setConfigurazionePdD(configurazione);
}
}
}