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

org.vfny.geoserver.util.requests.CapabilitiesHandler Maven / Gradle / Ivy

There is a newer version: 1.7.0
Show newest version
/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org.  All rights reserved.
 * This code is licensed under the GPL 2.0 license, availible at the root
 * application directory.
 */
package org.vfny.geoserver.util.requests;

import org.vfny.geoserver.servlets.AbstractService;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.XMLFilterImpl;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;


/**
 * A SAX content handler that acquires a GetCapabilities request from an
 * incoming XML stream.
 *
 * @author Rob Hranac, TOPP
 * @version $Id: CapabilitiesHandler.java 8406 2008-02-14 19:49:39Z saul.farber $
 */
public class CapabilitiesHandler extends XMLFilterImpl implements ContentHandler {
    /** Class logger */
    private static Logger LOGGER = org.geotools.util.logging.Logging.getLogger("org.vfny.geoserver.requests");

    /** Internal Capabilities request for construction. */
    private CapabilitiesRequest request = null;

    /**
     * Creates a new CapabilitiesHandler
     * @param service this is the AbstractService Handling the Request
     * @deprecated use {@link #CapabilitiesHandler(CapabilitiesRequest)}.
     */
    public CapabilitiesHandler(AbstractService service) {
        this(new CapabilitiesRequest("WFS", service));
    }

    /**
     * Creates a new CapabilitiesHandler
     * @param service this is the AbstractService Handling the Request
     * @param req
     */
    public CapabilitiesHandler(CapabilitiesRequest request) {
        this.request = request;
    }

    /**
    * Returns the GetCapabilities request.
    *
    * @return GetCapabilities request.
    */
    public CapabilitiesRequest getRequest(HttpServletRequest req) {
        request.setHttpServletRequest(req);

        return request;
    }

    /* ***********************************************************************
     *  Standard SAX content handler methods                                 *
     * ***********************************************************************/

    /**
     * Notes the start of the element and sets version and service tags, as
     * required.
     *
     * @param namespaceURI URI for namespace appended to element.
     * @param localName Local name of element.
     * @param rawName Raw name of element.
     * @param atts Element attributes.
     *
     * @throws SAXException For any standard SAX errors.
     */
    public void startElement(String namespaceURI, String localName, String rawName, Attributes atts)
        throws SAXException {
        if (localName.equals("GetCapabilities")) {
            LOGGER.finer("found capabilities start.");

            for (int i = 0, n = atts.getLength(); i < n; i++) {
                if (atts.getLocalName(i).equals("version")) {
                    request.setVersion(atts.getValue(i));
                } else if (atts.getLocalName(i).equals("service")) {
                    request.setService(atts.getValue(i));
                } else if (atts.getLocalName(i).equals("updateSequence")) {
                	request.setUpdateSequence(atts.getValue(i));
                }
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy