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.log.ILogger;
042: import org.deegree.framework.log.LoggerFactory;
043: import org.deegree.framework.xml.XMLParsingException;
044: import org.deegree.i18n.Messages;
045: import org.deegree.ogcbase.ExceptionCode;
046: import org.deegree.ogcwebservices.OGCWebServiceException;
047: import org.deegree.ogcwebservices.wcts.WCTService;
048: import org.w3c.dom.Element;
049:
050: /**
051: * <code>GetResourceByIDDocument</code> creates a bean-representation of a xml-dom GetRepository item request.
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 GetResourceByIDDocument extends
061: org.deegree.owscommon_1_1_0.operations.GetResourceByIDDocument {
062:
063: private static ILogger LOG = LoggerFactory
064: .getLogger(GetResourceByIDDocument.class);
065: private static final long serialVersionUID = 2724928639257998459L;
066: private final GetResourceByID resourceById;
067:
068: /**
069: * @param id of the request
070: * @param rootElement of the request
071: * @throws OGCWebServiceException if a mandatory item is missing, or the element could not be parsed.
072: * @throws IllegalArgumentException if the rootElement is <code>null</code>
073: */
074: public GetResourceByIDDocument(String id, Element rootElement)
075: throws OGCWebServiceException, IllegalArgumentException {
076: if (rootElement == null) {
077: throw new IllegalArgumentException(Messages
078: .getMessage("WCTS_ROOT_ELEMENT_NOT_SET"));
079: }
080: setRootElement(rootElement);
081: try {
082: String service = parseService();
083: if (!"WCTS".equalsIgnoreCase(service)) {
084: throw new OGCWebServiceException(Messages
085: .getMessage("WCTS_ILLEGAL_SERVICE"),
086: ExceptionCode.INVALIDPARAMETERVALUE);
087: }
088: String version = parseVersion();
089: if (!WCTService.version.equalsIgnoreCase(version)) {
090: throw new OGCWebServiceException(Messages.getMessage(
091: "WCTS_ILLEGAL_VERSION", WCTService.version),
092: ExceptionCode.INVALIDPARAMETERVALUE);
093: }
094:
095: resourceById = new GetResourceByID(version, id,
096: parseResourceIDs(), parseOutputFormats());
097: } catch (XMLParsingException e) {
098: LOG.logError(e.getMessage(), e);
099: throw new OGCWebServiceException(e.getMessage(),
100: ExceptionCode.MISSINGPARAMETERVALUE);
101: }
102:
103: }
104:
105: /**
106: * @return the resourceById bean.
107: */
108: public final GetResourceByID getResourceById() {
109: return resourceById;
110: }
111:
112: }
|