InformazioniRecordTraccia.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.pdd.logger.traccia;
- import java.util.ArrayList;
- import java.util.List;
- import org.openspcoop2.core.commons.CoreException;
- import org.openspcoop2.pdd.logger.record.AbstractDatoRicostruzione;
- import org.openspcoop2.pdd.logger.record.CharDatoRicostruzione;
- import org.openspcoop2.pdd.logger.record.StringDatoRicostruzione;
- import org.openspcoop2.pdd.logger.record.TimestampDatoRicostruzione;
- /**
- * InformazioniSalvataggioTraccia
- *
- * @author Poli Andrea (poli@link.it)
- * @author $Author$
- * @version $Rev$, $Date$
- */
- public class InformazioniRecordTraccia {
- protected boolean presente = false;
-
- protected boolean ricostruibile = false;
-
- protected List<AbstractDatoRicostruzione<?>> dati = new ArrayList<>();
- protected String motivoRicostruzioneNonFattibile = null;
-
- protected String rawDBValue = null;
-
- public String getRawDBValue() {
- return this.rawDBValue;
- }
- public void setRawDBValue(String rawDBValue) {
- this.rawDBValue = rawDBValue;
- }
- public String getMotivoRicostruzioneNonFattibile() {
- return this.motivoRicostruzioneNonFattibile;
- }
-
- public boolean isRicostruibile() {
- return this.ricostruibile;
- }
-
- public boolean isPresente() {
- return this.presente;
- }
- public AbstractDatoRicostruzione<?> getDato(MappingRicostruzioneTraccia mapping){
- if(mapping.getValue()==null) {
- return null;
- }
- int index = mapping.getValue();
- if(index < this.dati.size()) {
- return this.dati.get(index);
- }
- return null;
- }
-
- public void setPresente(boolean presente) {
- this.presente = presente;
- }
-
- public void setRicostruibile(boolean ricostruibile) {
- this.ricostruibile = ricostruibile;
- }
- public void setMotivoRicostruzioneNonFattibile(
- String motivoRicostruzioneNonFattibile) {
- this.motivoRicostruzioneNonFattibile = motivoRicostruzioneNonFattibile;
- }
- public void setDati(List<AbstractDatoRicostruzione<?>> dati) {
- this.dati = dati;
- }
-
- @Override
- public String toString(){
- StringBuilder bf = new StringBuilder();
- bf.append("---- Traccia -----\n");
- bf.append("\tpresente("+this.presente+")\n");
- bf.append("\tricostruibile("+this.ricostruibile+")\n");
- bf.append("\tdati size:"+this.dati.size()).append("\n");
- for (int i = 0; i < this.dati.size(); i++) {
- bf.append("\t\tdato["+MappingRicostruzioneTraccia.toEnumConstant(i).name()+"("+i+")]").append("\n");
- bf.append("\t\t\tdescrizione:"+this.dati.get(i).getInfo().getDescription()).append("\n");
- try{
- bf.append("\t\t\tvalore:"+this.dati.get(i).convertToString()).append("\n");
- }catch(Exception e){
- bf.append("\t\t\tvalore: ERRORE NEL CALCOLO: "+e.getMessage()).append("\n");
- }
- }
- if(!this.ricostruibile){
- bf.append(" motivoRicostruzioneNonFattibile("+this.motivoRicostruzioneNonFattibile+")\n");
- }
- return bf.toString();
- }
-
- public static InformazioniRecordTraccia convertoFromDBColumnValue(String value) throws CoreException{
-
- InformazioniRecordTraccia info = new InformazioniRecordTraccia();
-
- if(value == null || "".equals(value.trim())){
- throw new CoreException("Valore non fornito");
- }
- info.setRawDBValue(value);
-
- if(value.length()==1 && (CostantiMappingTracciamento.NON_PRESENTE == value.charAt(0)) ){
- info.setPresente(false);
- return info;
- }
-
- info.setPresente(true);
-
- String dbValue = value.trim();
-
- if(!dbValue.contains(CostantiMappingTracciamento.SEPARATOR)){
- info.setRicostruibile(false);
- info.setMotivoRicostruzioneNonFattibile("Non sono presenti caratteri separatori ["+CostantiMappingTracciamento.SEPARATOR+"] nel valore");
- return info;
- }
-
- String [] split = dbValue.split(CostantiMappingTracciamento.SEPARATOR);
- if( CostantiMappingTracciamento.TRACCIA_EMESSA_RICOSTRUIBILE != split[0].charAt(0) ){
- info.setRicostruibile(false);
- info.setMotivoRicostruzioneNonFattibile(dbValue);
- }
- else{
- info.setRicostruibile(true);
- List<AbstractDatoRicostruzione<?>> listaDati = new ArrayList<>();
- info.setDati(listaDati);
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_EMESSA.getPosition()],
- CostantiMappingTracciamento.TRACCIA_EMESSA));
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_DATA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_DATA_REGISTRAZIONE));
-
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_ORA_REGISTRAZIONE));
-
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_TIPO_ORA_REGISTRAZIONE_BY_PROTOCOLLO.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_TIPO_ORA_REGISTRAZIONE_BY_PROTOCOLLO));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_TIPO_ORA_REGISTRAZIONE_BY_OPENSPCOOP.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_TIPO_ORA_REGISTRAZIONE_BY_OPENSPCOOP));
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_RIFERIMENTO_MESSAGGIO.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_RIFERIMENTO_MESSAGGIO));
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SCADENZA.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SCADENZA));
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_FILTRO_DUPLICATI.getPosition()],
- CostantiMappingTracciamento.TRACCIA_FILTRO_DUPLICATI));
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_FILTRO_DUPLICATI_CODE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_FILTRO_DUPLICATI_CODE));
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SEQUENZA.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SEQUENZA));
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_RISCONTRO_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_RISCONTRO_ORA_REGISTRAZIONE));
-
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_RISCONTRO_TIPO_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_RISCONTRO_TIPO_ORA_REGISTRAZIONE));
-
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_RISCONTRO_TIPO_ORA_REGISTRAZIONE_CODE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_RISCONTRO_TIPO_ORA_REGISTRAZIONE_CODE));
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_ORA_REGISTRAZIONE));
-
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_CODE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_PRIMA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_CODE));
-
- listaDati.add(new TimestampDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_ORA_REGISTRAZIONE));
-
- listaDati.add(new StringDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_CODE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SECONDA_TRASMISSIONE_TIPO_ORA_REGISTRAZIONE_CODE));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_CONFERMA_RICHIESTA.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_CONFERMA_RICHIESTA));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SERVIZIO_CORRELATO_PRESENTE.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SERVIZIO_CORRELATO_PRESENTE));
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_ESITO_TRACCIA.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_ESITO_TRACCIA));
-
- if(split.length>(CostantiMappingTracciamento.LENGHT_DATI_SIMULATI_VERSIONE_ATTUALE_PRECEDENTE_INTRODOTTO_22)){
-
- listaDati.add(new CharDatoRicostruzione(split[MappingRicostruzioneTraccia.TRACCIA_BUSTA_SOGGETTO_APPLICATIVO_TOKEN.getPosition()],
- CostantiMappingTracciamento.TRACCIA_BUSTA_SOGGETTO_APPLICATIVO_TOKEN));
-
- }
-
- if(split.length>CostantiMappingTracciamento.LENGHT_DATI_SIMULATI_VERSIONE_ATTUALE){
-
- // NOTA: successivi dati aggiunti
- // GESTIRE QUANDO SI INTRODUCONO NUOVE INFO
-
- }
- }
-
- return info;
- }
- }