001: //$HeadURL: $
002: /*---------------- FILE HEADER ------------------------------------------
003: This file is part of deegree.
004: Copyright (C) 2001-2008 by:
005: Department of Geography, University of Bonn
006: http://www.giub.uni-bonn.de/deegree/
007: lat/lon GmbH
008: http://www.lat-lon.de
009:
010: This library is free software; you can redistribute it and/or
011: modify it under the terms of the GNU Lesser General Public
012: License as published by the Free Software Foundation; either
013: version 2.1 of the License, or (at your option) any later version.
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018: You should have received a copy of the GNU Lesser General Public
019: License along with this library; if not, write to the Free Software
020: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021: Contact:
022:
023: Andreas Poth
024: lat/lon GmbH
025: Aennchenstr. 19
026: 53177 Bonn
027: Germany
028: E-Mail: poth@lat-lon.de
029:
030: Prof. Dr. Klaus Greve
031: Department of Geography
032: University of Bonn
033: Meckenheimer Allee 166
034: 53115 Bonn
035: Germany
036: E-Mail: greve@giub.uni-bonn.de
037: ---------------------------------------------------------------------------*/
038:
039: package org.deegree.ogcwebservices.wcts.operation;
040:
041: import org.deegree.framework.xml.XMLFragment;
042: import org.deegree.i18n.Messages;
043: import org.deegree.ogcbase.CommonNamespaces;
044: import org.deegree.ogcbase.ExceptionCode;
045: import org.deegree.ogcwebservices.OGCWebServiceException;
046: import org.deegree.ogcwebservices.wcts.WCTService;
047: import org.w3c.dom.Element;
048:
049: /**
050: * <code>WCTSRequestBaseDocument</code> supplies the pasreVersion and parseService methods which are mandatory for all
051: * WCTSRequests.
052: *
053: * @author <a href="mailto:bezema@lat-lon.de">Rutger Bezema</a>
054: *
055: * @author last edited by: $Author:$
056: *
057: * @version $Revision:$, $Date:$
058: *
059: */
060: public class WCTSRequestBaseDocument extends XMLFragment {
061:
062: private static final long serialVersionUID = 8095321883665451630L;
063:
064: protected static final String PRE = CommonNamespaces.WCTS_PREFIX
065: + ":";
066:
067: /**
068: * @param rootElement of this request.
069: * @throws IllegalArgumentException
070: * if the rootElement is <code>null</code>
071: */
072: public WCTSRequestBaseDocument(Element rootElement)
073: throws IllegalArgumentException {
074: if (rootElement == null) {
075: throw new IllegalArgumentException(Messages
076: .getMessage("WCTS_ROOT_ELEMENT_NOT_SET"));
077: }
078: setRootElement(rootElement);
079: }
080:
081: /**
082: * @return the mandatory service string.
083: * @throws OGCWebServiceException
084: * with code INVALIDPARAMETERVALUE, if the attribute was not given.
085: */
086: public String parseService() throws OGCWebServiceException {
087: Element root = getRootElement();
088: String result = new String();
089: if (root != null) {
090: result = root.getAttribute("service");
091: if (result == null || "".equals(result.trim())) {
092: throw new OGCWebServiceException(Messages
093: .getMessage("WCTS_ILLEGAL_SERVICE"),
094: ExceptionCode.INVALIDPARAMETERVALUE);
095: }
096: }
097:
098: if (!"WCTS".equalsIgnoreCase(result)) {
099: throw new OGCWebServiceException(Messages
100: .getMessage("WCTS_ILLEGAL_SERVICE"),
101: ExceptionCode.INVALIDPARAMETERVALUE);
102: }
103: return result;
104:
105: }
106:
107: /**
108: * @return the mandatory version string.
109: * @throws OGCWebServiceException
110: * with code INVALIDPARAMETERVALUE, if the attribute was not given.
111: */
112: public String parseVersion() throws OGCWebServiceException {
113: Element root = getRootElement();
114: String result = new String();
115: if (root != null) {
116: result = root.getAttribute("version");
117: if (result == null || "".equals(result.trim())) {
118: throw new OGCWebServiceException(Messages.getMessage(
119: "WCTS_ILLEGAL_VERSION", WCTService.version),
120: ExceptionCode.INVALIDPARAMETERVALUE);
121: }
122: }
123:
124: if (!WCTService.version.equalsIgnoreCase(result)) {
125: throw new OGCWebServiceException(Messages.getMessage(
126: "WCTS_ILLEGAL_VERSION", WCTService.version),
127: ExceptionCode.INVALIDPARAMETERVALUE);
128: }
129: return result;
130:
131: }
132: }
|