Granule.java 5.24 KB
/*
 * This file is a part of EpnTAPClient.
 * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer.
 * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861
 * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie.
 *
 * This program is free software: you can
 * redistribute it and/or modify it under the terms of the GNU General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or (at your option) any later
 * version. 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 eu.omp.irap.vespa.epntapclient.granule;

import java.util.Date;

/**
 * @author N. Jourdane
 */
public class Granule {

	public String granuleUid;

	public String granuleGid;

	public String obsId;

	public String dataproductType;

	public String targetName;

	public String targetClass;

	public Double timeMin;

	public Double timeMax;

	public Double timeSamplingStepMin;

	public Double timeSamplingStepMax;

	public Double timeExpMin;

	public Double timeExpMax;

	public Double spectralRangeMin;

	public Double spectralRangeMax;

	public Double spectralSamplingStepMin;

	public Double spectralSamplingStepMax;

	public Double spectralResolutionMin;

	public Double spectralResolutionMax;

	public Double c1Min;

	public Double c1Max;

	public Double c2Min;

	public Double c2Max;

	public Double c3Min;

	public Double c3Max;

	public String sRegion;

	public Double c1ResolMin;

	public Double c1ResolMax;

	public Double c2ResolMin;

	public Double c2ResolMax;

	public Double c3ResolMin;

	public Double c3ResolMax;

	public String spatialFrameType;

	public Double incidenceMin;

	public Double incidenceMax;

	public Double emergenceMin;

	public Double emergenceMax;

	public Double phaseMin;

	public Double phaseMax;

	public String instrumentHostName;

	public String instrumentName;

	public String measurementType;

	public Integer processingLevel;

	public Date creationDate;

	public Date modificationDate;

	public Date releaseDate;

	public String serviceTitle;

	public String accessUrl;

	public String accessFormat;

	public Integer accessEstsize;

	public String dataAccessUrl;

	public String accessMd5;

	public String thumbnailUrl;

	public String fileName;

	public String species;

	public String altTargetName;

	public String targetRegion;

	public String featureName;

	public String bibReference;

	public Double ra;

	public Double dec;

	public Double solarLongitudeMin;

	public Double solarLongitudeMax;

	public Double localTimeMin;

	public Double localTimeMax;

	public Double targetDistanceMin;

	public Double targetDistanceMax;

	public Double targetTimeMin;

	public Double targetTimeMax;

	public String particleSpectralType;

	public Double particleSpectralRangeMin;

	public Double particleSpectralRangeMax;

	public Double particleSpectralSamplingStepMin;

	public Double particleSpectralSamplingStepMax;

	public Double particleSpectralResolutionMin;

	public Double particleSpectralResolutionMax;

	public String publisher;

	public String spatialCoordinateDescription;

	public String spatialOrigin;

	public String timeOrigin;

	public String timeScale;


	private Granule() {

	}

	public Granule(String granuleUid) {
		this.granuleUid = granuleUid;
	}

	/**
	 * A Granule is valid if all mandatory parameters are filled.
	 *
	 * @return
	 */
	public boolean isValid() {
		boolean valid = granuleUid != null && granuleGid != null && obsId != null;
		valid = valid && dataproductType != null && targetName != null && targetClass != null;
		valid = valid && timeMin != null && timeMax != null;
		valid = valid && timeSamplingStepMin != null && timeSamplingStepMax != null;
		valid = valid && timeExpMin != null && timeExpMax != null;
		valid = valid && spectralRangeMin != null && spectralRangeMax != null;
		valid = valid && timeSamplingStepMin != null && timeSamplingStepMax != null;
		valid = valid && spectralResolutionMin != null && spectralResolutionMax != null;
		valid = valid && c1Min != null && c1Max != null;
		valid = valid && c2Min != null && c2Max != null;
		valid = valid && c3Min != null && c3Max != null;
		valid = valid && sRegion != null;
		valid = valid && c1ResolMin != null && c1ResolMax != null;
		valid = valid && c2ResolMin != null && c2ResolMax != null;
		valid = valid && c3ResolMin != null && c3ResolMax != null;
		valid = valid && spatialFrameType != null;
		valid = valid && incidenceMin != null && incidenceMax != null;
		valid = valid && emergenceMin != null && emergenceMax != null;
		valid = valid && phaseMin != null && phaseMax != null;
		valid = valid && instrumentHostName != null && instrumentName != null;
		valid = valid && measurementType != null && processingLevel != null;
		valid = valid && creationDate != null && modificationDate != null;
		valid = valid && releaseDate != null && serviceTitle != null;

		return valid;
	}

	@Override
	public String toString() {
		return granuleUid;
	}

}