001 // $Header:
002 // /cvsroot/deegree/src/org/deegree/ogcwebservices/getcapabilities/Contents.java,v
003 // 1.1 2004/06/23 11:55:40 mschneider Exp $
004 /*---------------- FILE HEADER ------------------------------------------
005
006 This file is part of deegree.
007 Copyright (C) 2001-2004 by:
008 EXSE, Department of Geography, University of Bonn
009 http://www.giub.uni-bonn.de/exse/
010 lat/lon GmbH
011 http://www.lat-lon.de
012
013 This library is free software; you can redistribute it and/or
014 modify it under the terms of the GNU Lesser General Public
015 License as published by the Free Software Foundation; either
016 version 2.1 of the License, or (at your option) any later version.
017
018 This library is distributed in the hope that it will be useful,
019 but WITHOUT ANY WARRANTY; without even the implied warranty of
020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
021 Lesser General Public License for more details.
022
023 You should have received a copy of the GNU Lesser General Public
024 License along with this library; if not, write to the Free Software
025 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
026
027 Contact:
028
029 Andreas Poth
030 lat/lon Fitzke/Fretter/Poth GbR
031 Meckenheimer Allee 176
032 53115 Bonn
033 Germany
034 E-Mail: poth@lat-lon.de
035
036 Jens Fitzke
037 Department of Geography
038 University of Bonn
039 Meckenheimer Allee 166
040 53115 Bonn
041 Germany
042 E-Mail: jens.fitzke@uni-bonn.de
043
044
045 ---------------------------------------------------------------------------*/
046 package org.opengis.filter.capability;
047
048 // Annotations
049 import static org.opengis.annotation.Specification.UNSPECIFIED;
050
051 import org.opengis.annotation.UML;
052
053 /**
054 * Indicates a supported Operator.
055 * <p>
056 * The operator that is supported is indicated by the getName() field, these
057 * names are formally defined to match:
058 * <ul>
059 * <li>A subclass of Filter. Examples include "BBOX" and "EqualsTo"
060 * <li>A subclass of Expression or Function. Examples include "ADD" and "Length"
061 * </ul>
062 * Each filter subclass has an associated name (such as BBOX or EqualsTo), you
063 * can use this name to determine if a matching Operator is defined as part of
064 * FilterCapabilities.
065 *
066 * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe</A>
067 * @author Jody Garnett (Refractions Research)
068 * @todo Which relationship with Filter and expressions?
069 */
070 public interface Operator {
071 /**
072 * Name of supported Operator.
073 * <p>
074 * Each filter subclass has an associated name (such as BBOX or EqualsTo), you
075 * can use this name to determine if a matching Operator is defined as part of
076 * FilterCapabilities.
077 */
078 @UML(identifier="name", specification=UNSPECIFIED)
079 String getName();
080
081 /**
082 * The supported interface enabled by this Operator.
083 * <p>
084 * The mapping from getName() to supported interface is formally defined; and
085 * is must agree with the interfaces defined in org.opengis.filter. Because this
086 * binding is formal we should replace Operator here with a CodeList and capture
087 * it as part of the GeoAPI project.
088 * </p>
089 * @return Interface marked as supported by this Operator
090 */
091 //Class getSupportedType();
092
093 /**
094 * Equals should be implemented simply in terms of getName()
095 */
096 @Override
097 boolean equals(Object obj);
098 /**
099 * HashCode should be implemented simply in terms of getName().
100 */
101 @Override
102 int hashCode();
103 }