/* * 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 * . */ package eu.omp.irap.vespa.epntapclient.granule; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * @author N. Jourdane */ public class Granule { /** Estimate file size in kbyte (with this spelling) */ private int accessEstsize; /** */ private String accessFormat; /** MD5 Hash for the file when available (real file) */ private String accessMd5; /** */ private String accessUrl; /** Provides alternative target name if more common (e.g. comets) */ private String altTargetName; /** Bibcode, doi, or other biblio id, URL */ private String bibReference; /** Max of first coordinate. */ private Double c1Max; /** Min of first coordinate. */ private Double c1Min; /** Max resolution in first coordinate. */ private Double c1ResolMax; /** Min resolution in first coordinate. */ private Double c1ResolMin; /** Max of second coordinate. */ private Double c2Max; /** Min of second coordinate. */ private Double c2Min; /** Max resolution in second coordinate. */ private Double c2ResolMax; /** Min resolution in second coordinate. */ private Double c2ResolMin; /** Max of third coordinate. */ private Double c3Max; /** Min of third coordinate. */ private Double c3Min; /** Max resolution in third coordinate. */ private Double c3ResolMax; /** Min resolution in third coordinate. */ private Double c3ResolMin; /** Date of first entry of this granule */ private Date creationDate; /** * If access_format indicates a detached label, this parameter is mandatory and points to the * corresponding data file - both will be handled by the client before samping it to tools or * downloading */ private String dataAccessUrl; /** Organization of the data product, from enumerated list. */ private String dataproductType; /** Declination */ private double dec; /** Max emergence angle. */ private Double emergenceMax; /** Min emergence angle. */ private Double emergenceMin; /** */ private String featureName; /** Name of the data file only, case sensitive */ private String fileName; /** * Common to granules of same type (e.g. same map projection, or geometry data products). Can be * alphanum. */ private String granuleGid; /** Internal table row index. Unique ID in data service, also in v2. Can be alphanum. */ private String granuleUid; /** Max incidence angle (solar zenithal angle). */ private Double incidenceMax; /** Min incidence angle (solar zenithal angle). */ private Double incidenceMin; /** Standard name of the observatory or spacecraft. */ private String instrumentHostName; /** Standard name of instrument */ private String instrumentName; /** Local time at observed region */ private double localTimeMax; /** Local time at observed region */ private double localTimeMin; /** UCD(s) defining the data */ private String measurementType; /** Date of last modification (used to handle mirroring) */ private Date modificationDate; /** * Associates granules derived from the same data (e.g. various representations / processing * levels). Can be alphanum., may be the ID of original observation. */ private String obsId; /** */ private double particleSpectralRangeMax; /** */ private double particleSpectralRangeMin; /** */ private double particleSpectralResolutionMax; /** */ private double particleSpectralResolutionMin; /** */ private double particleSpectralSamplingStepMax; /** */ private double particleSpectralSamplingStepMin; /** */ private String particleSpectralType; /** Max phase angle. */ private Double phaseMax; /** Min phase angle. */ private Double phaseMin; /** CODMAC calibration level in v1 */ private Integer processingLevel; /** Resource publisher */ private String publisher; /** */ private double ra; /** */ private Date releaseDate; /** */ private String serviceTitle; /** Max Solar longitude Ls (location on orbit / season) */ private double solarLongitudeMax; /** Min Solar longitude Ls (location on orbit / season) */ private double solarLongitudeMin; /** ID of specific coordinate system and version */ private String spatialCoordinateDescription; /** Flavor of coordinate system, defines the nature of coordinates. From enumerated list. */ private String spatialFrameType; /** Defines the frame origin */ private String spatialOrigin; /** Identifies a chemical species, case sensitive */ private String species; /** Max spectral range (frequency). */ private Double spectralRangeMax; /** Min spectral range (frequency). */ private Double spectralRangeMin; /** Max spectral resolution. */ private Double spectralResolutionMax; /** Min spectral resolution. */ private Double spectralResolutionMin; /** Max spectral sampling step. */ private Double spectralSamplingStepMax; /** Min spectral sampling step. */ private Double spectralSamplingStepMin; /** ObsCore-like footprint, assume spatial_coordinate_description. */ private String sRegion; /** Type of target, from enumerated list. */ private String targetClass; /** Observer-target distance */ private double targetDistanceMax; /** Observer-target distance */ private double targetDistanceMin; /** Standard IAU name of target (from a list related to target class), case sensitive. */ private String targetName; /** */ private String targetRegion; /** */ private double targetTimeMax; /** */ private double targetTimeMin; /** URL of a thumbnail image with predefined size (png ~200 pix, for use in a client only) */ private String thumbnailUrl; /** Max integration time. */ private Double timeExpMax; /** Min integration time. */ private Double timeExpMin; /** * Acquisition stop time (in JD). UTC measured at time_origin location (default is observer's * frame). */ private Double timeMax; /** * Acquisition start time (in JD). UTC measured at time_origin location (default is observer's * frame) */ private Double timeMin; /** */ private String timeOrigin; /** Max time sampling step. */ private Double timeSamplingStepMax; /** Min time sampling step. */ private Double timeSamplingStepMin; /** */ private String timeScale; /** * Constructor of Granule * * @param granuleUid The granule identifier. */ public Granule(String granuleUid) { this.granuleUid = granuleUid; } public Map asMap() { Map map = new HashMap<>(); map.put(GranuleEnum.GRANULE_UID.toString(), granuleUid); map.put(GranuleEnum.GRANULE_GID.toString(), granuleGid); map.put(GranuleEnum.OBS_ID.toString(), obsId); map.put(GranuleEnum.DATAPRODUCT_TYPE.toString(), dataproductType); map.put(GranuleEnum.TARGET_NAME.toString(), targetName); map.put(GranuleEnum.TARGET_CLASS.toString(), targetClass); map.put(GranuleEnum.TIME_MIN.toString(), timeMin); map.put(GranuleEnum.TIME_MAX.toString(), timeMax); map.put(GranuleEnum.TIME_SAMPLING_STEP_MIN.toString(), timeSamplingStepMin); map.put(GranuleEnum.TIME_SAMPLING_STEP_MAX.toString(), timeSamplingStepMax); map.put(GranuleEnum.TIME_EXP_MIN.toString(), timeExpMin); map.put(GranuleEnum.TIME_EXP_MAX.toString(), timeExpMax); map.put(GranuleEnum.SPECTRAL_RANGE_MIN.toString(), spectralRangeMin); map.put(GranuleEnum.SPECTRAL_RANGE_MAX.toString(), spectralRangeMax); map.put(GranuleEnum.TIME_SAMPLING_STEP_MIN.toString(), timeSamplingStepMin); map.put(GranuleEnum.TIME_SAMPLING_STEP_MAX.toString(), timeSamplingStepMax); map.put(GranuleEnum.SPECTRAL_RESOLUTION_MIN.toString(), spectralResolutionMin); map.put(GranuleEnum.SPECTRAL_RESOLUTION_MAX.toString(), spectralResolutionMax); map.put(GranuleEnum.C1MIN.toString(), c1Min); map.put(GranuleEnum.C1MAX.toString(), c1Max); map.put(GranuleEnum.C2MIN.toString(), c2Min); map.put(GranuleEnum.C2MAX.toString(), c2Max); map.put(GranuleEnum.C3MIN.toString(), c3Min); map.put(GranuleEnum.C3MAX.toString(), c3Max); map.put(GranuleEnum.S_REGION.toString(), sRegion); map.put(GranuleEnum.C1_RESOL_MIN.toString(), c1ResolMin); map.put(GranuleEnum.C1_RESOL_MAX.toString(), c1ResolMax); map.put(GranuleEnum.C2_RESOL_MIN.toString(), c2ResolMin); map.put(GranuleEnum.C2_RESOL_MAX.toString(), c2ResolMax); map.put(GranuleEnum.C3_RESOL_MIN.toString(), c3ResolMin); map.put(GranuleEnum.C3_RESOL_MAX.toString(), c3ResolMax); map.put(GranuleEnum.SPATIAL_FRAME_TYPE.toString(), spatialFrameType); map.put(GranuleEnum.INCIDENCE_MIN.toString(), incidenceMin); map.put(GranuleEnum.INCIDENCE_MAX.toString(), incidenceMax); map.put(GranuleEnum.EMERGENCE_MIN.toString(), emergenceMin); map.put(GranuleEnum.EMERGENCE_MAX.toString(), emergenceMax); map.put(GranuleEnum.PHASE_MIN.toString(), phaseMin); map.put(GranuleEnum.PHASE_MAX.toString(), phaseMax); map.put(GranuleEnum.INSTRUMENT_HOST_NAME.toString(), instrumentHostName); map.put(GranuleEnum.INSTRUMENT_NAME.toString(), instrumentName); map.put(GranuleEnum.MEASUREMENT_TYPE.toString(), measurementType); map.put(GranuleEnum.PROCESSING_LEVEL.toString(), processingLevel); map.put(GranuleEnum.CREATION_DATE.toString(), creationDate); map.put(GranuleEnum.MODIFICATION_DATE.toString(), modificationDate); map.put(GranuleEnum.RELEASE_DATE.toString(), releaseDate); map.put(GranuleEnum.SERVICE_TITLE.toString(), serviceTitle); return map; } @Override public boolean equals(Object that) { if (this == that) { return true; } if (!(that instanceof Granule)) { return false; } Granule thatGranule = (Granule) that; for (Map.Entry parameter : asMap().entrySet()) { Object val1 = parameter.getValue(); Object val2 = thatGranule.asMap().get(parameter.getKey()); if (!val1.equals(val2)) { return false; } } return true; } /** * @return the accessEstsize */ public int getAccessEstsize() { return accessEstsize; } /** * @return the accessFormat */ public String getAccessFormat() { return accessFormat; } /** * @return the accessMd5 */ public String getAccessMd5() { return accessMd5; } /** * @return the accessUrl */ public String getAccessUrl() { return accessUrl; } /** * @return the altTargetName */ public String getAltTargetName() { return altTargetName; } /** * @return the bibReference */ public String getBibReference() { return bibReference; } /** * @return the c1Max */ public Double getC1Max() { return c1Max; } /** * @return the c1Min */ public Double getC1Min() { return c1Min; } /** * @return the c1ResolMax */ public Double getC1ResolMax() { return c1ResolMax; } /** * @return the c1ResolMin */ public Double getC1ResolMin() { return c1ResolMin; } /** * @return the c2Max */ public Double getC2Max() { return c2Max; } /** * @return the c2Min */ public Double getC2Min() { return c2Min; } /** * @return the c2ResolMax */ public Double getC2ResolMax() { return c2ResolMax; } /** * @return the c2ResolMin */ public Double getC2ResolMin() { return c2ResolMin; } /** * @return the c3Max */ public Double getC3Max() { return c3Max; } /** * @return the c3Min */ public Double getC3Min() { return c3Min; } /** * @return the c3ResolMax */ public Double getC3ResolMax() { return c3ResolMax; } /** * @return the c3ResolMin */ public Double getC3ResolMin() { return c3ResolMin; } /** * @return the creationDate */ public Date getCreationDate() { return creationDate; } /** * @return the dataAccessUrl */ public String getDataAccessUrl() { return dataAccessUrl; } /** * @return the dataproductType */ public String getDataproductType() { return dataproductType; } /** * @return the dec */ public double getDec() { return dec; } /** * @return the emergenceMax */ public Double getEmergenceMax() { return emergenceMax; } /** * @return the emergenceMin */ public Double getEmergenceMin() { return emergenceMin; } /** * @return the featureName */ public String getFeatureName() { return featureName; } /** * @return the fileName */ public String getFileName() { return fileName; } /** * @return the granuleGid */ public String getGranuleGid() { return granuleGid; } /** * @return the granuleUid */ public String getGranuleUid() { return granuleUid; } /** * @return the incidenceMax */ public Double getIncidenceMax() { return incidenceMax; } /** * @return the incidenceMin */ public Double getIncidenceMin() { return incidenceMin; } /** * @return the instrumentHostName */ public String getInstrumentHostName() { return instrumentHostName; } /** * @return the instrumentName */ public String getInstrumentName() { return instrumentName; } /** * @return the localTimeMax */ public double getLocalTimeMax() { return localTimeMax; } /** * @return the localTimeMin */ public double getLocalTimeMin() { return localTimeMin; } /** * @return the measurementType */ public String getMeasurementType() { return measurementType; } /** * @return the modificationDate */ public Date getModificationDate() { return modificationDate; } /** * @return the obsId */ public String getObsId() { return obsId; } /** * @return the particleSpectralRangeMax */ public double getParticleSpectralRangeMax() { return particleSpectralRangeMax; } /** * @return the particleSpectralRangeMin */ public double getParticleSpectralRangeMin() { return particleSpectralRangeMin; } /** * @return the particleSpectralResolutionMax */ public double getParticleSpectralResolutionMax() { return particleSpectralResolutionMax; } /** * @return the particleSpectralResolutionMin */ public double getParticleSpectralResolutionMin() { return particleSpectralResolutionMin; } /** * @return the particleSpectralSamplingStepMax */ public double getParticleSpectralSamplingStepMax() { return particleSpectralSamplingStepMax; } /** * @return the particleSpectralSamplingStepMin */ public double getParticleSpectralSamplingStepMin() { return particleSpectralSamplingStepMin; } /** * @return the particleSpectralType */ public String getParticleSpectralType() { return particleSpectralType; } /** * @return the phaseMax */ public Double getPhaseMax() { return phaseMax; } /** * @return the phaseMin */ public Double getPhaseMin() { return phaseMin; } /** * @return the processingLevel */ public Integer getProcessingLevel() { return processingLevel; } /** * @return the publisher */ public String getPublisher() { return publisher; } /** * @return the ra */ public double getRa() { return ra; } /** * @return the releaseDate */ public Date getReleaseDate() { return releaseDate; } /** * @return the serviceTitle */ public String getServiceTitle() { return serviceTitle; } /** * @return the solarLongitudeMax */ public double getSolarLongitudeMax() { return solarLongitudeMax; } /** * @return the solarLongitudeMin */ public double getSolarLongitudeMin() { return solarLongitudeMin; } /** * @return the spatialCoordinateDescription */ public String getSpatialCoordinateDescription() { return spatialCoordinateDescription; } /** * @return the spatialFrameType */ public String getSpatialFrameType() { return spatialFrameType; } /** * @return the spatialOrigin */ public String getSpatialOrigin() { return spatialOrigin; } /** * @return the species */ public String getSpecies() { return species; } /** * @return the spectralRangeMax */ public Double getSpectralRangeMax() { return spectralRangeMax; } /** * @return the spectralRangeMin */ public Double getSpectralRangeMin() { return spectralRangeMin; } /** * @return the spectralResolutionMax */ public Double getSpectralResolutionMax() { return spectralResolutionMax; } /** * @return the spectralResolutionMin */ public Double getSpectralResolutionMin() { return spectralResolutionMin; } /** * @return the spectralSamplingStepMax */ public Double getSpectralSamplingStepMax() { return spectralSamplingStepMax; } /** * @return the spectralSamplingStepMin */ public Double getSpectralSamplingStepMin() { return spectralSamplingStepMin; } /** * @return the sRegion */ public String getsRegion() { return sRegion; } /** * @return the targetClass */ public String getTargetClass() { return targetClass; } /** * @return the targetDistanceMax */ public double getTargetDistanceMax() { return targetDistanceMax; } /** * @return the targetDistanceMin */ public double getTargetDistanceMin() { return targetDistanceMin; } /** * @return the targetName */ public String getTargetName() { return targetName; } /** * @return the targetRegion */ public String getTargetRegion() { return targetRegion; } /** * @return the targetTimeMax */ public double getTargetTimeMax() { return targetTimeMax; } /** * @return the targetTimeMin */ public double getTargetTimeMin() { return targetTimeMin; } /** * @return the thumbnailUrl */ public String getThumbnailUrl() { return thumbnailUrl; } /** * @return the timeExpMax */ public Double getTimeExpMax() { return timeExpMax; } /** * @return the timeExpMin */ public Double getTimeExpMin() { return timeExpMin; } /** * @return the timeMax */ public Double getTimeMax() { return timeMax; } /** * @return the timeMin */ public Double getTimeMin() { return timeMin; } /** * @return the timeOrigin */ public String getTimeOrigin() { return timeOrigin; } /** * @return the timeSamplingStepMax */ public Double getTimeSamplingStepMax() { return timeSamplingStepMax; } /** * @return the timeSamplingStepMin */ public Double getTimeSamplingStepMin() { return timeSamplingStepMin; } /** * @return the timeScale */ public String getTimeScale() { return timeScale; } @Override public int hashCode() { final int salt = 31; int hash = 1; for (Map.Entry parameter : asMap().entrySet()) { hash = salt * hash + (parameter.getValue() == null ? 0 : parameter.getValue().hashCode()); } return hash; } /** * A granule is valid if all mandatory parameters are filled. * * @return true if the Granule is valid, false otherwise. */ public boolean isValid() { for (Map.Entry parameter : asMap().entrySet()) { if (parameter.getValue() == null) { return false; } } return true; } public String printAll() { String s = ""; for (Map.Entry parameter : asMap().entrySet()) { s += parameter.getKey() + ": " + parameter.getValue() + "\n"; } return s; } /** * @param accessEstsize the accessEstsize to set */ public void setAccessEstsize(int accessEstsize) { this.accessEstsize = accessEstsize; } /** * @param accessFormat the accessFormat to set */ public void setAccessFormat(String accessFormat) { this.accessFormat = accessFormat; } /** * @param accessMd5 the accessMd5 to set */ public void setAccessMd5(String accessMd5) { this.accessMd5 = accessMd5; } /** * @param accessUrl the accessUrl to set */ public void setAccessUrl(String accessUrl) { this.accessUrl = accessUrl; } /** * @param altTargetName the altTargetName to set */ public void setAltTargetName(String altTargetName) { this.altTargetName = altTargetName; } /** * @param bibReference the bibReference to set */ public void setBibReference(String bibReference) { this.bibReference = bibReference; } /** * @param c1Max the c1Max to set */ public void setC1Max(Double c1Max) { this.c1Max = c1Max; } /** * @param c1Min the c1Min to set */ public void setC1Min(Double c1Min) { this.c1Min = c1Min; } /** * @param c1ResolMax the c1ResolMax to set */ public void setC1ResolMax(Double c1ResolMax) { this.c1ResolMax = c1ResolMax; } /** * @param c1ResolMin the c1ResolMin to set */ public void setC1ResolMin(Double c1ResolMin) { this.c1ResolMin = c1ResolMin; } /** * @param c2Max the c2Max to set */ public void setC2Max(Double c2Max) { this.c2Max = c2Max; } /** * @param c2Min the c2Min to set */ public void setC2Min(Double c2Min) { this.c2Min = c2Min; } /** * @param c2ResolMax the c2ResolMax to set */ public void setC2ResolMax(Double c2ResolMax) { this.c2ResolMax = c2ResolMax; } /** * @param c2ResolMin the c2ResolMin to set */ public void setC2ResolMin(Double c2ResolMin) { this.c2ResolMin = c2ResolMin; } /** * @param c3Max the c3Max to set */ public void setC3Max(Double c3Max) { this.c3Max = c3Max; } /** * @param c3Min the c3Min to set */ public void setC3Min(Double c3Min) { this.c3Min = c3Min; } /** * @param c3ResolMax the c3ResolMax to set */ public void setC3ResolMax(Double c3ResolMax) { this.c3ResolMax = c3ResolMax; } /** * @param c3ResolMin the c3ResolMin to set */ public void setC3ResolMin(Double c3ResolMin) { this.c3ResolMin = c3ResolMin; } /** * @param creationDate the creationDate to set */ public void setCreationDate(Date creationDate) { this.creationDate = creationDate; } /** * @param dataAccessUrl the dataAccessUrl to set */ public void setDataAccessUrl(String dataAccessUrl) { this.dataAccessUrl = dataAccessUrl; } /** * @param dataproductType the dataproductType to set */ public void setDataproductType(String dataproductType) { this.dataproductType = dataproductType; } /** * @param dec the dec to set */ public void setDec(double dec) { this.dec = dec; } /** * @param emergenceMax the emergenceMax to set */ public void setEmergenceMax(Double emergenceMax) { this.emergenceMax = emergenceMax; } /** * @param emergenceMin the emergenceMin to set */ public void setEmergenceMin(Double emergenceMin) { this.emergenceMin = emergenceMin; } /** * @param featureName the featureName to set */ public void setFeatureName(String featureName) { this.featureName = featureName; } /** * @param fileName the fileName to set */ public void setFileName(String fileName) { this.fileName = fileName; } /** * @param granuleGid the granuleGid to set */ public void setGranuleGid(String granuleGid) { this.granuleGid = granuleGid; } /** * @param granuleUid the granuleUid to set */ public void setGranuleUid(String granuleUid) { this.granuleUid = granuleUid; } /** * @param incidenceMax the incidenceMax to set */ public void setIncidenceMax(Double incidenceMax) { this.incidenceMax = incidenceMax; } /** * @param incidenceMin the incidenceMin to set */ public void setIncidenceMin(Double incidenceMin) { this.incidenceMin = incidenceMin; } /** * @param instrumentHostName the instrumentHostName to set */ public void setInstrumentHostName(String instrumentHostName) { this.instrumentHostName = instrumentHostName; } /** * @param instrumentName the instrumentName to set */ public void setInstrumentName(String instrumentName) { this.instrumentName = instrumentName; } /** * @param localTimeMax the localTimeMax to set */ public void setLocalTimeMax(double localTimeMax) { this.localTimeMax = localTimeMax; } /** * @param localTimeMin the localTimeMin to set */ public void setLocalTimeMin(double localTimeMin) { this.localTimeMin = localTimeMin; } /** * @param measurementType the measurementType to set */ public void setMeasurementType(String measurementType) { this.measurementType = measurementType; } /** * @param modificationDate the modificationDate to set */ public void setModificationDate(Date modificationDate) { this.modificationDate = modificationDate; } /** * @param obsId the obsId to set */ public void setObsId(String obsId) { this.obsId = obsId; } /** * @param particleSpectralRangeMax the particleSpectralRangeMax to set */ public void setParticleSpectralRangeMax(double particleSpectralRangeMax) { this.particleSpectralRangeMax = particleSpectralRangeMax; } /** * @param particleSpectralRangeMin the particleSpectralRangeMin to set */ public void setParticleSpectralRangeMin(double particleSpectralRangeMin) { this.particleSpectralRangeMin = particleSpectralRangeMin; } /** * @param particleSpectralResolutionMax the particleSpectralResolutionMax to set */ public void setParticleSpectralResolutionMax(double particleSpectralResolutionMax) { this.particleSpectralResolutionMax = particleSpectralResolutionMax; } /** * @param particleSpectralResolutionMin the particleSpectralResolutionMin to set */ public void setParticleSpectralResolutionMin(double particleSpectralResolutionMin) { this.particleSpectralResolutionMin = particleSpectralResolutionMin; } /** * @param particleSpectralSamplingStepMax the particleSpectralSamplingStepMax to set */ public void setParticleSpectralSamplingStepMax(double particleSpectralSamplingStepMax) { this.particleSpectralSamplingStepMax = particleSpectralSamplingStepMax; } /** * @param particleSpectralSamplingStepMin the particleSpectralSamplingStepMin to set */ public void setParticleSpectralSamplingStepMin(double particleSpectralSamplingStepMin) { this.particleSpectralSamplingStepMin = particleSpectralSamplingStepMin; } /** * @param particleSpectralType the particleSpectralType to set */ public void setParticleSpectralType(String particleSpectralType) { this.particleSpectralType = particleSpectralType; } /** * @param phaseMax the phaseMax to set */ public void setPhaseMax(Double phaseMax) { this.phaseMax = phaseMax; } /** * @param phaseMin the phaseMin to set */ public void setPhaseMin(Double phaseMin) { this.phaseMin = phaseMin; } /** * @param processingLevel the processingLevel to set */ public void setProcessingLevel(Integer processingLevel) { this.processingLevel = processingLevel; } /** * @param publisher the publisher to set */ public void setPublisher(String publisher) { this.publisher = publisher; } /** * @param ra the ra to set */ public void setRa(double ra) { this.ra = ra; } /** * @param releaseDate the releaseDate to set */ public void setReleaseDate(Date releaseDate) { this.releaseDate = releaseDate; } /** * @param serviceTitle the serviceTitle to set */ public void setServiceTitle(String serviceTitle) { this.serviceTitle = serviceTitle; } /** * @param solarLongitudeMax the solarLongitudeMax to set */ public void setSolarLongitudeMax(double solarLongitudeMax) { this.solarLongitudeMax = solarLongitudeMax; } /** * @param solarLongitudeMin the solarLongitudeMin to set */ public void setSolarLongitudeMin(double solarLongitudeMin) { this.solarLongitudeMin = solarLongitudeMin; } /** * @param spatialCoordinateDescription the spatialCoordinateDescription to set */ public void setSpatialCoordinateDescription(String spatialCoordinateDescription) { this.spatialCoordinateDescription = spatialCoordinateDescription; } /** * @param spatialFrameType the spatialFrameType to set */ public void setSpatialFrameType(String spatialFrameType) { this.spatialFrameType = spatialFrameType; } /** * @param spatialOrigin the spatialOrigin to set */ public void setSpatialOrigin(String spatialOrigin) { this.spatialOrigin = spatialOrigin; } /** * @param species the species to set */ public void setSpecies(String species) { this.species = species; } /** * @param spectralRangeMax the spectralRangeMax to set */ public void setSpectralRangeMax(Double spectralRangeMax) { this.spectralRangeMax = spectralRangeMax; } /** * @param spectralRangeMin the spectralRangeMin to set */ public void setSpectralRangeMin(Double spectralRangeMin) { this.spectralRangeMin = spectralRangeMin; } /** * @param spectralResolutionMax the spectralResolutionMax to set */ public void setSpectralResolutionMax(Double spectralResolutionMax) { this.spectralResolutionMax = spectralResolutionMax; } /** * @param spectralResolutionMin the spectralResolutionMin to set */ public void setSpectralResolutionMin(Double spectralResolutionMin) { this.spectralResolutionMin = spectralResolutionMin; } /** * @param spectralSamplingStepMax the spectralSamplingStepMax to set */ public void setSpectralSamplingStepMax(Double spectralSamplingStepMax) { this.spectralSamplingStepMax = spectralSamplingStepMax; } /** * @param spectralSamplingStepMin the spectralSamplingStepMin to set */ public void setSpectralSamplingStepMin(Double spectralSamplingStepMin) { this.spectralSamplingStepMin = spectralSamplingStepMin; } /** * @param sRegion the sRegion to set */ public void setSRegion(String sRegion) { this.sRegion = sRegion; } /** * @param targetClass the targetClass to set */ public void setTargetClass(String targetClass) { this.targetClass = targetClass; } /** * @param targetDistanceMax the targetDistanceMax to set */ public void setTargetDistanceMax(double targetDistanceMax) { this.targetDistanceMax = targetDistanceMax; } /** * @param targetDistanceMin the targetDistanceMin to set */ public void setTargetDistanceMin(double targetDistanceMin) { this.targetDistanceMin = targetDistanceMin; } /** * @param targetName the targetName to set */ public void setTargetName(String targetName) { this.targetName = targetName; } /** * @param targetRegion the targetRegion to set */ public void setTargetRegion(String targetRegion) { this.targetRegion = targetRegion; } /** * @param targetTimeMax the targetTimeMax to set */ public void setTargetTimeMax(double targetTimeMax) { this.targetTimeMax = targetTimeMax; } /** * @param targetTimeMin the targetTimeMin to set */ public void setTargetTimeMin(double targetTimeMin) { this.targetTimeMin = targetTimeMin; } /** * @param thumbnailUrl the thumbnailUrl to set */ public void setThumbnailUrl(String thumbnailUrl) { this.thumbnailUrl = thumbnailUrl; } /** * @param timeExpMax the timeExpMax to set */ public void setTimeExpMax(Double timeExpMax) { this.timeExpMax = timeExpMax; } /** * @param timeExpMin the timeExpMin to set */ public void setTimeExpMin(Double timeExpMin) { this.timeExpMin = timeExpMin; } /** * @param timeMax the timeMax to set */ public void setTimeMax(Double timeMax) { this.timeMax = timeMax; } /** * @param timeMin the timeMin to set */ public void setTimeMin(Double timeMin) { this.timeMin = timeMin; } /** * @param timeOrigin the timeOrigin to set */ public void setTimeOrigin(String timeOrigin) { this.timeOrigin = timeOrigin; } /** * @param timeSamplingStepMax the timeSamplingStepMax to set */ public void setTimeSamplingStepMax(Double timeSamplingStepMax) { this.timeSamplingStepMax = timeSamplingStepMax; } /** * @param timeSamplingStepMin the timeSamplingStepMin to set */ public void setTimeSamplingStepMin(Double timeSamplingStepMin) { this.timeSamplingStepMin = timeSamplingStepMin; } /** * @param timeScale the timeScale to set */ public void setTimeScale(String timeScale) { this.timeScale = timeScale; } @Override public String toString() { return granuleUid; } }