001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/model/spatialschema/MultiCurve.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>Curve</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 MultiCurve extends MultiPrimitive {
060: /**
061: * adds a Curve to the aggregation
062: */
063: public void addCurve(Curve gmc);
064:
065: /**
066: * inserts a Curve in the aggregation. all elements with an index equal or larger index will be
067: * moved. if index is larger then getSize() - 1 or smaller then 0 or gmc equals null an
068: * exception will be thrown.
069: *
070: * @param gmc
071: * Curve to insert.
072: * @param index
073: * position where to insert the new Curve
074: */
075: public void insertCurveAt(Curve gmc, int index)
076: throws GeometryException;
077:
078: /**
079: * sets the submitted Curve at the submitted index. the element at the position
080: * <code>index</code> will be removed. if index is larger then getSize() - 1 or smaller then 0
081: * or gmc equals null an exception will be thrown.
082: *
083: * @param gmc
084: * Curve to set.
085: * @param index
086: * position where to set the new Curve
087: */
088: public void setCurveAt(Curve gmc, int index)
089: throws GeometryException;
090:
091: /**
092: * removes the submitted Curve from the aggregation
093: *
094: * @return the removed Curve
095: */
096: public Curve removeCurve(Curve gmc);
097:
098: /**
099: * removes the Curve at the submitted index from the aggregation. if index is larger then
100: * getSize() - 1 or smaller then 0 an exception will be thrown.
101: *
102: * @return the removed Curve
103: */
104: public Curve removeCurveAt(int index) throws GeometryException;
105:
106: /**
107: * returns the Curve at the submitted index. if index is larger then getSize() - 1 or smaller
108: * then 0 an exception will be thrown.
109: */
110: public Curve getCurveAt(int index);
111:
112: /**
113: * returns all Curves as array
114: */
115: public Curve[] getAllCurves();
116:
117: }
|