view gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/ArtifactDatabaseClient.java @ 668:ccd47d9887ec

Added an options panel for wms customization (issue198). gnv/trunk@775 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 15 Mar 2010 13:46:05 +0000
parents 27f25b9ae9af
children b89b31293772
line wrap: on
line source
package de.intevation.gnv.artifactdatabase.client;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Collection;
import java.util.Locale;

import org.w3c.dom.Document;

import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException;
import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseInputException;
import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticsSet;
import de.intevation.gnv.artifactdatabase.objects.InputParameter;
import de.intevation.gnv.artifactdatabase.objects.map.MapService;

/**
 * @author Tim Englich (tim.englich@intevation.de)
 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
 */
public interface ArtifactDatabaseClient {

    public final static String ARTIFACTDATABASE_COUNT_ID = "de.intevation.gnv.artifactdatabase.client.ArtifactDatabase.count";

    public final static String ARTIFACTDATABASE_URL_ID = "de.intevation.gnv.artifactdatabase.client.ArtifactDatabase.url";

    /**
     * Return the Artifactfactories which can be resolved.
     * 
     * @return the Artifactfactories which can be resolved.
     * @throws ArtifactDatabaseClientException
     */
    public Collection<ArtifactObject> getArtifactFactories()
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    /**
     * 
     * @param artifactFactory
     * @return the new Artifact
     * @throws ArtifactDatabaseClientException
     */
    public ArtifactObject createNewArtifact(ArtifactObject artifactFactory)
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    /**
     * 
     * @param currentArtifact
     * @return the Current Artifact
     * @throws ArtifactDatabaseClientException
     */
    public ArtifactDescription getCurrentStepDescription(
        ArtifactObject artifactFactory,
        ArtifactObject currentArtifact,
        boolean includeUI)
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    /**
     * 
     * @param artifactFactory
     * @param currentArtifact
     * @param target
     * @param inputParameter
     * @return
     * @throws ArtifactDatabaseClientException
     */
    public ArtifactDescription doNextStep(
        ArtifactObject artifactFactory,
        ArtifactObject currentArtifact,
        String         target,
        Collection<InputParameter> inputParameter)
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    public void doAdvance(
        ArtifactObject factory,
        ArtifactObject artifact,
        String         target)
    throws IOException, ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    /**
     * @param artifactFactory
     * @param currentArtifact
     * @param inputParameter
     * @return
     * @throws ArtifactDatabaseClientException
     */
    public void doFeed(ArtifactObject artifactFactory,
        ArtifactObject currentArtifact,
        Collection<InputParameter> inputParameter)
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;

    /**
     * 
     * @param artifactFactory
     * @param currentArtifact
     * @param stream
     * @param targetName
     * @param mimeType
     * @throws ArtifactDatabaseClientException
     */
    public void doOutput(
        ArtifactObject artifactFactory,
        ArtifactObject currentArtifact,
        OutputStream   stream,
        String         targetName,
        String         exportMode,
        String         mimeType,
        Collection<InputParameter> inputParameter)
    throws ArtifactDatabaseClientException;

    /**
     * @param factory
     * @param artifact
     * @return URL to wms service as string
     */
    public Document publishWMS(
        ArtifactObject             factory,
        ArtifactObject             artifact,
        Collection<InputParameter> inputParameter
    );


    /**
     * @param artifactFactory
     * @param currentArtifact
     * @return
     * @throws ArtifactDatabaseClientException
     */
    public Collection<ArtifactStatisticsSet> calculateStatistics(
                                                                  ArtifactObject artifactFactory,
                                                                  ArtifactObject currentArtifact)
                                                                                                 throws ArtifactDatabaseClientException;
    
    public void setLocale(Locale locale);
    
    public Collection<ArtifactObject> getArtifactFactoryMetaInformation(
        Collection<MapService> mapServices, 
        String                 geometry, 
        String                 srs)
    throws ArtifactDatabaseClientException, ArtifactDatabaseInputException;
    
}

http://dive4elements.wald.intevation.org