view gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/ArtifactDatabaseClient.java @ 36:ad381cc47217

Format Code to max 80 Chars per Row gnv/trunk@172 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 02 Oct 2009 08:54:13 +0000
parents 4405f31bbc30
children fccf90761825
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.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