Resource.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.pdd.config;

import java.util.Date;

import org.openspcoop2.core.id.IDSoggetto;
import org.openspcoop2.utils.id.UUIDUtilsGenerator;
import org.openspcoop2.utils.id.UniqueIdentifierException;

/**
 * Identifica una risorsa rilasciata dai Manager
 *
 * @author Poli Andrea (apoli@link.it)
 * @author $Author$
 * @version $Rev$, $Date$
 */

public class Resource {

	/** Identificatore univoco risorsa */
	private String id = null;
	
	/** Data di rilascio della risorsa */
	private Date date = null;
	
	/** Identificativo Porta richiedente della risorsa */
	private IDSoggetto identificativoPorta = null;
	
	/** Modulo funzionale richiedente della risorsa */
	private String moduloFunzionale = null;
	
	/** IDTransazione */
	private String idTransazione = null;
	
	/** Tipo della risorsa */
	private String resourceType = null;
	
	/** Risorsa */
	private Object resource = null;

	
	public static String generaIdentificatoreUnivoco(IDSoggetto identificativoPorta,String moduloFunzionale) throws UniqueIdentifierException{
		if(identificativoPorta==null) {
			throw new UniqueIdentifierException("Identificativo porta is null");
		}
		return identificativoPorta.getCodicePorta()+"_"+moduloFunzionale+"_"+
				UUIDUtilsGenerator.newUUID();
				// Inefficiente: UniqueIDGenerator.getUniqueID();
	}
	
	/**
	 * @return the identificatoreUnivocoRisorsa
	 */
	public String getId() {
		return this.id;
	}

	/**
	 * @param identificatoreUnivocoRisorsa the identificatoreUnivocoRisorsa to set
	 */
	public void setId(String identificatoreUnivocoRisorsa) {
		this.id = identificatoreUnivocoRisorsa;
	}

	/**
	 * @return the dataRilascioRisorsa
	 */
	public Date getDate() {
		return this.date;
	}

	/**
	 * @param dataRilascioRisorsa the dataRilascioRisorsa to set
	 */
	public void setDate(Date dataRilascioRisorsa) {
		this.date = dataRilascioRisorsa;
	}

	/**
	 * @return the identificativoPorta
	 */
	public IDSoggetto getIdentificativoPorta() {
		return this.identificativoPorta;
	}

	/**
	 * @param identificativoPorta the identificativoPorta to set
	 */
	public void setIdentificativoPorta(IDSoggetto identificativoPorta) {
		this.identificativoPorta = identificativoPorta;
	}

	/**
	 * @return the moduloFunzionale
	 */
	public String getModuloFunzionale() {
		return this.moduloFunzionale;
	}

	/**
	 * @param moduloFunzionale the moduloFunzionale to set
	 */
	public void setModuloFunzionale(String moduloFunzionale) {
		this.moduloFunzionale = moduloFunzionale;
	}

	/**
	 * @return the tipoRisorsa
	 */
	public String getResourceType() {
		return this.resourceType;
	}

	/**
	 * @param tipoRisorsa the tipoRisorsa to set
	 */
	public void setResourceType(String tipoRisorsa) {
		this.resourceType = tipoRisorsa;
	}

	/**
	 * @return the risorsa
	 */
	public Object getResource() {
		return this.resource;
	}

	/**
	 * @param risorsa the risorsa to set
	 */
	public void setResource(Object risorsa) {
		this.resource = risorsa;
	}
	
	public String getIdTransazione() {
		return this.idTransazione;
	}

	public void setIdTransazione(String idTransazione) {
		this.idTransazione = idTransazione;
	}
	
}