01: /*
02: * GeoTools - OpenSource mapping toolkit
03: * http://geotools.org
04: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation;
09: * version 2.1 of the License.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: */
16: package org.geotools.data.ows;
17:
18: import java.net.URL;
19:
20: /**
21: * Provides support for the Open Web Service Specificaitons.
22: *
23: * <p>
24: * This class operates as a Factory creating request for Open Web Services.
25: *
26: * <p>
27: * The idea is that this class operates a Toolkit for all things assocated with
28: * an Open Web Service specification. The various objects produced by this
29: * toolkit are used as strategy objects for the top level AbstractOpenWebService
30: * subclass. Example:
31: * <ul>
32: * <li>
33: * WebMapServer - uses a GetCapabilitiesRequest during version negotiation.
34: * </li>
35: * </ul>
36: * </p>
37: *
38: * <p>
39: * Both name and version information that may be checked against a
40: * GetCapabilities document during version negotiation.
41: * </p>
42: *
43: * Specific Open Web Service implementations can extend this interface to
44: * include details that are specific to their specification. Example:
45: * The Web Map Service specification includes more operations such as GetMap
46: * and GetFeatureInfo.
47: *
48: * <p>
49: * <b>Q:</b> Why are these not static?<br>
50: * <b>A:</b> Because we want to place new specifications into a data structure
51: * for WebMapServer to search through dynamically
52: * </p>
53: *
54: * @author Jody Garnett, Refractions Reasearch
55: * @author rgould
56: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/main/src/main/java/org/geotools/data/ows/Specification.java $
57: */
58: public abstract class Specification {
59:
60: /**
61: * Expected version attribute for root element.
62: * @return the version as a String
63: */
64: public abstract String getVersion();
65:
66: /**
67: * Factory method to create GetCapabilities Request
68: * @param server the URL that points to the server's getCapabilities document
69: * @return a configured GetCapabilitiesRequest that can be used to access the Document
70: */
71: public abstract GetCapabilitiesRequest createGetCapabilitiesRequest(
72: URL server);
73: }
|