/*$************************************************************************************************ ** ** $Id$ ** ** $Source: /cvs/ctree/LiteGO1/src/jar/com/polexis/lite/spatialschema/geometry/aggregate/AggregateImpl.java,v $ ** ** Copyright (C) 2003 Open GIS Consortium, Inc. All Rights Reserved. http://www.opengis.org/Legal/ ** *************************************************************************************************/ package org.geotools.geometry.jts.spatialschema.geometry.aggregate; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.geometry.aggregate.Aggregate; import org.geotools.geometry.jts.spatialschema.geometry.GeometryImpl; import org.geotools.geometry.jts.JTSGeometry; import org.geotools.geometry.jts.JTSUtils; public abstract class AggregateImpl extends GeometryImpl implements Aggregate { private Set/*<Primitive>*/ elements; public AggregateImpl() { super(); } public AggregateImpl(final CoordinateReferenceSystem crs) { super(crs); this.elements = new HashSet(); } protected com.vividsolutions.jts.geom.Geometry computeJTSPeer() { ArrayList childParts = new ArrayList(); Iterator children = elements.iterator(); while (children.hasNext()) { JTSGeometry jtsGeom = (JTSGeometry) children.next(); childParts.add(jtsGeom.getJTSGeometry()); } com.vividsolutions.jts.geom.Geometry result = JTSUtils.GEOMETRY_FACTORY.buildGeometry(childParts); return result; } public Set getElements() { return elements; } }