All Downloads are FREE. Search and download functionalities are using the official Maven repository.

thredds.catalog2.builder.ThreddsMetadataBuilder Maven / Gradle / Ivy

Go to download

The NetCDF-Java Library is a Java interface to NetCDF files, as well as to many other types of scientific data formats.

The newest version!
/*
 * Copyright 1998-2009 University Corporation for Atmospheric Research/Unidata
 *
 * Portions of this software were developed by the Unidata Program at the
 * University Corporation for Atmospheric Research.
 *
 * Access and use of this software shall impose the following obligations
 * and understandings on the user. The user is granted the right, without
 * any fee or cost, to use, copy, modify, alter, enhance and distribute
 * this software, and any derivative works thereof, and its supporting
 * documentation for any purpose whatsoever, provided that this entire
 * notice appears in all copies of the software, derivative works and
 * supporting documentation.  Further, UCAR requests that the user credit
 * UCAR/Unidata in any publications that result from the use of this
 * software or in any product that includes this software. The names UCAR
 * and/or Unidata, however, may not be used in any advertising or publicity
 * to endorse or promote any products or commercial entity unless specific
 * written permission is obtained from UCAR/Unidata. The user also
 * understands that UCAR/Unidata is not obligated to provide the user with
 * any support, consulting, training or assistance of any kind with regard
 * to the use, operation and performance of this software nor to provide
 * the user with any updates, revisions, new versions or "bug fixes."
 *
 * THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL,
 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 * WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
 */
package thredds.catalog2.builder;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Iterator;

import ucar.nc2.constants.FeatureType;
import thredds.catalog2.ThreddsMetadata;
import thredds.catalog.DataFormatType;

/**
 * _more_
 *
 * @author edavis
 * @since 4.0
 */
public interface ThreddsMetadataBuilder extends ThreddsBuilder
{
  public boolean isEmpty();
  
  public DocumentationBuilder addDocumentation( String docType, String title, String externalReference );
  public DocumentationBuilder addDocumentation( String docType, String content );
  public boolean removeDocumentation( DocumentationBuilder docBuilder );
  public List getDocumentationBuilders();

  public KeyphraseBuilder addKeyphrase( String authority, String phrase );
  public boolean removeKeyphrase( KeyphraseBuilder keyphraseBuilder );
  public List getKeyphraseBuilders();

  public ProjectNameBuilder addProjectName( String namingAuthority, String name);
  public boolean removeProjectName( ProjectNameBuilder projectNameBuilder);
  public List getProjectNameBuilders();


  public ContributorBuilder addCreator();
  public boolean removeCreator( ContributorBuilder creatorBuilder );
  public List getCreatorBuilder();

  public ContributorBuilder addContributor();
  public boolean removeContributor( ContributorBuilder contributorBuilder );
  public List getContributorBuilder();


  public ContributorBuilder addPublisher();
  public boolean removePublisher( ContributorBuilder PublisherBuilder );
  public List getPublisherBuilder();

  public DatePointBuilder addOtherDatePointBuilder( String date, String format, String type);
  public boolean removeOtherDatePointBuilder( DatePointBuilder builder);
  public List getOtherDatePointBuilders();


  public DatePointBuilder setCreatedDatePointBuilder( String date, String format );
  public DatePointBuilder getCreatedDatePointBuilder();

  public DatePointBuilder setModifiedDatePointBuilder( String date, String format );
  public DatePointBuilder getModifiedDatePointBuilder();

  public DatePointBuilder setIssuedDatePointBuilder( String date, String format );
  public DatePointBuilder getIssuedDatePointBuilder();

  public DatePointBuilder setValidDatePointBuilder( String date, String format );
  public DatePointBuilder getValidDatePointBuilder();

  public DatePointBuilder setAvailableDatePointBuilder( String date, String format );
  public DatePointBuilder getAvailableDatePointBuilder();

  public DatePointBuilder setMetadataCreatedDatePointBuilder( String date, String format );
  public DatePointBuilder getMetadataCreatedDatePointBuilder();

  public DatePointBuilder setMetadataModifiedDatePointBuilder( String date, String format );
  public DatePointBuilder getMetadataModifiedDatePointBuilder();

  public GeospatialCoverageBuilder setNewGeospatialCoverageBuilder( URI crsUri );
  public void removeGeospatialCoverageBuilder();
  public GeospatialCoverageBuilder getGeospatialCoverageBuilder();

  public DateRangeBuilder setTemporalCoverageBuilder( String startDate, String startDateFormat,
                                                      String endDate, String endDateFormat,
                                                      String duration, String resolution );
  public DateRangeBuilder getTemporalCoverageBuilder();

