    001    // $HeadURL:
    002    // /cvsroot/deegree/src/org/deegree/ogcwebservices/getcapabilities/Contents.java,v
    003    // 1.1 2004/06/23 11:55:40 mschneider Exp $
    004    /*----------------------------------------------------------------------------
    005     This file is part of deegree, http://deegree.org/
    006     Copyright (C) 2001-2009 by:
    007       Department of Geography, University of Bonn
    008     and
    009       lat/lon GmbH
    010
    011     This library is free software; you can redistribute it and/or modify it under
    012     the terms of the GNU Lesser General Public License as published by the Free
    013     Software Foundation; either version 2.1 of the License, or (at your option)
    014     any later version.
    015     This library is distributed in the hope that it will be useful, but WITHOUT
    016     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    017     FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
    018     details.
    019     You should have received a copy of the GNU Lesser General Public License
    020     along with this library; if not, write to the Free Software Foundation, Inc.,
    021     59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    022
    023     Contact information:
    024
    025     lat/lon GmbH
    026     Aennchenstr. 19, 53177 Bonn
    027     Germany
    028     http://lat-lon.de/
    029
    030     Department of Geography, University of Bonn
    031     Prof. Dr. Klaus Greve
    032     Postfach 1147, 53001 Bonn
    033     Germany
    034     http://www.geographie.uni-bonn.de/deegree/
    035
    036     e-mail: info@deegree.org
    037    ----------------------------------------------------------------------------*/
    038    package org.deegree.model.filterencoding.capabilities;
    039
    040    import java.util.HashMap;
    041    import java.util.Map;
    042
    043    import org.deegree.datatypes.QualifiedName;
    044
    045    /**
    046     * SpatialCapabilitiesBean
    047     *
    048     * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe </A>
    049     *
    050     * @author last edited by: $Author: mschneider $
    051     *
    052     * @version 2.0, $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
    053     *
    054     * @since 2.0
    055     */
    056    public class SpatialCapabilities {
    057
    058        // keys are Strings (operator names), values are SpatialOperator-instances
    059        private Map<String, SpatialOperator> operators = new HashMap<String, SpatialOperator>();
    060
    061        private QualifiedName[] geometryOperands;
    062
    063        /**
    064         * Creates a new <code>SpatialCapabilities</code> instance that complies to the
    065         * <code>Filter Encoding Specification 1.0.0</code> (without <code>GeometryOperands</code>).
    066         *
    067         * @param spatialOperators
    068         */
    069        public SpatialCapabilities( SpatialOperator[] spatialOperators ) {
    070            setSpatialOperators( spatialOperators );
    071        }
    072
    073        /**
    074         * Creates a new <code>SpatialCapabilities</code> instance that complies to the
    075         * <code>Filter Encoding Specification 1.1.0</code> (with <code>GeometryOperands</code>).
    076         *
    077         * @param spatialOperators
    078         * @param geometryOperands
    079         */
    080        public SpatialCapabilities( SpatialOperator[] spatialOperators, QualifiedName[] geometryOperands ) {
    081            setSpatialOperators( spatialOperators );
    082            this.geometryOperands = geometryOperands;
    083        }
    084
    085        /**
    086         * @param operator
    087         */
    088        public void addSpatialOperator( SpatialOperator operator ) {
    089            this.operators.put( operator.getName(), operator );
    090
    091        }
    092
    093        /**
    094         * Returns if the given operator is supported.
    095         *
    096         * @param operatorName
    097         * @return if the given operator is supported.
    098         */
    099        public boolean hasOperator( String operatorName ) {
    100            return operators.get( operatorName ) != null ? true : false;
    101        }
    102
    103        /**
    104         * @return the operators
    105         */
    106        public SpatialOperator[] getSpatialOperators() {
    107            return operators.values().toArray( new SpatialOperator[this.operators.size()] );
    108        }
    109
    110        /**
    111         * @param operators
    112         */
    113        public void setSpatialOperators( SpatialOperator[] operators ) {
    114            this.operators.clear();
    115            for ( int i = 0; i < operators.length; i++ ) {
    116                this.addSpatialOperator( operators[i] );
    117            }
    118        }
    119
    120        /**
    121         * @return Returns the geometryOperands.
    122         */
    123        public QualifiedName[] getGeometryOperands() {
    124            return geometryOperands;
    125        }
    126
    127        /**
    128         * @param geometryOperands
    129         *            The geometryOperands to set.
    130         */
    131        public void setGeometryOperands( QualifiedName[] geometryOperands ) {
    132            this.geometryOperands = geometryOperands;
    133        }
    134    }