Trasmissione.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.sdk;
import java.util.Date;
import org.openspcoop2.core.tracciamento.Data;
import org.openspcoop2.core.tracciamento.Soggetto;
import org.openspcoop2.core.tracciamento.SoggettoIdentificativo;
import org.openspcoop2.core.tracciamento.TipoData;
import org.openspcoop2.core.tracciamento.constants.TipoTempo;
import org.openspcoop2.protocol.sdk.constants.TipoOraRegistrazione;
import org.openspcoop2.utils.date.DateManager;
/**
* Classe utilizzata per rappresentare una Trasmissione.
*
*
* @author Poli Andrea (apoli@link.it)
* @author Nardi Lorenzo
* @author $Author$
* @version $Rev$, $Date$
*/
public class Trasmissione implements java.io.Serializable{
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
private org.openspcoop2.core.tracciamento.Trasmissione trasmissione;
public Trasmissione() {
this.trasmissione = new org.openspcoop2.core.tracciamento.Trasmissione();
}
public Trasmissione(org.openspcoop2.core.tracciamento.Trasmissione trasmissione){
this.trasmissione = trasmissione;
}
// base
public org.openspcoop2.core.tracciamento.Trasmissione getTrasmissione() {
return this.trasmissione;
}
public void setTrasmissione(org.openspcoop2.core.tracciamento.Trasmissione trasmissione) {
this.trasmissione = trasmissione;
}
// id [Wrapper]
public Long getId() {
return this.trasmissione.getId();
}
public void setId(Long id) {
this.trasmissione.setId(id);
}
// mittente [wrapper]
public String getOrigine() {
if(this.trasmissione.getOrigine()!=null && this.trasmissione.getOrigine().getIdentificativo()!=null)
return this.trasmissione.getOrigine().getIdentificativo().getBase();
else
return null;
}
public void setOrigine(String value) {
if(value!=null){
if(this.trasmissione.getOrigine()==null){
this.trasmissione.setOrigine(new Soggetto());
}
if(this.trasmissione.getOrigine().getIdentificativo()==null){
this.trasmissione.getOrigine().setIdentificativo(new SoggettoIdentificativo());
}
this.trasmissione.getOrigine().getIdentificativo().setBase(value);
}
else{
if(this.trasmissione.getOrigine()!=null){
if(this.trasmissione.getOrigine().getIdentificativo()!=null){
if(this.trasmissione.getOrigine().getIdentificativo().getTipo()==null){
this.trasmissione.getOrigine().setIdentificativo(null);
}
else{
this.trasmissione.getOrigine().getIdentificativo().setBase(null);
}
}
if(this.trasmissione.getOrigine().getIdentificativo()==null &&
this.trasmissione.getOrigine().getIdentificativoPorta()==null &&
this.trasmissione.getOrigine().getIndirizzo()==null){
this.trasmissione.setOrigine(null);
}
}
}
}
public String getTipoOrigine() {
if(this.trasmissione.getOrigine()!=null && this.trasmissione.getOrigine().getIdentificativo()!=null)
return this.trasmissione.getOrigine().getIdentificativo().getTipo();
else
return null;
}
public void setTipoOrigine(String value) {
if(value!=null){
if(this.trasmissione.getOrigine()==null){
this.trasmissione.setOrigine(new Soggetto());
}
if(this.trasmissione.getOrigine().getIdentificativo()==null){
this.trasmissione.getOrigine().setIdentificativo(new SoggettoIdentificativo());
}
this.trasmissione.getOrigine().getIdentificativo().setTipo(value);
}
else{
if(this.trasmissione.getOrigine()!=null){
if(this.trasmissione.getOrigine().getIdentificativo()!=null){
if(this.trasmissione.getOrigine().getIdentificativo().getBase()==null){
this.trasmissione.getOrigine().setIdentificativo(null);
}
else{
this.trasmissione.getOrigine().getIdentificativo().setTipo(null);
}
}
if(this.trasmissione.getOrigine().getIdentificativo()==null &&
this.trasmissione.getOrigine().getIdentificativoPorta()==null &&
this.trasmissione.getOrigine().getIndirizzo()==null){
this.trasmissione.setOrigine(null);
}
}
}
}
public String getIdentificativoPortaOrigine() {
if(this.trasmissione.getOrigine()!=null)
return this.trasmissione.getOrigine().getIdentificativoPorta();
else
return null;
}
public void setIdentificativoPortaOrigine(String identificativoPortaOrigine) {
if(identificativoPortaOrigine!=null){
if(this.trasmissione.getOrigine()==null){
this.trasmissione.setOrigine(new Soggetto());
}
this.trasmissione.getOrigine().setIdentificativoPorta(identificativoPortaOrigine);
}
else{
if(this.trasmissione.getOrigine()!=null){
this.trasmissione.getOrigine().setIdentificativoPorta(null);
if(this.trasmissione.getOrigine().getIdentificativo()==null &&
this.trasmissione.getOrigine().getIdentificativoPorta()==null &&
this.trasmissione.getOrigine().getIndirizzo()==null){
this.trasmissione.setOrigine(null);
}
}
}
}
public String getIndirizzoOrigine() {
if(this.trasmissione.getOrigine()!=null)
return this.trasmissione.getOrigine().getIndirizzo();
else
return null;
}
public void setIndirizzoOrigine(String value) {
if(value!=null){
if(this.trasmissione.getOrigine()==null){
this.trasmissione.setOrigine(new Soggetto());
}
this.trasmissione.getOrigine().setIndirizzo(value);
}
else{
if(this.trasmissione.getOrigine()!=null){
this.trasmissione.getOrigine().setIndirizzo(null);
if(this.trasmissione.getOrigine().getIdentificativo()==null &&
this.trasmissione.getOrigine().getIdentificativoPorta()==null &&
this.trasmissione.getOrigine().getIndirizzo()==null){
this.trasmissione.setOrigine(null);
}
}
}
}
// destinatario [wrapper]
public String getDestinazione() {
if(this.trasmissione.getDestinazione()!=null && this.trasmissione.getDestinazione().getIdentificativo()!=null)
return this.trasmissione.getDestinazione().getIdentificativo().getBase();
else
return null;
}
public void setDestinazione(String value) {
if(value!=null){
if(this.trasmissione.getDestinazione()==null){
this.trasmissione.setDestinazione(new Soggetto());
}
if(this.trasmissione.getDestinazione().getIdentificativo()==null){
this.trasmissione.getDestinazione().setIdentificativo(new SoggettoIdentificativo());
}
this.trasmissione.getDestinazione().getIdentificativo().setBase(value);
}
else{
if(this.trasmissione.getDestinazione()!=null){
if(this.trasmissione.getDestinazione().getIdentificativo()!=null){
if(this.trasmissione.getDestinazione().getIdentificativo().getTipo()==null){
this.trasmissione.getDestinazione().setIdentificativo(null);
}
else{
this.trasmissione.getDestinazione().getIdentificativo().setBase(null);
}
}
if(this.trasmissione.getDestinazione().getIdentificativo()==null &&
this.trasmissione.getDestinazione().getIdentificativoPorta()==null &&
this.trasmissione.getDestinazione().getIndirizzo()==null){
this.trasmissione.setDestinazione(null);
}
}
}
}
public String getTipoDestinazione() {
if(this.trasmissione.getDestinazione()!=null && this.trasmissione.getDestinazione().getIdentificativo()!=null)
return this.trasmissione.getDestinazione().getIdentificativo().getTipo();
else
return null;
}
public void setTipoDestinazione(String value) {
if(value!=null){
if(this.trasmissione.getDestinazione()==null){
this.trasmissione.setDestinazione(new Soggetto());
}
if(this.trasmissione.getDestinazione().getIdentificativo()==null){
this.trasmissione.getDestinazione().setIdentificativo(new SoggettoIdentificativo());
}
this.trasmissione.getDestinazione().getIdentificativo().setTipo(value);
}
else{
if(this.trasmissione.getDestinazione()!=null){
if(this.trasmissione.getDestinazione().getIdentificativo()!=null){
if(this.trasmissione.getDestinazione().getIdentificativo().getBase()==null){
this.trasmissione.getDestinazione().setIdentificativo(null);
}
else{
this.trasmissione.getDestinazione().getIdentificativo().setTipo(null);
}
}
if(this.trasmissione.getDestinazione().getIdentificativo()==null &&
this.trasmissione.getDestinazione().getIdentificativoPorta()==null &&
this.trasmissione.getDestinazione().getIndirizzo()==null){
this.trasmissione.setDestinazione(null);
}
}
}
}
public String getIdentificativoPortaDestinazione() {
if(this.trasmissione.getDestinazione()!=null)
return this.trasmissione.getDestinazione().getIdentificativoPorta();
else
return null;
}
public void setIdentificativoPortaDestinazione(String identificativoPortaDestinazione) {
if(identificativoPortaDestinazione!=null){
if(this.trasmissione.getDestinazione()==null){
this.trasmissione.setDestinazione(new Soggetto());
}
this.trasmissione.getDestinazione().setIdentificativoPorta(identificativoPortaDestinazione);
}
else{
if(this.trasmissione.getDestinazione()!=null){
this.trasmissione.getDestinazione().setIdentificativoPorta(null);
if(this.trasmissione.getDestinazione().getIdentificativo()==null &&
this.trasmissione.getDestinazione().getIdentificativoPorta()==null &&
this.trasmissione.getDestinazione().getIndirizzo()==null){
this.trasmissione.setDestinazione(null);
}
}
}
}
public String getIndirizzoDestinazione() {
if(this.trasmissione.getDestinazione()!=null)
return this.trasmissione.getDestinazione().getIndirizzo();
else
return null;
}
public void setIndirizzoDestinazione(String value) {
if(value!=null){
if(this.trasmissione.getDestinazione()==null){
this.trasmissione.setDestinazione(new Soggetto());
}
this.trasmissione.getDestinazione().setIndirizzo(value);
}
else{
if(this.trasmissione.getDestinazione()!=null){
this.trasmissione.getDestinazione().setIndirizzo(null);
if(this.trasmissione.getDestinazione().getIdentificativo()==null &&
this.trasmissione.getDestinazione().getIdentificativoPorta()==null &&
this.trasmissione.getDestinazione().getIndirizzo()==null){
this.trasmissione.setDestinazione(null);
}
}
}
}
// date
public TipoOraRegistrazione getTempo() {
if(this.trasmissione.getOraRegistrazione()!=null &&
this.trasmissione.getOraRegistrazione().getSorgente()!=null &&
this.trasmissione.getOraRegistrazione().getSorgente().getTipo()!=null){
switch (this.trasmissione.getOraRegistrazione().getSorgente().getTipo()) {
case LOCALE:
return TipoOraRegistrazione.LOCALE;
case SINCRONIZZATO:
return TipoOraRegistrazione.SINCRONIZZATO;
case SCONOSCIUTO:
return TipoOraRegistrazione.UNKNOWN;
}
}
return null;
}
public void setTempo(TipoOraRegistrazione tipoOraRegistrazione) {
if(tipoOraRegistrazione!=null){
if(this.trasmissione.getOraRegistrazione()==null){
this.trasmissione.setOraRegistrazione(new Data());
}
if(this.trasmissione.getOraRegistrazione().getSorgente()==null){
this.trasmissione.getOraRegistrazione().setSorgente(new TipoData());
}
switch (tipoOraRegistrazione) {
case LOCALE:
this.trasmissione.getOraRegistrazione().getSorgente().setTipo(TipoTempo.LOCALE);
break;
case SINCRONIZZATO:
this.trasmissione.getOraRegistrazione().getSorgente().setTipo(TipoTempo.SINCRONIZZATO);
break;
case UNKNOWN:
this.trasmissione.getOraRegistrazione().getSorgente().setTipo(TipoTempo.SCONOSCIUTO);
break;
}
}
else {
if(this.trasmissione.getOraRegistrazione()!=null){
if(this.trasmissione.getOraRegistrazione().getSorgente()!=null){
if(this.trasmissione.getOraRegistrazione().getSorgente().getBase()==null){
this.trasmissione.getOraRegistrazione().setSorgente(null);
}
else{
this.trasmissione.getOraRegistrazione().getSorgente().setTipo(null);
}
}
if(this.trasmissione.getOraRegistrazione().getSorgente()==null && this.trasmissione.getOraRegistrazione().getDateTime()==null){
this.trasmissione.setOraRegistrazione(null);
}
}
}
}
public void setTempo(TipoOraRegistrazione tipo, String value) {
this.setTempo(tipo);
this.setTempoValue(value);
}
public String getTempoValue(IProtocolFactory<?> protocolFactory) throws ProtocolException {
String tipoOraRegistrazioneValue = null;
if(this.trasmissione.getOraRegistrazione()!=null && this.trasmissione.getOraRegistrazione().getSorgente()!=null){
tipoOraRegistrazioneValue = this.trasmissione.getOraRegistrazione().getSorgente().getBase();
}
return tipoOraRegistrazioneValue == null ? protocolFactory.createTraduttore().toString(this.getTempo()) : tipoOraRegistrazioneValue;
}
public void setTempoValue(String tipoOraRegistrazioneValue) {
if(tipoOraRegistrazioneValue!=null){
if(this.trasmissione.getOraRegistrazione()==null){
this.trasmissione.setOraRegistrazione(new Data());
}
if(this.trasmissione.getOraRegistrazione().getSorgente()==null){
this.trasmissione.getOraRegistrazione().setSorgente(new TipoData());
}
this.trasmissione.getOraRegistrazione().getSorgente().setBase(tipoOraRegistrazioneValue);
}
else {
if(this.trasmissione.getOraRegistrazione()!=null){
if(this.trasmissione.getOraRegistrazione().getSorgente()!=null){
if(this.trasmissione.getOraRegistrazione().getSorgente().getTipo()==null){
this.trasmissione.getOraRegistrazione().setSorgente(null);
}
else{
this.trasmissione.getOraRegistrazione().getSorgente().setBase(null);
}
}
if(this.trasmissione.getOraRegistrazione().getSorgente()==null && this.trasmissione.getOraRegistrazione().getDateTime()==null){
this.trasmissione.setOraRegistrazione(null);
}
}
}
}
public Date getOraRegistrazione() {
if(this.trasmissione.getOraRegistrazione()!=null){
return this.trasmissione.getOraRegistrazione().getDateTime();
}
return null;
}
public void setOraRegistrazione(Date value) {
if(value!=null){
if(this.trasmissione.getOraRegistrazione()==null){
this.trasmissione.setOraRegistrazione(new Data());
}
this.trasmissione.getOraRegistrazione().setDateTime(value);
}
else {
if(this.trasmissione.getOraRegistrazione()!=null){
if(this.trasmissione.getOraRegistrazione().getSorgente()==null){
this.trasmissione.setOraRegistrazione(null);
}
else{
this.trasmissione.getOraRegistrazione().setDateTime(null);
}
}
}
}
public Trasmissione newInstance(){
Trasmissione clone = new Trasmissione();
// id
clone.setId(this.getId()!=null ? Long.valueOf(this.getId()+"") : null);
// origine
clone.setOrigine(this.getOrigine()!=null ? new String(this.getOrigine()) : null);
clone.setTipoOrigine(this.getTipoOrigine()!=null ? new String(this.getTipoOrigine()) : null);
clone.setIndirizzoOrigine(this.getIndirizzoOrigine()!=null ? new String(this.getIndirizzoOrigine()) : null);
clone.setIdentificativoPortaOrigine(this.getIdentificativoPortaOrigine()!=null ? new String(this.getIdentificativoPortaOrigine()) : null);
// destinazione
clone.setDestinazione(this.getDestinazione()!=null ? new String(this.getDestinazione()) : null);
clone.setTipoDestinazione(this.getTipoDestinazione()!=null ? new String(this.getTipoDestinazione()) : null);
clone.setIndirizzoDestinazione(this.getIndirizzoDestinazione()!=null ? new String(this.getIndirizzoDestinazione()) : null);
clone.setIdentificativoPortaDestinazione(this.getIdentificativoPortaDestinazione()!=null ? new String(this.getIdentificativoPortaDestinazione()) : null);
// date
clone.setOraRegistrazione(this.getOraRegistrazione()!=null ? new Date(this.getOraRegistrazione().getTime()) : null);
clone.setTempo(this.getTempo());
clone.setTempoValue(this.trasmissione.getOraRegistrazione()!=null &&
this.trasmissione.getOraRegistrazione().getSorgente()!=null &&
this.trasmissione.getOraRegistrazione().getSorgente().getBase()!=null ? new String(this.trasmissione.getOraRegistrazione().getSorgente().getBase()) : null);
return clone;
}
public Trasmissione invertiTrasmissione(TipoOraRegistrazione tipoOraRegistrazione, String tipoTempo){
Trasmissione inverti = new Trasmissione();
// origine
inverti.setOrigine(this.getDestinazione()!=null ? new String(this.getDestinazione()) : null);
inverti.setTipoOrigine(this.getTipoDestinazione()!=null ? new String(this.getTipoDestinazione()) : null);
inverti.setIndirizzoOrigine(this.getIndirizzoDestinazione()!=null ? new String(this.getIndirizzoDestinazione()) : null);
inverti.setIdentificativoPortaOrigine(this.getIdentificativoPortaDestinazione()!=null ? new String(this.getIdentificativoPortaDestinazione()) : null);
// destinazione
inverti.setDestinazione(this.getOrigine()!=null ? new String(this.getOrigine()) : null);
inverti.setTipoDestinazione(this.getTipoOrigine()!=null ? new String(this.getTipoOrigine()) : null);
inverti.setIndirizzoDestinazione(this.getIndirizzoOrigine()!=null ? new String(this.getIndirizzoOrigine()) : null);
inverti.setIdentificativoPortaDestinazione(this.getIdentificativoPortaOrigine()!=null ? new String(this.getIdentificativoPortaOrigine()) : null);
// date
Date oraRegistrazione = DateManager.getDate();
inverti.setOraRegistrazione(oraRegistrazione);
inverti.setTempo(tipoOraRegistrazione);
inverti.setTempoValue(tipoTempo);
return inverti;
}
}