  public VariableGroupBuilder addVariableGroupBuilder();
  public boolean removeVariableGroupBuilder( VariableGroupBuilder varGroupBldr);
  public List getVariableGroupBuilders();

  public void setDataSizeInBytes( long dataSizeInBytes );
  public long getDataSizeInBytes();

  public void setDataFormat( DataFormatType dataFormat);
  public void setDataFormat( String dataFormat );
  public DataFormatType getDataFormat();

  public void setDataType( FeatureType dataType );
  public void setDataType( String dataType );
  public FeatureType getDataType();

  public void setCollectionType( String collectionType );
  public String getCollectionType();

  ThreddsMetadata build() throws BuilderException;

  public interface DocumentationBuilder extends ThreddsBuilder
  {
    //public void setContainedContent( boolean containedContent );
    public boolean isContainedContent();

    //public void setDocType( String docType );
    public String getDocType();

    //public void setContent( String content );
    public String getContent();

    //public void setTitle( String title );
    public String getTitle();

    //public void setExternalReference( URI externalReference );
    public String getExternalReference();
    public URI getExternalReferenceAsUri() throws URISyntaxException;

    public ThreddsMetadata.Documentation build() throws BuilderException;
  }

  public interface KeyphraseBuilder extends ThreddsBuilder
  {
    public String getAuthority();
    public String getPhrase();

    public ThreddsMetadata.Keyphrase build() throws BuilderException;
  }

  public interface ProjectNameBuilder extends ThreddsBuilder
  {
    public String getNamingAuthority();
    public String getName();

    public ThreddsMetadata.ProjectName build() throws BuilderException;
  }

    public interface DatePointBuilder extends ThreddsBuilder
    {
        public String getDate();
        public String getDateFormat();
        public boolean isTyped();
        public String getType();

        public ThreddsMetadata.DatePoint build() throws BuilderException;
    }

    public interface DateRangeBuilder extends ThreddsBuilder
    {
        public String getStartDateFormat();
        public String getStartDate();
        public String getEndDateFormat();
        public String getEndDate();
        public String getDuration();
        public String getResolution();

        public ThreddsMetadata.DateRange build() throws BuilderException;
    }


    public interface ContributorBuilder extends ThreddsBuilder
  {
    public String getName();
    public void setName( String name );
    public String getNamingAuthority();
    public void setNamingAuthority( String authority );
    public String getRole();
    public void setRole( String role );
    public String getEmail();
    public void setEmail( String email );

    public String getWebPage();
    public void setWebPage( String webPage );

    public ThreddsMetadata.Contributor build() throws BuilderException;
  }

  public interface VariableGroupBuilder extends ThreddsBuilder
  {
    public String getVocabularyAuthorityId();
    public void setVocabularyAuthorityId( String vocabAuthId);

    public String getVocabularyAuthorityUrl();
    public void setVocabularyAuthorityUrl( String vocabAuthUrl);

    public List getVariableBuilders();
    public VariableBuilder addVariableBuilder( String name, String description, String units,
                                               String vocabId, String vocabName );

    public String getVariableMapUrl();
    public void setVariableMapUrl( String variableMapUrl);

    public boolean isEmpty();
  }

  public interface VariableBuilder extends ThreddsBuilder
  {
    public String getName();
    public void setName( String name);

    public String getDescription();
    public void setDescription( String description );

    public String getUnits();
    public void setUnits( String units );

    public String getVocabularyId();
    public void setVocabularyId( String vocabId);

    public String getVocabularyName();
    public void setVocabularyName( String vocabName);

    public String getVocabularyAuthorityId();
    public String getVocabularyAuthorityUrl();

    public ThreddsMetadata.Variable build() throws BuilderException;
  }

  public interface GeospatialCoverageBuilder extends ThreddsBuilder
  {
    public void setCRS( URI crsUri );
    public URI getCRS();

    public void setGlobal( boolean isGlobal );
    public boolean isGlobal();

    public void setZPositiveUp( boolean isZPositiveUp );
    public boolean isZPositiveUp();

    public GeospatialRangeBuilder addExtentBuilder();
    public boolean removeExtentBuilder( GeospatialRangeBuilder geospatialRangeBuilder );
    public List getExtentBuilders();

    public ThreddsMetadata.GeospatialCoverage build() throws BuilderException;
  }

  public interface GeospatialRangeBuilder extends ThreddsBuilder
  {
    public void setHorizontal( boolean isHorizontal );
    public boolean isHorizontal();

    public void setStart( double start );
    public double getStart();

    public void setSize( double size );
    public double getSize();

    public void setResolution( double resolution );
    public double getResolution();

    public void setUnits( String units );
    public String getUnits();

    public ThreddsMetadata.GeospatialRange build() throws BuilderException;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy