view gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/ArtifactDatabaseClient.java @ 32:0f4362d75e9e

Adding StatisticsOutput to the GUI gnv/trunk@142 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 28 Sep 2009 09:36:02 +0000
parents b11f941f7eb2
children 4405f31bbc30
line wrap: on
line source
/**
 *
 */
package de.intevation.gnv.artifactdatabase.client;

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

import de.intevation.gnv.artifactdatabase.client.exception.ArtifactDatabaseClientException;
import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription;
import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory;
import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue;
import de.intevation.gnv.artifactdatabase.objects.InputParameter;

/**
 * @author Tim Englich <tim.englich@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;

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

    /**
     * 
     * @param currentArtifact
     * @return the Current Artifact
     * @throws ArtifactDatabaseClientException
     */
    public ArtifactDescription getCurrentStepDescription(ArtifactObject artifactFactory, ArtifactObject currentArtifact) throws ArtifactDatabaseClientException;
    
    /**
     * 
     * @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;
    
    
    /**
     * @param artifactFactory
     * @param currentArtifact
     * @param inputParameter
     * @return
     * @throws ArtifactDatabaseClientException
     */
    public void doFeed(ArtifactObject artifactFactory, ArtifactObject currentArtifact, Collection<InputParameter> inputParameter) throws ArtifactDatabaseClientException;
    
    
    /**
     * 
     * @param artifactFactory
     * @param currentArtifact
     * @param stream
     * @param targetName
     * @param mimeType
     * @throws ArtifactDatabaseClientException
     */
    public void doOutput(ArtifactObject artifactFactory, ArtifactObject currentArtifact, OutputStream stream, String targetName, String mimeType, Collection<InputParameter> inputParameter) throws ArtifactDatabaseClientException;
    
    /**
     * @param artifactFactory
     * @param currentArtifact
     * @return
     * @throws ArtifactDatabaseClientException
     */
    public Collection<ArtifactStatisticValue> calculateStatistics(ArtifactObject artifactFactory, ArtifactObject currentArtifact)throws ArtifactDatabaseClientException;
}

http://dive4elements.wald.intevation.org