view flys-client/src/main/java/de/intevation/flys/client/server/ArtifactServiceImpl.java @ 5818:a4ff4167be1e

Request feature info on all layers and show it as html if the server does not return valid gml. Non queryable layers produce an error message when the request fails. This is good enough
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 24 Apr 2013 17:33:27 +0200
parents b660090b417d
children
line wrap: on
line source
package de.intevation.flys.client.server;

import org.apache.log4j.Logger;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

import de.intevation.flys.client.shared.exceptions.ServerException;
import de.intevation.flys.client.shared.model.Artifact;
import de.intevation.flys.client.client.services.ArtifactService;

import de.intevation.flys.client.shared.model.Collection;
import de.intevation.flys.client.shared.model.Recommendation;

/**
 * This interface provides artifact specific services as CREATE, DESCRIBE, FEED,
 * ADVANCE and OUT.
 *
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public class ArtifactServiceImpl
extends      RemoteServiceServlet
implements   ArtifactService
{
    /** Private logger. */
    private static final Logger logger =
        Logger.getLogger(ArtifactServiceImpl.class);


    /**
     * Creates new Artifacts based on a given Recommendation and factory.
     * <b>Note, that all the work is done in ArtifactHelper!</b>
     *
     * @param locale The locale used for HTTP request.
     * @param factory The factory that is used to create the new Artifact.
     * @param recom Recommendation with details of the artifact to create.
     *
     * @return a new Artifact.
     */
    public Artifact create(
        String         locale,
        String         factory,
        Recommendation recom
    )
    throws ServerException
    {
        logger.info("ArtifactServiceImpl.create");

        String url  = getServletContext().getInitParameter("server-url");

        return ArtifactHelper.createArtifact(url, locale, factory, recom);
    }

    /**
     * Create a new GaugeDischageCurveArtifact
     *
     * @param river    the river
     * @param gaugeref reference id of the gauge
     */
    public Artifact createGaugeDischargeCurveArtifact(
            Collection collection,
            String locale,
            String river,
            Long   gaugeref)
    throws ServerException
    {
        logger.info("ArtifactServiceImpl.createGaugeDischargeCurverArtifact");
        String url  = getServletContext().getInitParameter("server-url");

        Artifact artifact = ArtifactHelper.createGaugeDischargeCurveArtifact(url,
                locale, river, gaugeref);
        if (artifact == null) {
            return null;
        }
        logger.info("GaugeDischargeCurveArtifact created successfully");

        CollectionHelper.addArtifact(collection, artifact, url, locale);

        return artifact;
    }

    @Override
    public Artifact createSQRelationArtifact(
        Collection collection,
        String locale,
        String river,
        int measurementStation)
    throws ServerException
    {
        logger.info("ArtifactServiceImpl.createSQRelationArtifact");
        String url  = getServletContext().getInitParameter("server-url");

        Artifact artifact = ArtifactHelper.createSQRelationArtifact(url,
                locale, river, measurementStation);
        if (artifact == null) {
            return null;
        }
        logger.info("SQRelationArtifact created successfully");

        CollectionHelper.addArtifact(collection, artifact, url, locale);

        return artifact;
    }

}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org