001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/model/spatialschema/MultiPoint.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53115 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042:
043: ---------------------------------------------------------------------------*/
044:
045: package org.deegree.model.spatialschema;
046:
047: /**
048: *
049: * The interface defines the access to a aggregations of <tt>Point</tt> objects.
050: *
051: * <p>
052: * -----------------------------------------------------
053: * </p>
054: *
055: * @author Andreas Poth
056: * @version $Revision: 9343 $ $Date: 2007-12-27 05:30:32 -0800 (Thu, 27 Dec 2007) $
057: * <p>
058: */
059: public interface MultiPoint extends MultiPrimitive {
060: /**
061: * @link aggregation
062: * @clientCardinality 0..*
063: */
064:
065: /**
066: * adds a Point to the aggregation
067: */
068: public void addPoint(Point gmp);
069:
070: /**
071: * inserts a Point into the aggregation. all elements with an index equal or larger index will
072: * be moved. if index is larger then getSize() - 1 or smaller then 0 or gmp equals null an
073: * exception will be thrown.
074: *
075: * @param gmp
076: * Point to insert.
077: * @param index
078: * position where to insert the new Point
079: */
080: public void insertPointAt(Point gmp, int index)
081: throws GeometryException;
082:
083: /**
084: * sets the submitted Point at the submitted index. the element at the position
085: * <code>index</code> will be removed. if index is larger then getSize() - 1 or smaller then 0
086: * or gmp equals null an exception will be thrown.
087: *
088: * @param gmp
089: * Point to set.
090: * @param index
091: * position where to set the new Point
092: */
093: public void setPointAt(Point gmp, int index)
094: throws GeometryException;
095:
096: /**
097: * removes the submitted Point from the aggregation
098: *
099: * @return the removed Point
100: */
101: public Point removePoint(Point gmp);
102:
103: /**
104: * removes the Point at the submitted index from the aggregation. if index is larger then
105: * getSize() - 1 or smaller then 0 an exception will be thrown.
106: *
107: * @return the removed Point
108: */
109: public Point removePointAt(int index) throws GeometryException;
110:
111: /**
112: * returns the Point at the submitted index.
113: */
114: public Point getPointAt(int index);
115:
116: /**
117: * returns all Points as array
118: */
119: public Point[] getAllPoints();
120:
121: }
|