001: /* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
002: * This code is licensed under the GPL 2.0 license, availible at the root
003: * application directory.
004: */
005: package org.geoserver.wfs;
006:
007: import net.opengis.wfs.DescribeFeatureTypeType;
008: import net.opengis.wfs.FeatureCollectionType;
009: import net.opengis.wfs.GetCapabilitiesType;
010: import net.opengis.wfs.GetFeatureType;
011: import net.opengis.wfs.GetFeatureWithLockType;
012: import net.opengis.wfs.LockFeatureResponseType;
013: import net.opengis.wfs.LockFeatureType;
014: import net.opengis.wfs.TransactionResponseType;
015: import net.opengis.wfs.TransactionType;
016: import org.geotools.xml.transform.TransformerBase;
017: import org.vfny.geoserver.global.FeatureTypeInfo;
018:
019: /**
020: * Web Feature Service implementation, versions 1.0, and 1.1.
021: * <p>
022: * Each of the methods on this class corresponds to an operation as defined
023: * by the Web Feature Specification. See {@link http://www.opengeospatial.org/standards/wfs}
024: * for more details.
025: * </p>
026: *
027: * @author Justin Deoliveira, The Open Planning Project
028: *
029: */
030: public interface WebFeatureService {
031: /**
032: * WFS GetCapabilities operation.
033: *
034: * @param request The get capabilities request.
035: *
036: * @return A transformer instance capable of serializing a wfs capabilities
037: * document.
038: *
039: * @throws WFSException Any service exceptions.
040: */
041: TransformerBase getCapabilities(GetCapabilitiesType request)
042: throws WFSException;
043:
044: /**
045: * WFS DescribeFeatureType operation.
046: *
047: * @param request The describe feature type request.
048: *
049: * @return A set of feature type metadata objects.
050: *
051: * @throws WFSException Any service exceptions.
052: */
053: FeatureTypeInfo[] describeFeatureType(
054: DescribeFeatureTypeType request) throws WFSException;
055:
056: /**
057: * WFS GetFeature operation.
058: *
059: * @param request The get feature request.
060: *
061: * @return A feature collection type instance.
062: *
063: * @throws WFSException Any service exceptions.
064: */
065: FeatureCollectionType getFeature(GetFeatureType request)
066: throws WFSException;
067:
068: /**
069: * WFS GetFeatureWithLock operation.
070: *
071: * @param request The get feature with lock request.
072: *
073: * @return A feature collection type instance.
074: *
075: * @throws WFSException Any service exceptions.
076: */
077: FeatureCollectionType getFeatureWithLock(
078: GetFeatureWithLockType request) throws WFSException;
079:
080: /**
081: * WFS LockFeatureType operation.
082: *
083: * @param request The lock feature request.
084: *
085: * @return A lock feture response type.
086: *
087: * @throws WFSException An service exceptions.
088: */
089: LockFeatureResponseType lockFeature(LockFeatureType request)
090: throws WFSException;
091:
092: /**
093: * WFS transaction operation.
094: *
095: * @param request The transaction request.
096: *
097: * @return A transaction response instance.
098: *
099: * @throws WFSException Any service exceptions.
100: */
101: TransactionResponseType transaction(TransactionType request)
102: throws WFSException;
103:
104: /**
105: * Release lock operation.
106: * <p>
107: * This is not an official operation of the spec.
108: * </p>
109: * @param lockId A prefiously held lock id.
110: */
111: void releaseLock(String lockId) throws WFSException;
112:
113: }
|